ビデオのフレーム レートが可変かどうかはどうすればわかりますか? プログラムで実行できる必要はありませんが、数百メガバイトのプログラムをインストールしたくないのです。たとえば、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 用のポータブル バージョンあり、無料) ビデオに可変フレーム レートがあるかどうかを判別します。