iPhone 4の.movファイルとAndroidの.3gpファイルをFFMPEGで変換すると、ビデオを90度回転する必要がありますが、iPhone4sには180度回転する必要があります...
これを修正する方法はありますか?
Androidがこれをどのように処理したかは覚えていませんが、iPhoneは方向情報をmovファイルのメタデータに記録します。録画中のカメラの持ち方によっては、変換後にビデオを直立させて再生するには、0、90、180、または270回転が必要になる場合があります。 まだ、このメタデータを解析するためにffmpegに追加されたものは知らないので、ffprobe -show_streams
または同様のものを使用して手動で実行し、適切に回転を設定する必要があります。
更新:kibitzerが指摘しているように、ffmpegはビデオが回転していることを検出しますが、自動回転修正はまだ提供していません。代わりに、回転情報を解析し、、、、およびビデオフィルタの組み合わせを使用して、transpose
ビデオを正しく回転させる必要があります。vflip
hflip
新しいffmpegはrotate: metadataヘッダー(実行時ffmpeg -i
)を返します。これは、ビデオが回転した角度を指定するため、回転行列を自分で解析する必要はなく、ffmpegのフィルターを使用してビデオを回転させることができます。
たとえば、ffmpeg出力がrotate:90の場合、次のように実行します。
ffmpeg -y -i rotated_vid.mov -vf "transpose=1" correct_video.avi
私はmediainfoと呼ばれるプログラムを使用します。このプログラムは、向きの角度を表示し、ffmpegオプションを入力します。
-vf%ROTATE%
ケースの95%のffmpegは方向を理解していますが、一部のハードウェアでは、いくつかのケースがあります...