広告 iPhone、PC 関連

iMovieで書き出したVideoファイルのサイズが大きくなる原因とHandBrakeによる再圧縮の効果

macOS標準の動画編集ソフト「iMovie」を使っていると、書き出した動画ファイルが元ファイルより大きくなるという現象に疑問を持ったことはないでしょうか? 本記事では、前回作成したビットレート解析ツール「PlotBitrate Viewer」を用いて、iMovie書き出し前後の動画の構造(I/P/Bフレーム)やビットレートの違いを可視化し、その原因を考察しました。 さらに、書き出した動画を「HandBrake」で再圧縮し、SSIM指標による画質評価とファイルサイズのバランスが良い条件についても検証しています。

 

PC環境とアプリ・バージョン:
M1 MacBook Air:Version (Tahoe 26.3.1 )
iMovie:Version 10.4.4 
HandBrake:Version 1.11.1 公式サイト

 

使用ツールの概要(PlotBitrate ViewerとSSIM評価)

  • PlotBitrate Viewer:映像フレーム(IPBのビットレートが色分けされて表示されます。 詳細は ここをクリックして参照してください。
映像フレーム(I,P,B)について:
Iフレーム(Intra)brown 単体で完結した画像(基準となるフレームで「Iから次のIまで」が1つのGOP)
Pフレーム(Predicted)greeen 前のフレームとの差分だけを記録
Bフレーム(Bidirectional)blue 前後のフレームとの差分を使う(最も効率的) 
  • SSIM(構造類似性指数)による画質評価:ターミナルから、以下のFFmpegコマンドラインを実行すると、表示例で示すように画質劣化程度を示すSSIM値が表示されます。 ALLは総合評価の画質値を示します。 記事中のSSIM値は、ALLの総合評価を使用しています。
 command-SSIM
【基本形】ffmpeg -i "元動画ファイル" -i "比較する動画ファイル" -lavfi ssim -f null -
    ↓↓↓↓↓
【元動画の50fpsに合わせるSSMIコマンド】←iMovie書き出しでfps60になるため
ffmpeg -i "元動画ファイル" -i "比較する動画ファイル"\
 -filter_complex "[0:v]fps=50,setpts=PTS-STARTPTS[ref];\
[1:v]fps=50,setpts=PTS-STARTPTS[dist];\
[ref][dist]ssim" -f null -
SSMI値・表示例
[Parsed_ssim_0 @ 0xac502d500] SSIM Y:0.979459 (16.873848) U:0.985604 (18.417474) 
         V:0.987146 (18.909747) All:0.981765 (17.390832)
<SSIM値 画質の目安>
0.99〜1.00 ほぼ完全一致(劣化ほぼなし)
0.95〜0.99 軽微な劣化(ほぼ気づかない)
0.90〜0.95 やや劣化(注意して見ると分かる)
0.90未満 明確に劣化

 

検証に使用した動画素材(オリジナル動画)

今回の検証では、Pixabayから入手した以下の動画を使用させて頂きしました。

  • ファイルサイズ:47MB
  •  コーデック:AVC(H.264)
  •  解像度:1920×1080
  •  フレームレート:50fps
  •  ビットレート:約6,134 kb/s
  • 録画時間:60s

PlotBitrate Viewerで確認
IPBフレームがバランスよく使用された一般的な圧縮動画です。(Iフレームは約5秒間隔)

iMovie書き出し設定ごとの違い(サイズ・ビットレート・SSIM比較)

iMovie書き出し設定は、「解像度」「品質」「圧縮」の3つがあります。
「解像度=1080 60」、「圧縮=高速」は固定にして、「品質=」、「品質=」、「品質=最高(ProRes)」の3通りについて、評価します。

品質:「低」の場合

[オリジナル動画からの変化指標]

  • ファイルサイズ:51.7MB(若干増加)
  • SMI値:0.970351 軽微な劣化
  • フレームレート:59.940fps
  • ビットレート:約6,711 kb/s
  • max bitrate:約104.5Mb/s

PlotBitrate Viewerで確認
Iフレーム:0.5秒間隔 + Pフレームのみ(Bフレームなし

品質:「高」の場合

[オリジナル動画からの変化指標]

  • サイズ:151.9MB(大幅増加)
  • SMI値:0.978672 ほぼ気づかない
  • フレームレート:59.940fps
  • ビットレート:約20.1 Mb/s
  • max bitrate:約174.8 Mb/s

PlotBitrate Viewerで確認
Iフレーム:0.5秒間隔 + Pフレームのみ(Bフレームなし

品質:「最高」の場合

[オリジナル動画からの変化指標]

  • サイズ:1.77GB(桁違いに爆増)
  • SMI値:0.994899 ほぼ完全一致
  • フレームレート:59.940fps
  • ビットレート:約234 Mb/s
  • max bitrate:約252 Mb/s
  • 拡張子が mov に変わる

PlotBitrate Viewerで確認
Iフレームのみ:0.02秒間隔( PBフレームなし

 

iMovieで動画サイズが大きくなる主な原因【考察】

ファイルサイズが大きくなる主な原因は以下と考えられます。
  1. 元のオリジナル動画が50fpsに対して、iMovieは60fps固定のため、ビットレート増加の一因です。
  2. Iフレームの頻度を高めていること。
  3. Bフレームを使わない構造になっていること(Bフレームは圧縮効率が非常に高いため、これが無くなることで 同じ画質でもデータ量が増加します。)
  4. 品質「低」と「高」の場合:「高」の方がビットレートが大きいのでサイズが大きくなります。
  5. 品質「最高」の場合:全てが、Iフレームで構成されており、Iフレーム単体で完結しているので 差分圧縮が使えないので自ずからサイズが非常に大きくなります。(オリジナル動画に対して劣化が少なくなります。[SMI値:0.9949 ほぼ完全一致])

iMovieの設計は、Iフレームの頻度を高め、シーク操作(早送り・巻き戻し)を容易にすることで、「編集性」を重視し、そのためファイルサイズが大きくなります。 これは、品質優先の中間マスタ的な設計を採用しているためと考えられます。 以上の結果から、書き出しサイズをセーブするには、「HandBrake」で再圧縮するのが一般的です。

 

オペレータ
オペレータ
ここから、iMovieの品質「高」で書き出した動画を「HandBrake」で再圧縮し、どの程度サイズが圧縮され、元動画の劣化程度がどうなるか?SSIM値で調べて見てみます。

 

iMovieの品質「高」動画をHandBrakeで再圧縮【画質とサイズの変化】

定番プリセット:General の中の「first 1080p30 」を選択後、以下の様に変更しています。

HandBrakeの映像系プリセット・条件

映像タグ
フレームレート:ソースと同じ
AVC(H.264)、RF(Rate Factor)=20

解像度タグ
解像度:制限なし
---

 

プリセット条件でiMovie「高」を圧縮

[変化指標]

  • サイズ:33.2MB ←iMovie:151.9MB
  • SMI値:0.967626 ←iMovie:0.978672
  • Iフレーム間隔:10s ←iMovie:0.5s
  • ビットレート:約4246 kbps
  • max bitrate:約113.1Mb/s

PlotBitrate Viewerで確認

 

【マトメ】iMovie→HandBrake:ファイルサイズとSSMI値データ一覧

項目 元動画 iMovieで書き出し HandBrakeで再圧縮
品質「低」 品質「高」 品質「最高」 品質「低」 品質「高」 品質「最高」
サイズ 47MB 51.7MB 151.9MB 1.77GB 29.5MB 33.2MB 29.8MB
100% 110% 323% 3,766% 63% 71% 63%
SSIM値 0.970351 0.978672 0.994899 0.962708 0.967626 0.981765
画質 軽微劣化 軽微劣化 ほぼ完全 軽微劣化 軽微劣化 軽微劣化

一覧表から得られる考察

  1. HandBrakeで再圧縮を行うと、iMovieのいずれの品質設定で書き出したファイルも、ほぼ一定のサイズに圧縮される。
  2.  iMovieの「最高」で書き出した場合、元動画の約30倍のファイルサイズとなり、ファイル共有や配信には不向きである。 ただし、HandBrakeで再圧縮した場合でも、画質の劣化は最も少ない。
  3.  iMovieの「低」で書き出したファイルをHandBrakeで再圧縮すると、画質は軽微劣化ながらレベルが最も低くなるため、HandBrakeの使用は避けた方が良いと思われれる。 HandBrakeを使わないなら、 iMovieの「低」がオススメ
  4.  iMovieとHandBrakeの最適な組み合わせは、iMovieの「高」で書き出した後にHandBrakeで再圧縮する方法であり、画質とファイルサイズのバランスが最も良い。

 

以上、iMovie単体では、編集機能に重点を置いているため、書き出されたファイルのサイズが大きくなります。 今回の記事を参考に、HandBrakeと併用することで、使徒に合わせて、最適なファイルサイズと画質のバランスを得ることが出来ると思います。

 

スポンサーリンク