縦型動画のフレームレートでファイルサイズはどれだけ変わるか 30fpsから10fpsまで実測しました

IT・仕事術

記事内に広告が含まれています。

この記事でわかることをまとめました

縦型動画のフレームレートを30fpsから24fps・15fps・10fpsへ下げて保存し直すと、ファイルサイズと変換時間がどれだけ変わるのかを、私が実測しました。

結論です。今回の縦型動画10秒を、H.264のCRF 23で変換した範囲では、30fpsの出力を100とした割合は、24fpsで81.2、15fpsで72.7、10fpsで69.8になりました。10fpsでフレーム数は30fpsの3分の1になりましたが、ファイルサイズは約7割にとどまりました。

変換時間の中央値は、30fpsの6.44秒から10fpsの2.72秒まで、フレームレートを下げるほど短くなりました。

図1:10fpsにしても、ファイルサイズは30fpsの出力の約7割にとどまりました

30fpsの出力を100としたときの割合を比べた棒グラフで、24fpsは81.2、15fpsは72.7、10fpsは69.8になっていることを示しています
図1:30fpsの出力を100とした割合を、フレームレートごとに比べました。

図1は、30fpsで変換したファイル(392,953バイト)を100として、24fps・15fps・10fpsの割合を棒グラフにしたものです。

使った動画と変換の方法をまとめました

素材は、1080×1920pxの縦型動画です。30fps、10.0秒、300フレーム、H.264、音声なしで、ファイルサイズは937,490バイトです。画面はスライドのような内容で、動きの少ない動画です。

私はこの動画を、ffmpegでフレームレート4段階(30fps・24fps・15fps・10fps)に変換しました。コーデックは全てH.264(libx264、CRF 23、preset medium、yuv420p、音声なし)にそろえています。フレームレートの変更には、ffmpegのfpsフィルタを使いました。

変換は各条件で3回ずつ行いました。変換時間は3回の中央値です。ファイルサイズは3回とも同じバイト数だったので、表のバイト数はその共通の値です。

フレーム数はffprobeの実カウントです。割合は、元の動画(937,490バイト)を100とした値と、30fpsで変換したファイル(392,953バイト)を100とした値の2種類を、バイト数から直接計算し、小数第1位に丸めました。

4条件のファイルサイズとフレーム数を表にまとめました

条件バイト元の動画を100とした割合30fpsの出力を100とした割合フレーム数
元の動画(30fps)937,490100.0–300
30fps392,95341.9100.0300
24fps319,06734.081.2240
15fps285,80030.572.7150
10fps274,39129.369.8100

表の「-」は、該当する値がないことを表しています。

図2:変換時間は、フレームレートを下げるほど短くなりました

変換時間の中央値を比べた棒グラフで、30fpsは6.44秒、24fpsは5.36秒、15fpsは3.47秒、10fpsは2.72秒になっていることを示しています
図2:変換時間の中央値(3回)を、フレームレートごとに比べました。

図2は、各条件で3回変換した時間の中央値を棒グラフにしたものです。変換時間は、この環境での計測です。使う機械が変われば、時間は変わります。

変換時間と静止画のSSIMも表にまとめました

条件変換時間の中央値(秒)3回の変換時間(秒)3秒フレームのSSIM
30fps6.446.28/7.46/6.440.996919
24fps5.365.76/5.23/5.360.997089
15fps3.473.47/3.36/3.650.997813
10fps2.722.83/2.70/2.720.997976

SSIMは、1に近いほど比べる相手に近いことを表す指標です。今回は、開始3秒のフレーム画像を取り出して、元の動画の3秒のフレームとffmpegのSSIMで比べました。静止画1枚の比較です。

フレームレートごとに分かったことをまとめました

  • フレーム数は、30fpsの300から、24fpsで240、15fpsで150、10fpsで100になりました。10fpsのフレーム数は、30fpsの3分の1です。
  • ファイルサイズは、30fpsの出力を100とした割合で、24fpsが81.2、15fpsが72.7、10fpsが69.8でした。フレーム数を3分の1にしても、大きさは約7割にとどまりました。
  • 15fpsと10fpsの差は小さく、割合では72.7と69.8、バイト数では285,800バイトと274,391バイトで、差は11,409バイトでした。
  • 変換時間の中央値は、30fpsで6.44秒、24fpsで5.36秒、15fpsで3.47秒、10fpsで2.72秒でした。
  • 3秒時点の静止画のSSIMは、30fpsで0.996919、24fpsで0.997089、15fpsで0.997813、10fpsで0.997976となり、4条件とも近い値でした。

図3:静止画で並べた範囲では、私の目視では違いははっきりとは分かりませんでした

元の動画と、30fps・15fps・10fpsの出力から、開始3秒のフレームを取り出して横に並べた比較画像です
図3:元の動画と30fps・15fps・10fpsの出力から、開始3秒のフレームを取り出して並べました。

図3は、元の動画と30fps・15fps・10fpsの出力から、開始3秒のフレームを取り出して並べたものです。図3に写っているのは、英語入試・併願カレンダーを紹介するスライドの場面です。静止画で並べた範囲では、私の目視では違いははっきりとは分かりませんでした。

この実測を読むときの範囲をまとめました

  • 素材は、スライドのような画面が中心の、動きの少ない縦型動画10秒です。動きの多い実写の動画では、割合の出方が変わる場合があります。
  • 設定はH.264のCRF 23に固定した比較です。ほかのコーデックやCRFでは、割合が変わる場合があります。
  • 変換時間はこの環境での計測です。使う機械が変われば、時間は変わります。
  • フレームレートを下げた動画は、フレーム数が少ないぶん、動きが滑らかでなくなります。ただし、その度合いは数値で測っていません。今回測ったのは、ファイルサイズと変換時間と静止画のSSIMだけです。

今回の範囲では、10fpsにしてもファイルサイズは30fpsの出力の約7割までしか下がりませんでした

今回の縦型動画10秒を、H.264のCRF 23で変換した範囲では、フレームレートを30fpsから10fpsへ下げると、フレーム数は3分の1の100になり、ファイルサイズは30fpsの出力を100として69.8になりました。変換時間の中央値は6.44秒から2.72秒に短くなりました。

関連する実測記事もあわせて読んでみてください

このブログで実測した記事として、動画コーデックを比べた記事と、HyperFramesの動画の書き出しを測った記事もあります。あわせて読んでみてください。

コメント

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