記事内に広告が含まれています。
- この記事でわかることをまとめました
- 図1:360×640にしても、ファイルサイズは1080×1920の出力の約4分の1までしか下がりませんでした
- 使った動画と変換の方法をまとめました
- 4条件のファイルサイズと画素数を表にまとめました
- 図2:変換時間は、解像度を下げるほど短くなりました
- 変換時間と静止画のSSIMも表にまとめました
- 解像度ごとに分かったことをまとめました
- 図3:静止画で並べた範囲では、私の目視では違いははっきりとは分かりませんでした
- この実測を読むときの範囲をまとめました
- 今回の範囲では、360×640にしてもファイルサイズは1080×1920の出力の約4分の1までしか下がりませんでした
- 関連する実測記事もあわせて読んでみてください
この記事でわかることをまとめました
縦型動画の解像度を1080×1920から720×1280・540×960・360×640へ下げて保存し直すと、ファイルサイズと変換時間がどれだけ変わるのかを、私が実測しました。
結論です。今回の縦型動画10秒を、H.264のCRF 23で変換した範囲では、1080×1920の出力を100とした割合は、720×1280で59.2、540×960で41.2、360×640で23.4になりました。360×640の画素数は1080×1920を100として11.1まで下がりましたが、ファイルサイズは1080×1920の出力の約4分の1にとどまりました。
この環境で計測した変換時間の中央値は、1080×1920の6.51秒から360×640の2.22秒まで、解像度を下げるほど短くなりました。
図1:360×640にしても、ファイルサイズは1080×1920の出力の約4分の1までしか下がりませんでした
図1は、1080×1920で変換したファイル(392,953バイト)を100として、720×1280・540×960・360×640の割合を棒グラフにしたものです。
使った動画と変換の方法をまとめました
素材は、1080x1920pxの縦型動画です。30fps、10.0秒、300フレーム、H.264、音声なしで、ファイルサイズは937,490バイトです。画面はスライドのような内容で、動きの少ない動画です。
私はこの動画を、ffmpegで解像度4段階(1080×1920・720×1280・540×960・360×640)に変換しました。コーデックは全てH.264(libx264、CRF 23、preset medium、yuv420p、30fps、音声なし)にそろえています。解像度の変更には、ffmpegのscaleフィルタを使いました。
1080×1920の条件は、解像度を変えずに同じ設定で変換し直したものです。
変換は各条件で3回ずつ行いました。変換時間は3回の中央値です。ファイルサイズは3回とも同じバイト数だったので、表のバイト数はその共通の値です。
フレーム数はffprobeの実カウントです。出力の幅と高さもffprobeで確認し、指定どおりになっていました。
割合は、元の動画(937,490バイト)を100とした値と、1080×1920で変換したファイル(392,953バイト)を100とした値の2種類を、バイト数から直接計算し、小数第1位に丸めました。画素数の割合は、幅と高さの積から計算し、1080×1920の2,073,600画素を100としています。
4条件のファイルサイズと画素数を表にまとめました
| 条件 | バイト | 元の動画を100とした割合 | 1080×1920の出力を100とした割合 | 画素数の割合(1080×1920を100) | フレーム数 |
|---|---|---|---|---|---|
| 元の動画(1080×1920) | 937,490 | 100.0 | – | 100.0 | 300 |
| 1080×1920 | 392,953 | 41.9 | 100.0 | 100.0 | 300 |
| 720×1280 | 232,494 | 24.8 | 59.2 | 44.4 | 300 |
| 540×960 | 161,830 | 17.3 | 41.2 | 25.0 | 300 |
| 360×640 | 92,115 | 9.8 | 23.4 | 11.1 | 300 |
表の「-」は、該当する値がないことを表しています。この列は変換した条件どうしの比較のため、元の動画の値は載せていません。
図2:変換時間は、解像度を下げるほど短くなりました
図2は、各条件で3回変換した時間の中央値を棒グラフにしたものです。変換時間は、この環境での計測です。使う機械が変われば、時間は変わります。
変換時間と静止画のSSIMも表にまとめました
| 条件 | 変換時間の中央値(秒) | 3回の変換時間(秒) | 3秒フレームのSSIM(1080×1920へ拡大して比較) |
|---|---|---|---|
| 1080×1920 | 6.51 | 6.04/8.20/6.51 | 0.996919 |
| 720×1280 | 4.22 | 4.04/4.22/4.38 | 0.987078 |
| 540×960 | 2.98 | 2.98/3.03/2.87 | 0.978935 |
| 360×640 | 2.22 | 2.13/2.22/2.59 | 0.960429 |
SSIMは、1に近いほど比べる相手に近いことを表す指標です。今回は、開始3秒のフレーム画像を取り出して、元の動画の3秒のフレームとffmpegのSSIMで比べました。
解像度を下げたフレームは、比べるために1080×1920へ拡大してからSSIMを計算しています。静止画1枚の比較です。
解像度ごとに分かったことをまとめました
- フレーム数は、4条件とも300フレームで変わりませんでした。条件として変えたのは、解像度(1フレームの画素数)だけです。
- ファイルサイズは、1080×1920の出力を100とした割合で、720×1280が59.2、540×960が41.2、360×640が23.4でした。
- 360×640の画素数は、1080×1920を100として11.1で、約9分の1です。一方でファイルサイズは、1080×1920の出力を100として23.4で、約4分の1でした。画素数の割合よりも、ファイルサイズの割合の方が大きい値になりました。
- 変換時間の中央値は、1080×1920で6.51秒、720×1280で4.22秒、540×960で2.98秒、360×640で2.22秒でした。
- 3秒時点の静止画のSSIMは、1080×1920で0.996919、720×1280で0.987078、540×960で0.978935、360×640で0.960429となり、解像度を下げるほど小さい値になりました。この数値は、解像度を下げたフレームを1080×1920へ拡大して比べた静止画1枚の比較です。
図3:静止画で並べた範囲では、私の目視では違いははっきりとは分かりませんでした
図3は、元の動画と720×1280・540×960・360×640の出力から、開始3秒のフレームを取り出して並べたものです。表示のために、高さ480pxへそろえて拡大・縮小しています。
図3に写っているのは、英語入試・併願カレンダーを紹介するスライドの場面です。
この表示の大きさで並べた範囲では、私の目視では4枚の違いははっきりとは分かりませんでした。違いは、SSIMの数値で比べました。
この実測を読むときの範囲をまとめました
- 素材は、スライドのような画面が中心の、動きの少ない縦型動画10秒です。動きの多い実写の動画では、割合の出方が変わる場合があります。
- 設定はH.264のCRF 23に固定した比較です。ほかのコーデックやCRFでは、割合が変わる場合があります。
- 変換時間はこの環境での計測です。使う機械が変われば、時間は変わります。
- SSIMは、解像度を下げたフレームを元の大きさへ拡大して比べた値です。実際の再生画面の大きさでの見え方とは別に読んでください。
今回の範囲では、360×640にしてもファイルサイズは1080×1920の出力の約4分の1までしか下がりませんでした
今回の縦型動画10秒を、H.264のCRF 23で変換した範囲では、解像度を1080×1920から360×640へ下げると、画素数は1080×1920を100として11.1になり、ファイルサイズは1080×1920の出力を100として23.4になりました。変換時間の中央値は6.51秒から2.22秒に短くなりました。
関連する実測記事もあわせて読んでみてください
このブログで実測した記事として、動画コーデックを比べた記事と、フレームレートを比べた記事もあります。あわせて読んでみてください。
コメント