可変フレームか固定フレームかを調べることが出来る vfrdet
フィルタ。コンソールには総フレーム数と可変フレーム数、 pts 間隔の最大値最小値が表示される。
基本コマンド
ffmpeg -i input -an -vf vfrdet -f null -
表示ログの例
固定フレームなら右に総フレーム数、左に可変フレーム数。
[Parsed_vfrdet_0 @ 000000000295fe80] VFR:0.000000 (0/34046)
可変フレームなら右に総フレーム数とは限らず、左に可変フレーム数かもよく分からない。pts 間隔の最大値最小値。
[Parsed_vfrdet_0 @ 00000000004e7f80] VFR:0.641629 (89787/50149) min: 0 max: 35)
公式ドキュメント:FFmpeg Filters Documentation : vfrdet
pts 間隔を調べるには ffprobe で調べる方法と、mkvtimestamp_v2 で調べる方法があるが、2つの方法が一致するとも限らない。
ffprobe
ffprobe -v error -i input -select_streams v:0 -show_entries packet=pts_time > pts_time.txt
mkvtimestamp_v2
ffmpeg -i input -an -f mkvtimestamp_v2 mkvtimestamp_v2.txt