ここでは全コーデック共通の項目について説明する。
旧来、動画エンコードではビットレートを指定してエンコードするのが普通であった。
これの利点は、作成されるファイルサイズがあらかじめわかるという点である。
ただし動画の品質については、動画の内容やサイズによって変わってくるので、ビットレートをいくつか変えてみて満足する値を探す必要がある。
一方、品質固定モードは、H.264などでのデフォルトのエンコードモードである。
なおこのモードは、比較的新しく、このモードをサポートしていないコーデックもあるので注意が必要である。
この利点は、動画の縦横サイズや内容にかかわらず、あらかじめ指定した品質の動画が作成できる点である。
ただし、ファイルサイズは予測できない。動きの少ないものであれば、ファイルサイズは小さくなるし、サイズが大きくて動きの激しいものは一般的にファイルサイズが大きくなる。
このモードは、二つのモードを混ぜたようなモードである。
原則、指定された品質を保つようにエンコードするが、ビットレートは、指定されたビットレートを超えないようにエンコードされる(すなわちその部分は品質が落ちる)。
ただし、最大ビットレートをあまりに低く指定すると、常にそのビットレートでエンコードするようになってしまい、ビットレート固定モードと変わらなくなってしまうので注意が必要である。
-crf値で動画の品質を指定する。
小さい値ほど品質は良くなる。
コーデックにより、とれる値の範囲、デフォルト値は違い、また同じ数値でもコーデックにより結果が変わってくる。
ffmpeg -i exapmle.avi -crf 10 exapmle.mp4
ビットレート固定モードではこの値を指定する。-b:vオプションで指定。何もつけない場合はバイト/秒。kやMなどをつけるとkbpsやMbpsになる。
以下は300kbpsに指定した例。3例とも同じ意味である。
ffmpeg -i exapmle.avi -b:v 300000 exapmle.mp4
ffmpeg -i exapmle.avi -b:v 300k exapmle.mp4
ffmpeg -i exapmle.avi -b:v 0.3M exapmle.mp4
ビットレートは大きいほどきれいな動画が出来上がる。最新のコーデックを使うほど基本的に小さいビットレートで古いコーデックの大きなビットレートと同等の画質が得られるようになる。また、画像サイズが大きい動画ほど、ビットレートを大きくする必要がある。最終的には、適切なビットレートは何度か試してみて目で見て確認してみるしかない。なお単位のkは1000であり1024ではない。
ビットレート固定モードの場合、時間に余裕がない場合を除き、2パスエンコードを行うのが望ましい。
1パス目で動画を解析し、2パス目で解析結果を基に最適な動画を作成する。
なお、品質固定モードの場合は2パスエンコードは意味がないので注意。
やり方は、
ffmpeg -i example.avi -b:v 300k -pass 1 example.mp4
ffmpeg -i example.avi -b:v 300k -pass 2 example.mp4
と、-passを1、2と変えてエンコードする。2パスエンコードの場合、ビットレートを必ず明示的に指定する必要がある。
-passlogfileで、ログファイルを指定することもできる。
最終更新日