【動画】VFRをCFRに変換する方法【フレームレート】

動画編集ソフトでは「VFR」な動画は扱えません。

動画編集ソフトでVFR動画を読み込む場合は、CFRに変換して読み込まないと音ズレします。(音ズレしない動画もたまにありますが)

参考VFR(可変)とCFR(固定)の違い

 

この記事では、VFRな動画をCFRに変換する方法について紹介します。

スポンサーリンク

どんな動画がVFRなのか?

例えば、

  • スマホで撮影した動画(※ほぼVFRです)
  • スマホの録画アプリを使用して録画した動画(※ほぼVFRです)
  • デジカメで撮影した動画(※ほぼVFRです)
  • デスクトップキャプチャした動画
    • ShadowPlay
    • Bandicam
    • ロイロゲームレコーダー
    • ・・etc
  • ビデオキャプチャした動画
    • 一部のビデオキャプチャソフト

などはVFRの可能性があります。

スマホ・デジカメの動画なんかはほとんどVFRです。
(iPhoneとかNexusシリーズなど、有名なスマホはほぼ全てVFRです)

VFRとCFRを判別する方法

MediaInfoなどの動画ファイルを調べるソフトを使用すれば、

VFRかCFRか判別できます。

vfr-cfr

VFR→CFRに変換する仕組み(原理)

VFR→CFRに変換する原理としては、単純に、

フレームレートが少ない部分はフレームを水増し(コピー)し、
フレームレートが多い部分は間引く(削除)だけ。

です。

例えば、25~35fpsなVFRな動画があったとして、これを30fpsなCFRに変換する際は、

  • 25fpsな部分には、同じフレーム5フレーム分水増し(コピー)する
  • 35fpsな部分からは、逆に5フレーム分間引く(削除)

という風にしてVFR→CFRに変換します。

 

要するに、

多い所は削って少ない所はコピーしちゃおう
それでCFRってことにしちゃおう

という事です。

この「削除する」「コピーする」の基準は、単純に一定の間隔によるものです。

例えば、

「○フレーム毎に削除する」
「○フレーム毎に削除する」

という感じの単純な処理です。

「ここは動きが激しいからなるべく間引かないようにしよう!」みたいな高度な処理はされません。

つまり、(後述していますが)VFR→CFRに変換すると(場合によっては)動画が劣化する事があるという事です。

VFR→CFRに変換する方法

ソフト毎に紹介します。

①HandBrake

HandBrakeの場合は、

「Video」タブ→「Framerate(FPS)」→「Constant Framerate」を選択すると、CFRに変換できます。

 

また、

「Constant Quality」の値を一番右にする事で、可逆圧縮(ロスレス)にできます。

「一旦HandBrakeでCFRに変換してから他の動画編集ソフトで読み込もう」と考えているなら、可逆圧縮にしましょう。

capture_01

「Audio」タブの方は、可逆圧縮コーデックを選択できないので、

できる限り高ビットレートを割り当てて、劣化しないようにした方が良いです。

②AviUtl

AviUtlの場合は、入力プラグインを使用する事で、読み込み時にVFR→CFRに変換できます。

L-SMASH Works File Reader

「ファイル」→「環境設定」→「入力プラグインの設定」→「L-SMASH Works File Reader」を開きます。

真ん中上らへんにある「VFR->CFR」の2つのテキストボックスにて変換するフレームレート(CFR)を指定できます。

l-smash_フレームレート指定

フレームレートと入力する数値については以下のような感じです。

  • 59.94fps:60000/1001
  • 60fps:60000/1000
  • 23.976fps:24000/1001
  • 24fps:24000/1000
  • 29.97fps:30000/1001
  • 30fps:30000/1000

例えば、

  • 30fpsに変換したい場合には、「30000」「1000」と入力
  • 60fpsに変換したい場合には、「60000」「1000」と入力

と言った感じです。

 

参考【AviUtl】L-SMASH Worksの設定方法(2/2)【入力プラグイン】

Directshow File Reader

「ファイル」→「環境設定」→「入力プラグインの設定」→「Directshow File Reader」を開きます。

「フレームレート設定」の中の「指定値を使用する」というラジオボタンにチェックして、合わせたいフレームレートを指定できます。

directshow_フレームレート指定

 

参考【AviUtl】DirectShow File Readerとは?読み込み可能な形式や特徴(1/2)【入力プラグイン】

③Avisynth

Avisynth経由でAviUtlに読み込ませる事で、VFR→CFRに変換できます。

例えば、

  • DirectShowSource(標準の関数)
  • FFmpegSource(プラグイン)
  • ・・etc

などの関数・プラグインを使用すれば簡単にCFRに変換できます。

VFRな動画を読み込む事が多い人は、AvisynthでVFR動画用の読み込みファイル(.avs)を作っておくと便利かもしれません。

注意)CFRに変換する事による劣化

頭の良い人なら気づいていると思いますが、

VFRの上限値以下のフレームレート値でCFRに変換すると、動画の滑らかさは失われてしまいます。

 

例えば、

25~40fpsなVFR動画を、30fpsなCFRに変換した場合、
元々40fpsだった部分を30fpsまで間引いてるわけなので、滑らかさは失われます。

 

なので、

滑らかさを失いたくない場合は、VFRの上限値に合わせてCFRに変換するようにしましょう。
(この場合、25~40fpsなVFR動画の場合、40fpsのCFRとして変換すれば滑らかさは維持される)

ただ、VFRの上限値が極端に大きい動画がたまに存在するので、そういう動画の場合は(多少の)劣化はやむを得ないでしょう。

 

このページの情報は以上です。

 

関連ドロップフレームとノンドロップフレームの違い

関連キーフレームとは?Iフレーム・Pフレーム・Bフレームの違い【GOP】

コメント

  1. そうだったのか! より:

    「音ズレする!!」と言ってる半分以上の内の一人です。
    音ズレ直りました!アザーッス!

  2. ルヒネ より:

    このサイトのわかりやすさと、
    lsmashの充実した機能、
    どちらも素晴らしい!

    おかげ様で僕のモバイルdualcore2君は1080pでも現役です!
    ありがとうございました!!

  3. […] 原理等について詳しく知りたい場合は、下記を参照する。 https://aviutl.info/otozure/#fps https://aviutl.info/cfr-vfr/#L-SMASH_Works_File_Reader […]

  4. ゆーき(仮) より:

    大変助かりました

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