Twitterに投稿 はてなブックマークに追加 Google Bookmarksに追加

目次 >> ffmpeg >> VP9でエンコードする

VP9でエンコードする

VP9のコーデックを指定する

ffmpegで出力ファイルに.webmを指定すると、自動的にVP9(デフォルトのビットレートは200k)が使われる。

VP9でエンコードするには、

-vcodec vp9

もしくは

-vcodec libvpx-vp9

を指定する。

なお、一世代前のVP8でエンコードするには、

-vcodec vp8

もしくは

-vcodec libvpx

と指定する必要がある。

ビットレート一定のモード

VP9では、何もオプションを指定しない場合ビットレート固定モードとなる。
オプションを指定しない場合のデフォルトのビットレートは200k(ただし200kであまりに小さすぎてエンコードできないようなものは、これより大きな値になるようである)であり、これは、最近のビデオサイズであると、かなり低い。
DVDサイズでも、500k前後、できれば1M以上はほしいところである。保存用であれば、フルHDで20Mbps、4kで60Mbpsはほしい。
なお、ビットレートを非常に高く指定しても、それ以下で最高品質である-crf 0が実現してしまう場合、それが実現するビットレートでエンコードされる。すなわち非常に高いビットレートを指定しても指定したビットレートに達しない場合がある。

ほかのコーデック同様、1パス、および2パスエンコードが使用可能で2パスエンコードが望ましい。

品質一定モード

-crfオプションで決まる。値は0から63。
小さい数字ほど品質は上がる。

この際に、-b:v 0を必ず同時に指定する。これを指定しないと下記の理由により、ビットレートが200kbpsに制限されてしまう。

VP9では、-b:vで指定されたビットレートを上限に、crfで指定された品質を実現しようとする。
ビットレートを指定せずに、-crfしかし指定しないとデフォルトのビットレート200kbpsが上限に適用されてしまうので、実質望みのcrfを実現できない。
完全にcrfに従うようにするには、ビットレートを極端に高い値にする。例えば、-crf 10 -b:v 1000Mbpsなどとすると、当然1000Mなどというビットレートには達しないので、crf値に従ってビットレートは決まる。-b:v 0としても上限が無制限になり、crf値に従ってビットレートは決まる。

deadlineオプション

deadlineオプションはエンコード速度と品質もしくは出来上がるファイルサイズを決定する。

-deadline [realtime, good, best]

デフォルトはgood。bestにすると品質一定モードの場合、品質は同じであるが、ファイルサイズは小さくなる一方、エンコード時間は延びる。

マルチプロセッサを使う

-threadsで使用するプロセッサの数を指定する。

-threads 8

とすると、8つ使用する。

最終更新日


本文中のFC4はFedora ProjectのFedora Core 4を、FC5はFedora Core 5を、FC6はFedora Core 6をopenSUSEはNovellのSUSE Linux OSSを表します。Fedora7以降は、単にFedora7、Fedora8、Fedora9、Fedora10、Fedora11、Fedora12、Fedora13、Fedora14、Fedora15と表示しています。Ubuntuは、必要に応じて20.04、21.04のようにバージョン番号をつけて区別しています。

ここに登場するドメイン名やIPアドレスなどはフィクションです。実在の人物・団体等とは一切関係がありません。
実際に使用する際は、各自の環境に合わせて書き換えてください。
もし何か間違いなどありましたらこちらからご連絡ください
リンクに許可は不要です。
Copyright (C) 2021 Chikuma Engineering Co., Ltd. All Rights Reserved.