記事内に広告が含まれています。
- この記事でわかることをまとめました
- 図1:CRFを上げるほど、ファイルサイズはCRF 23の出力より小さくなりました
- 使った動画と変換の方法をまとめました
- 5条件のファイルサイズを表にまとめました
- 図2:変換時間の中央値は、CRF 18の6.37秒からCRF 38の5.38秒までの範囲でした
- 変換時間と静止画のSSIMも表にまとめました
- CRFごとに分かったことをまとめました
- 図3:並べた範囲では、私の目視では違いははっきりとは分かりませんでした
- この実測を読むときの範囲をまとめました
- 今回の範囲では、CRF 38のファイルはCRF 23の出力の約3分の1になりました
- 関連する実測記事もあわせて読んでみてください
この記事でわかることをまとめました
結論です。今回の縦型動画10秒をH.264で変換した範囲では、CRF 23の出力を100とした割合は、CRF 18で145.5、CRF 28で69.1、CRF 33で50.4、CRF 38で34.4になりました。CRF 38のファイルは、CRF 23の出力を100として34.4で、約3分の1でした。
縦型動画をH.264で保存し直すときに、CRFを18から38まで変えると、ファイルサイズと変換時間がどれだけ変わるのかを、私が実測しました。
この環境で計測した変換時間の中央値は、CRF 18の6.37秒からCRF 38の5.38秒まで、差は0.99秒でした。
図1:CRFを上げるほど、ファイルサイズはCRF 23の出力より小さくなりました
図1は、CRF 23で変換したファイル(392,953バイト)を100として、各CRFのファイルサイズの割合を棒グラフにしたものです。
使った動画と変換の方法をまとめました
素材は、1080x1920pxの縦型動画です。30fps、10.0秒、300フレーム、H.264、音声なしで、ファイルサイズは937,490バイトです。画面はスライドのような内容で、動きの少ない動画です。
私はこの動画を、ffmpegでCRF 5段階(18・23・28・33・38)に変換しました。
- コーデックは全てH.264(libx264、preset medium、yuv420p)です。
- 解像度は1080×1920、フレームレートは30fps、音声なしで、全条件そろえました。
- 変えたのはCRFだけです。
- 変換は各条件で3回行い、変換時間は3回の中央値です。
- ファイルサイズは3回とも同じバイト数でした。表のバイト数はその共通の値です。
フレーム数はffprobeの実カウントです。出力の幅と高さもffprobeで確認し、1080×1920になっていました。
割合は、元の動画(937,490バイト)を100とした値と、CRF 23で変換したファイル(392,953バイト)を100とした値の2種類を、バイト数から直接計算し、小数第1位に丸めました。
5条件のファイルサイズを表にまとめました
| 条件 | バイト | 元の動画を100とした割合 | CRF 23の出力を100とした割合 | フレーム数 |
|---|---|---|---|---|
| 元の動画 | 937,490 | 100.0 | – | 300 |
| CRF 18 | 571,724 | 61.0 | 145.5 | 300 |
| CRF 23 | 392,953 | 41.9 | 100.0 | 300 |
| CRF 28 | 271,448 | 29.0 | 69.1 | 300 |
| CRF 33 | 198,213 | 21.1 | 50.4 | 300 |
| CRF 38 | 135,219 | 14.4 | 34.4 | 300 |
表の「-」は、該当する値がないことを表しています。「CRF 23の出力を100とした割合」の列は、変換した条件どうしの比較のため、元の動画の値は載せていません。
図2:変換時間の中央値は、CRF 18の6.37秒からCRF 38の5.38秒までの範囲でした
図2は、各条件で3回変換した時間の中央値を棒グラフにしたものです。変換時間は、この環境での計測です。使う機械が変われば、時間は変わります。
変換時間と静止画のSSIMも表にまとめました
| 条件 | 変換時間の中央値(秒) | 3回の変換時間(秒) | 3秒フレームのSSIM |
|---|---|---|---|
| CRF 18 | 6.37 | 6.25/7.48/6.37 | 0.998564 |
| CRF 23 | 5.98 | 6.34/5.98/5.81 | 0.996919 |
| CRF 28 | 5.61 | 5.48/5.61/6.10 | 0.993891 |
| CRF 33 | 5.73 | 5.73/5.28/5.82 | 0.988944 |
| CRF 38 | 5.38 | 5.38/5.33/5.60 | 0.976999 |
SSIMは、1に近いほど比べる相手に近いことを表す指標です。今回は、開始3秒のフレーム画像を取り出して、元の動画の3秒のフレームとffmpegのSSIMで比べました。静止画1枚の比較です。
CRFごとに分かったことをまとめました
- フレーム数は、5条件とも300フレームで変わりませんでした。解像度とフレームレートも全条件で同じで、変わったのはCRFだけです。
- ファイルサイズは、CRF 23の出力を100とした割合で、CRF 18が145.5、CRF 28が69.1、CRF 33が50.4、CRF 38が34.4でした。
- CRFを5上げるごとに、CRF 23の出力を100とした割合は145.5から100.0へ、100.0から69.1へ、69.1から50.4へ、50.4から34.4へ下がりました。
- 変換時間の中央値は、CRF 18で6.37秒、CRF 23で5.98秒、CRF 28で5.61秒、CRF 33で5.73秒、CRF 38で5.38秒でした。CRF 33はCRF 28より長く、CRFを上げるたびに短くなったわけではありません。
- 最も長いCRF 18と最も短いCRF 38の変換時間の差は0.99秒でした。
- 3秒時点の静止画のSSIMは、CRF 18で0.998564、CRF 23で0.996919、CRF 28で0.993891、CRF 33で0.988944、CRF 38で0.976999と、CRFを上げるほど小さい値になりました。静止画1枚の比較です。
図3:並べた範囲では、私の目視では違いははっきりとは分かりませんでした
図3は、元の動画とCRF 18・CRF 28・CRF 38の出力から、開始3秒のフレームを取り出して並べたものです。表示のために、高さ480pxへそろえています。
図3に写っているのは、英語入試・併願カレンダーを紹介するスライドの場面です。
この表示の大きさで並べた範囲では、私の目視では4枚の違いははっきりとは分かりませんでした。違いは、SSIMの数値で比べました。
この実測を読むときの範囲をまとめました
- 素材は、スライドのような画面が中心の、動きの少ない縦型動画10秒です。動きの多い実写の動画では、ファイルサイズの割合の出方が変わる場合があります。
- 設定はH.264に固定した比較です。ほかのコーデックでは、ファイルサイズの割合が変わる場合があります。
- 変換時間はこの環境での計測です。使う機械が変われば、時間は変わります。
- SSIMは静止画1枚の比較です。動画全体の見え方とは別に読んでください。
今回の範囲では、CRF 38のファイルはCRF 23の出力の約3分の1になりました
今回の縦型動画10秒をH.264で変換した範囲では、CRFを18から38まで上げると、ファイルサイズはCRF 23の出力を100として145.5から34.4まで下がりました。変換時間の中央値は6.37秒から5.38秒で、差は0.99秒でした。
関連する実測記事もあわせて読んでみてください
このブログで実測した記事として、動画コーデックを比べた記事と、解像度を比べた記事と、フレームレートを比べた記事もあります。あわせて読んでみてください。
コメント