ffmpegで動画を90度や180度に回転させる方法を解説します。ffmpegでは、transposeオプションに0〜3の値を指定することによって、元の動画を回転させることができます。

後半では、応用例としてスマートフォン閲覧用の縦動画を作成する方法についても説明します。回転と同時に、圧縮を行い動画サイズを軽くしてきます。また、ffmpegでよく使うコマンド一覧やインストール方法については、以下が参考になります。

目次

動画を回転させるコマンド

ffmpegで動画を回転するには-vfオプションを指定します。

bash
1
2
3
4
$ ffmpeg \
-i inputMovie.mp4 \
-vf "transpose=1" \
outputMovie.mp4

上記のコマンドでは、回転と動画ファイルの圧縮を行っています。各オプションは次の通りです。

オプション 説明
-i 入力ファイルの指定
-vf "transpose=1"で90度時計回り方向に回転させる

transposeオプションで指定できる回転は次の通りです。

  • 1 → 90度 時計まわりに回転
  • 2 → 90度 時計反まわりに回転
  • 3 → 90度 時計まわり回転後、上下を反転
  • 0 → 90度 時計反まわり回転後、上下を反転

スマートフォン向けに回転させた動画を書き出す

続いて応用例です。ffmpegで動画を回転させた後、動画サイズを軽くする圧縮処理を行う方法を見ていきたいと思います。次の例ではinputMovie.mp4を90度回転させたあと、動画を75%程度のサイズに圧縮する例です。

bash
1
2
3
4
5
$ ffmpeg \
-i inputMovie.mp4 \
-vf "transpose=1" \
-crf 26 \
outputMovie.mp4

-crfオプションに値を指定すると動画が圧縮されます。

オプション 説明
-crf 動画ファイルの圧縮。値が高いほど高圧縮されファイルサイズが小さくなる

-crfで指定する値は30を指定すると、変換前の半分程度にまで圧縮されるようです。

最近では、InstagramでIGTVという動画サービスが開始されました。私も動画を投稿することが増えてきたのですが、IGTVでは16:9のアスペクト比である横長の動画を投稿することができません。縦長サイズである9:16の動画として変換する必要があります。

そんな時にffmpegコマンドで動画回転させるのはいかがでしょうか。