今日、私はスマートフォンから撮ったビデオに参加して、オーディオ付きの単一の映画のようなファイルを作成することにしました。ただし、ポートレートモードで撮影されたビデオもあれば、ランドスケープモードで撮影されたビデオもあります。ファイルを結合する前に、すべてのビデオファイルを同じ向き(つまりモード)に揃えたほうがよいと思いました。もちろん、多くのGUIベースのツールがあり、Smplayer、VLCなどのメディアプレーヤーには、ビデオを回転させる機能が組み込まれています。しかし、私はコマンドラインユーティリティを好みます。 FFMpegの使い方を知っています ファイルを別の形式に変換したり、ファイルを切り抜いたり、分割したり、結合したりするなど、さまざまな操作を実行します。私はすでに初心者向けに最も一般的に使用されるFFMpegコマンドをコンパイルし、このガイドに投稿しました。 。しかし、今日までFFMpegを使用してビデオを回転させる方法がわかりません。 FFMpegを使用してビデオを回転させたい場合は、以下の手順に従ってください。
システムに最新のFFMpegバージョンがインストールされていることを確認してください。 FFMpegは、多くの一般的なLinuxオペレーティングシステムのデフォルトのリポジトリで利用できるため、インストールは大したことではありません。 LinuxボックスにFFMpegをインストールしていない場合は、次のガイドを参照してください。
- LinuxにFFMpegをインストールする方法
コマンドラインからFFMpegを使用してビデオを回転させる
FFMpegには「トランスポーズ」と呼ばれる機能があります これは、ビデオを回転させるために使用されます。この機能を使用すると、ビデオを時計回りと反時計回りに簡単に回転させたり、垂直方向と水平方向に反転させたりすることができます。
たとえば、次のコマンドは、指定されたビデオを時計回りに90度回転します。
$ ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
または、次のコマンドを使用します:
$ ffmpeg -i input.mp4 -vf "transpose=clock" output.mp4
ここでは、 transpose =1 パラメータはFFMpegに指定されたビデオを時計回りに90度転置するように指示します。転置機能で使用できるパラメータのリストは次のとおりです。
- 0 -反時計回りに90度回転し、垂直に反転します。これはデフォルトです 。
- 1 -時計回りに90度回転します。
- 2 -反時計回りに90度回転します。
- 3 -時計回りに90度回転し、垂直に反転します。
動画を時計回りに180度回転させるには、以下のように転置パラメータについて2回言及する必要があります。
$ ffmpeg -i input.mp4 -vf "transpose=2,transpose=2" output.mp4
上記のコマンドは、指定されたビデオファイルのオーディオ部分とビデオ部分を再エンコードします。ビデオを再エンコードしてメタデータのみの回転を変更したくない場合は、代わりに次のコマンドを使用してください。
$ ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4
さらに良いことに、入力ファイルのすべてのグローバルメタデータ(日付、カメラの詳細など)を以下のように出力ファイルにコピーできます。
$ ffmpeg -i input.mp4 -map_metadata 0 -metadata:s:v rotate="90" -codec copy output.mp4
回転メタデータを処理できない一部のプレーヤーでは機能しないことに注意してください。メタデータのみでビデオの向きを変更し、Smplayerで再生しました。しかし、それは前のオリエンテーションでビデオを再生し続けました。しかし、それはGnomeメディアプレーヤーで機能しました!どうしてか分かりません。そのため、ビデオの向きが機能しなかった場合は、最初のコマンドに示すように、ビデオの向きを再エンコードする必要があります。
推奨される読み物:
- Linuxで画像メタデータを表示する方法