single.php

ffmpegで動画を無劣化で回転させる方法

FFmpegを利用して、動画ファイルから一定間隔で静止画を出力する方法を備忘録的に投稿しておきます。

rotateオプションは使えない

メタデータを変更して、動画ファイルの映像を回転する際に以下のような[-metadata]オプションで[rotate]パラメータを指定して使っていましたが、今のバージョンでは使えない。

ffmpeg -i sample.mp4 -c copy -metadata:s:v rotate=90 output.mp4

実行すると、エラーも発生せずに動画が作成されますが実際には無回転。

公式サイトのドキュメントを漁ってみたら[-display_rotation]オプションを発見。

-display_rotation[:stream_specifier] rotation (input,per-stream)

Set video rotation metadata.

ffmpeg Documentationより

[rotate]オプションと違って、[-i]よりも前に記載が必要です。

反時計周りに90度回転させたい場合には、次のような感じになります。

ffmpeg -display_rotation 270 -i sample.mp4 -c copy output.mp4

[-display_rotation]オプションで指定している数値が回転する角度になっています。

コマンド実行後に作成されるファイルのサイズに多少の増減がありますが[-c copy]オプションを付けて動画を回転して作成できます。

まとめ

今回は短い記事ですが、FFmpegを利用して動画ファイルを回転させる方法について書きました。

以前は[-metadata]オプションで[rotate]パラメータを指定して使っていましたが、今のバージョンではエラーも発生しないが、動画も回転しない状態。

どこかのバージョンでオミットされたのか、[-display_rotation]オプションで[-c copy]オプションを付けて動画を回転して作成できました。

[FFmpeg]で動画ファイルから無劣化で動画を回転したい人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です