Как узнать, имеет ли видео переменную частоту кадров? Мне не нужно делать это программно, я просто не хочу устанавливать какую-то программу размером в сотни мегабайт; например, если бы я мог сделать это с помощью VLC Media Player, это было бы идеально.
решение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. Первое значение в скобках — это количество кадров с длительностью, отличной от ожидаемой длительности, подразумеваемой обнаруженной частотой кадров потока. Второе значение — это количество кадров с ожидаемой длительностью. Значение VFR — это отношение первого числа к сумме обоих.
Пара оговорок: очень низкое или очень высокое значение указывает на несколько ошибочных кадров с нестандартной длительностью, обычно это первый и/или последний кадр. Их можно считать CFR для большинства целей. Значение около 0,50 указывает на то, что поток имеет частоту кадров и/или временную базу, для которых условная длительность кадра не может быть точно выражена во временной базе потока, поэтому приложение, которое сгенерировало файл, колебало длительность, например, если поток имеет fps 6 и временную базу 1/100, то идеальными временными метками будут 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 МБ, кроссплатформенный, есть портативная версия для Windows, бесплатно) чтобы узнать, имеет ли видео переменную частоту кадров: