MRが楽しい

MRやVRについて学習したことを書き残す

FFmpegを利用して動画のフォーマットを変換する

本日はFFmpegの小ネタ枠です。
FFmpegを利用して動画のフォーマットを変換する方法についてです。

FFmpegのインストール手順

FFmpegのインストール手順は以下の記事を参照ください。
bluebirdofoz.hatenablog.com

変換したいファイルを配置したフォルダ上で Shift + 右クリックから[PowerShellウィンドウをここで開く]を選択します。

動画の拡張子を変更する

FFmpegを使って動画の拡張を変更する場合は以下のようにファイル名で拡張子を指定します。

ffmpeg -i (変換前ファイル名).mov (変換後ファイル名).mp4


動画のコーデックを変更する

動画のコーデックを変換する場合は-cオプションで指定します。
映像と音声のそれぞれのコーデックを指定できます。

ffmpeg -i input.mp4 \
  -c:v libx264 -preset medium -crf 23 \
  -c:a aac -b:a 192k \
  output.mp4
オプション 意味
libx264 H.264 エンコード
-crf 23 画質(18=高品質 / 23=標準 / 28=軽量)
-preset エンコード速度と圧縮率のバランス
aac 一般的な音声コーデック

動画の解像度を変更する

動画の解像度を変換する場合は-vf scaleオプションで指定します。

ffmpeg -i input.mp4 \
  -vf scale=1920:1080 \
  -c:v libx264 -crf 23 \
  -c:a aac \
  output_1080p.mp4

動画のフレームレートを変更する

動画のフレームレートを変換する場合は-vf fpsオプションで指定します。

ffmpeg -i input.mp4 \
  -vf fps=30 \
  -c:v libx264 -crf 23 \
  -c:a copy \
  output_30fps.mp4

動画のビットレートを変更する

動画のビットレートには以下の3種類があります。

方式 特徴 主な用途
CBR(固定) 常に同じビットレート 配信・規格準拠
VBR(可変) 目標平均を指定 ファイルサイズ管理
CRF(品質指定) 品質基準で自動調整 高画質・Unity向け

それぞれ指定する場合は以下のようにコマンドを実行します。

CBR(固定)
ffmpeg -i input.mp4 \
  -c:v libx264 -b:v 5M \
  -maxrate 5M -bufsize 10M \
  -c:a aac -b:a 192k \
  output_5Mbps.mp4
VBR(可変)
ffmpeg -i input.mp4 \
  -c:v libx264 \
  -b:v 4M -maxrate 6M -bufsize 8M \
  -c:a aac -b:a 192k \
  output_vbr.mp4
CRF(品質指定)
ffmpeg -i input.mp4 \
  -c:v libx264 -crf 23 \
  -c:a aac -b:a 192k \
  output_crf23.mp4

動画のfaststartを設定する

動画にfaststartを設定する場合は-movflagsオプションで指定します。

ffmpeg -i input.mp4 \
  -c:v libx264 -crf 23 \
  -movflags +faststart \
  output_web.mp4

faststartはMP4/MOVを「すぐ再生できる形」に最適化するためのオプションです。
動画全体の索引(目次)をデータの先頭に配置することでストリーミング再生で素早い再生が行える動画形式になります。