動画ファイルのメタデータ2 -縦横変更方法(FFmpeg)-

2024-11-16

動画

動画ファイルのメタデータ1 -確認方法- の続き

関連記事
  1. Shotcutの使い方:動画のトリミング・音声削除・フィルタ等
参考情報

動画ファイルにもメタデータがあり、その内容の確認方法もわかった。
今回、撮影の最初だけ姿勢が決まらずに縦になっており、ほとんどは横構図で撮影した動画が、縦構図で再生されるという問題が起こった。プロパティーを見ると、"Rotation : 90°"となっている。撮影開始時の姿勢でこのプロパティーを決めたのだろう。
いろいろ調べたが、FFmpegというツールを使ってメタデータだけ変更できた。コマンドラインツールなのでちょっと取っつきにくいが、ここに記載した以外に動画編集ソフトでできるような事がかなりできるようだ。

インストール
圧縮ファイルをダウンロードして展開、適当なフォルダに置いて、binフォルダにPathを通す。詳細は参考情報1参照

回転
結論から言うと、(cmdを開いて)以下のコマンドで変換できた。
ffmpeg -display_rotation 0 -i input.mp4 -c copy output.mp4
imput.mp4,output.mp4は実際のファイル名
参考情報2,3を参考にした。
変換は一瞬で終わったので、再エンコードはされていない(と思われる)。
メタデータもrotationが消えていること以外はほとんど同じだった。作成時刻が消えていたが…。(2025.09.02追記。iPhoneの.MOVファイルも変換できた) 
検索すると、参考情報4,5,6のような-metadataオプションを使う方法が最初に出てきたのだが、これではなぜか変更できなかった。
他に実際に画像を回転させる方法もあるが、こちらは再エンコードされる

ここからはおまけ

メタデータ表示(参考情報5参照)
ffprobe ファイル名
ffprobe -show_streams -print_format json ファイル名:json形式で表示

トリミング(時間方向の)(参考情報7参照)
ffmpeg -ss [開始時間] -i [入力ファイル] -t [切り出し範囲] -c copy [出力ファイル]
ffmpeg -ss [開始時間] -i [入力ファイル] -to [終了時間] -c copy [出力ファイル]
-tや-toを指定しないと、開始時間から最後までが作成された。
変換は一瞬で終わったので、再エンコードされていない(と思われる)。前々から動画編集ソフトでトリミングすると再エンコードされて結構な時間がかかってしまうが、なぜ再エンコードなしでできないのかと疑問に思っていた。やっぱりできるんだ。これは助かる。

 

関連情報

  1. 動画ファイルのメタデータ3 -チャプター追加(XMedia Recode)-
  2. 動画ファイルのメタデータ4 -チャプター追加(FFmpeg)-
  3. 動画ファイルのメタデータ5 -チャプター追加(FFmpeg-Python)-
  4. 動画ファイルのメタデータ6 -チャプター追加(MPC-BEの設定と再生確認)-
  5. 動画ファイルのメタデータ7 -再エンコードなしのトリミング(ffmpegとGUIフロントエンド、その他ソフト)-
  6. 動画ファイルのメタデータ8 -再エンコードなしのトリミングとチャプター付加(XMedia Recode)-
  7. 動画のチャプターによるプレイリスト再生(RE PLAYER)