可変フレーム レート (または VFR) は、ビデオ圧縮において、一部のコンテナー形式でサポートされている機能を指す用語です。この機能により、ビデオの再生中にフレーム レートをアクティブに変更したり、フレーム レートの概念を完全に排除して各フレームに個別のタイムコードを設定したりできます。
私はこのコンセプトを理解しています。しかし、これによって無数の疑問が生じ、情報パッドの大半はスタブになっています。
すべての小数点の fps は vfr ですか。整数の fps は vfr にできますか。それとも、OBS で画面を録画して fps を 30 に設定しても小数点の 29.777 になるなど、ビデオの作成方法に固有のものですか。vfr は本当に実際の録画ビデオにのみ存在し、3D/2D アニメーションには vfr がありませんか。小数点であることが定義とどう関係するのかわかりません。任意の整数値も同様に適合します。ffmpeg で -vfrdet を使用して、何かが vfr かどうかを判断できることは知っていますが、すべての vfr が小数点である場合、意味がありません。代わりに fps をチェックしないのはなぜですか。
vfr ビデオを同じ fps で再エンコードした場合、出力は同じ速度とフレーム数を維持しますか、それとも一定の fps とは異なる何らかのデータ損失 (コーデック品質損失以外) が発生しますか? vfr ビデオの再生ではすべてのフレームが表示されますか、それともフレームがスキップされる傾向がありますか (ハードウェアが完全に動作していると仮定します)?
なぜビデオ エディターは「すべて」整数以外の fps 値をサポートしないのでしょうか。つまり、整数の分数として表現できるものはすべて、fps 入力設定として使用できるべきだと私は思います。そうしないと、「ビデオ編集」の目的が達成されません。これらのフル装備のビデオ エディターが、プリセット fps を 5 つ (30/60/24/23.97/25) に制限する理由は正確には何ですか。一部のビデオ エディターは、60 fps をサポートしていると言いながら、60 fps のタイムライン編集しかサポートしていないため、さらに混乱しています。また、出力のサポート fps 値は (エクスポートする前でさえ!) 59.94 と表示され、公式チュートリアル ビデオでは、59.94 は 60 と同じであると説明されています。これが vfr に関係しているのか、それとも他の何かなのかはわかりません。
vfr の fps 値は、ビデオ全体の平均 fps ですか? それとも、より高度な平均化/計算方法ですか? vfr ビデオで 1 つの「平均」 fps をリストすることの役割は何ですか? 定義では、ビデオは 1 つの fps とは無関係であるとされています...ビデオの一部を希望どおりに速く/遅くするようにビデオ プレーヤーにビデオを特定の方法で再生するように指示する特別なデータ パケットがあるのでしょうか? vfr は技術的には、ビデオの開始が 60 fps で再生され、最後の 10 秒間が 5 fps で再生されることを意味するのではないでしょうか? 1 つの数字しか基準にしない場合、ビデオ プレーヤーはどのようにして開始を 60 fps で再生し、終了を 5fps で再生することを知るのでしょうか。
答え1
Are all decimal fps vfr; can integer fps be vfr?
いいえ、1 秒あたりのフレーム数が小数であっても、一定である場合があります。たとえば、NTSC (米国のテレビ規格) は、1 秒あたり 29.97 (多くの場合、30000/1001 と表されます) フレームの一定フレーム レートです。
Does vfr really only exist on real-life recorded video, but 3d/2d animation wouldn't have vfr?
コンテンツは無関係です。アニメーションは特定のフレーム レートを念頭に置いて作成される傾向があります。ただし、必ずしもそうしなければならないという理由はありません。
I don't see what being a decimal has to do with the definition
何もない。
why not just check the fps instead.
「fps をチェックする」とはどういう意味ですか (ポイント 4 を参照)
If you re-encode vfr video at the same fps,
それは、エンコード方法とエンコードに使用するツールの動作方法に完全に依存します。ほとんどのツールは、フレームレートを変更せずに、入力されたものをそのまま出力します(指示しない限り)。
Does playback of a vfr video show ALL the frames or does it tend to skip frames
デバイスによって異なります。たとえば、テレビが 60Hz で 61 fps でエンコードする場合、すべてのフレームを表示することはできません。ただし、コンテンツの平均が 60fps であっても、62 にバーストすると、テレビはフレームを均等に分散してすべてを表示するか、2 つのフレームをドロップして後で 2 つのフレームを繰り返す可能性があります。ディスプレイはそれぞれ異なり、何をすべきかについてのルールはありません。
Why do video editors not 'all' support non-integer fps values?
これらのツールの作成者に問い合わせる必要があります。怠惰、コスト、または単純さ以外の理由で、どのツールにもそのような機能が組み込まれていない理由はありません。
シンプルさの点についてさらに詳しく説明すると、多くの場合、ユーザーが求めるフレーム レートは不可能です。たとえば、RTMP は 1khz クロックを使用するため、30fps CFR も不可能です (30 は 1000 を均等に割り切れず、フレームの 3 分の 2 が 33 ミリ秒、3 分の 1 が 34 ミリ秒の 30 fps AFR になります)。UI に、ユーザーがフレーム レートに任意の値を入力できる比率がある場合、選択したビデオ形式の制限により、予想外の結果になることがよくあります。
telling me and everyone that 59.94 is the same as 60
まったく同じではありません。ほとんどの場合、問題にはなりませんし、インターネット ビデオの場合も問題にはなりませんが、一部のテレビ放送ワークフローでは、さまざまな機器が連携して動作するために、フレーム レートが正確でなければならないことがよくあります。
Is the fps value of a vfr just the average fps across the entire video?
平均フレーム レートを計算する方法に標準はありません。ソフトウェアはヘッダーから値を読み取るだけの場合もあり、最初の数秒の平均を計算する場合もあれば、ファイル全体のフレーム レートを計算する場合もあります。ツールごとに動作が異なります。
What is even the role of having a singular listed 'average' fps in a vfr video?
共謀。
is there some kind of special data packet that tells the video player to playback the video in a certain way such that some parts are faster/slower in the desired fashion?
いいえ、すべてのフレームにはタイムスタンプが関連付けられています。プレーヤーは、次のフレームを表示する時間になるまで、フレームを表示するだけです。フレームごとに速度が速くなったり遅くなったりします。
Can't vfr technically mean the start of a video plays at 60 fps and the last 10 seconds play at 5 fps?
はい
How would a video player know to play the start at 60 fps...and the end at 5fps...if it only has 1 number to go off of.
基準となる数字は 1 つではありません。フレームごとに 1 つの数字があります。