Linuxでffmpegを実行する-オプションの説明-

LinuxLogo ffmpeg

Linuxにffmpegをインストールするのつづき
Linuxでffmepgを実行し動画をエンコードした際の、コマンドのオプションとその説明、またファイルを一括変換するコマンドの備忘録

オプション

-vcodec

ビデオコーディックを指定します
変換したいコーディックがある場合このオプションとコーディックを指定すると、そのコーディックで変換されます
主に使うものは以下かと思われます

  • libx264
    MPEG-4,H.264
  • h264_nvenc
    H.264(NVIDIA CUDAアクセラレーション)
    NVIDIAのGPUを使っている場合に使用できます
    高速で変換できますが、低画質となります
  • h264_qsv
    H.264(Intel Quick Sync Video)
    IntelのCPUを使っている場合使用できます

-s

サイズを指定します
ここでは、1440×1080のサイズとします

-aspect

アスペクト比を指定します
ここでは、16:9を維持したいので16:9とします

-bf

最大 “frames” 枚の連続する B フレームを指定します
デフォルト=0 (B フレーム不使用)
ここでは、4とします

-b_strategy

B フレームの挿入位置を適応的に判断するかどうか指定します
デフォルト=0 (-bf で指定した枚数を常に使う)
ここでは、4とします

-profile:v

プロファイルを指定します

  • baseline
  • main
  • high

ここでは、より高画質にするためhighとします

-g

GOP サイズを指定します
デフォルト=12。
シークのしやすさに関係してきます
ここでは、150とします

-b:v

映像ビットレートを指定します
品質を指定するため、0とします

-cq

固定品質モードの画質を指定します

  • -qp 21 ◎ 細部の描画も良好
  • -qp 23 ◎ 静止画でも気にならない
  • -qp 25 ◎ 静止画だと少し気になる
  • -qp 28 ○ 動いているなら気にならない
  • -qp 32 △ 動きが大きい時なら許容できる
  • -qp 36  ×  動きが大きくてもかなり気になる

画質に対するサイズは25だと元ファイルの約半分強、28だと1/3ぐらいになりました
アニメの場合は25、実写の場合は28とします

-tune

最適化のタイプを指定します

  • film
  • animation
  • grain
    ざらざらが残るような古い映画などの場合使います
  • stillimage
    スライドショーなど、動きのほとんどない場合に使います
  • fastdecode
    一部処理を簡略化してデコードの際の負荷を減らします
    代わりに画質は落ちます
  • zerolatency
    再生の際のレイテンシを減らしたい場合に使います
    頭出しは速くなるが、ファイルサイズは少し増加します

ここでは、animation,zerolatencyとします

-async

音声の同期方法を指定します
音がズレたときに1秒間で何サンプルまで変更していいかを指定する
ここでは、1を指定して音声の最初だけ同期して後続のサンプルはそのままとします

-codec:a

オーディオコーデックを指定します
ここでは、copyを指定してそのまま出力します

-fflags +discardcorrupt-bsf:a aac_adtstoasc

aac bitstream errorが頻発したので、本オプションをつけました

コマンド

できたコマンドは次のようになります

ffmpeg -fflags +discardcorrupt -i {元ファイル名} -async 1 -s 1440x1080 -aspect 16:9 -vcodec h264_nvenc -bf 4 -b_strategy 4 -profile:v high -g 150 -b:v 0 -cq 25 -tune animation,zerolatency -c:a copy -bsf:a aac_adtstoasc {変換後ファイル名}.mp4

つぎにffmpegでフォルダ内ファイル一括変換するコマンドをしていきたいと思います

参考URL

最新ffmpegの高度なオプション
ffmpeg NVENCの画質と最適設定

コメント

タイトルとURLをコピーしました