ビデオに可変フレーム レートがあるかどうかはどうすればわかりますか?

ビデオに可変フレーム レートがあるかどうかはどうすればわかりますか?

ビデオのフレーム レートが可変かどうかはどうすればわかりますか? プログラムで実行できる必要はありませんが、数百メガバイトのプログラムをインストールしたくないのです。たとえば、VLC メディア プレーヤーで実行できれば完璧です。

答え1

FFmpeg にはこの目的のための vfrdet フィルターがあります。

ffmpeg -i in -vf vfrdet -an -f null -

ログにはフォームの読み取りが表示されます。

[Parsed_vfrdet_0 @ 0000000003d8fec0] VFR:0.833333 (50/10) min: 23 max: 291)

VFR の値がゼロ以外の場合は、vfr ストリームであることを示します。括弧内の最初の値は、ストリームの検出されたフレーム レートによって示される予想期間とは異なる期間を持つフレームの数です。2 番目の値は、予想期間を持つフレームの数です。VFR 値は、最初の数値と両方の合計の比率です。

注意点がいくつかあります。非常に低い値または非常に高い値は、通常、最初のフレームと最後のフレーム、またはその両方に、標準外の継続時間を持ついくつかの異常なフレームがあることを示します。これらは、ほとんどの場合、CFR と見なすことができます。値が 0.50 付近の場合、ストリームのフレーム レートやタイムベースでは、想定されるフレーム期間をストリームのタイムベースで正確に表現できないため、ファイルを生成したアプリが期間を変動させたことを示します。たとえば、ストリームの fps が 6 でタイムベースが 1/100 の場合、ビデオの最初の 1 秒の理想的なタイムスタンプは 0、16.667、33.334、50.000、66.667、83.333、100.000 になりますが、タイムスタンプは整数であるため、マルチプレクサーは 0、16、34、50、67、83、100 を格納する可能性があります。これは、VFR 値が 0.5 のストリームとして表示される可能性があります。

答え2

ffprobeを使用するだけ

ffprobe -v quiet -print_format json -show_streams input

そして、目的のビデオストリームのパラメータを確認しますavg_frame_rate。このパラメータの値が次のように分数の場合

"avg_frame_rate": "1205285219/50270287"

分母が 1 でない場合、ビデオ ファイルのフレーム レートは可変になります。

値がこのようであれば

"avg_frame_rate": "25/1"

ストリームのフレーム レートが一定であることを確認してください。

答え3

使用できるメディア情報(5 MB、クロスプラットフォーム、Windows 用のポータブル バージョンあり、無料) ビデオに可変フレーム レートがあるかどうかを判別します。

ここに画像の説明を入力してください

関連情報