2

ビデオをサーバーにアップロードしたら、FFMPEG を使用してスクリーン キャップを作成しています。問題は、ユーザーがポートレート モードでビデオを撮影すると、スクリーン キャップが 90 度回転することです。ばかげたことは、PhoneGap と FFMEG-php と FFMPEG が、ビデオの回転/向きの値を読み取るためのメカニズムを提供していないように見えることです。

情報を提供するmediainfoという別のライブラリを見つけましたが、読みやすく、消化しやすい方法ではなく、別のライブラリを使用する必要がないようにしています。

PhoneGap/FFMPEG について間違っていますか? ビデオの向きを判断する直接的な方法はありますか?


PHP関数としての私のソリューションは次のとおりです。

function get_video_orientation($video_path) {
    $cmd = FFMPEG_PATH . "ffprobe " . $video_path . " -show_streams 2>/dev/null";
    $result = shell_exec($cmd);

    $orientation = 0;
    if(strpos($result, 'TAG:rotate') !== FALSE) {
        $result = explode("\n", $result);
        foreach($result as $line) {
            if(strpos($line, 'TAG:rotate') !== FALSE) {
                $stream_info = explode("=", $line);
                $orientation = $stream_info[1];
            }
        }
    }

    return $orientation;
}
4

1 に答える 1

-1

MediaCodec を使用して、回転値を見つけます。次に、FFMPEG を使用してビデオを回転します。

例: ffmpeg -i in.avi -vf "transpose=1" out.avi

これにより、ビデオが時計回りに 90 度反転します。

于 2014-06-14T02:39:46.140 に答える