動画編集ソフトでは「VFR」な動画は扱えません。
動画編集ソフトで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に変換する原理としては、単純に、
フレームレートが少ない部分はフレームを水増し(コピー)し、
フレームレートが多い部分は間引く(削除)だけ。
です。
例えば、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に変換してから他の動画編集ソフトで読み込もう」と考えているなら、可逆圧縮にしましょう。
「Audio」タブの方は、可逆圧縮コーデックを選択できないので、
できる限り高ビットレートを割り当てて、劣化しないようにした方が良いです。
②AviUtl
AviUtlの場合は、入力プラグインを使用する事で、読み込み時にVFR→CFRに変換できます。
L-SMASH Works File Reader
「ファイル」→「環境設定」→「入力プラグインの設定」→「L-SMASH Works File Reader」を開きます。
真ん中上らへんにある「VFR->CFR」の2つのテキストボックスにて変換するフレームレート(CFR)を指定できます。
フレームレートと入力する数値については以下のような感じです。
- 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」を開きます。
「フレームレート設定」の中の「指定値を使用する」というラジオボタンにチェックして、合わせたいフレームレートを指定できます。
参考:【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として変換すれば滑らかさは維持される)
このページの情報は以上です。
コメント
「音ズレする!!」と言ってる半分以上の内の一人です。
音ズレ直りました!アザーッス!
このサイトのわかりやすさと、
lsmashの充実した機能、
どちらも素晴らしい!
おかげ様で僕のモバイルdualcore2君は1080pでも現役です!
ありがとうございました!!
[…] 原理等について詳しく知りたい場合は、下記を参照する。 https://aviutl.info/otozure/#fps https://aviutl.info/cfr-vfr/#L-SMASH_Works_File_Reader […]
大変助かりました