Как видео 35 сек. долго, и с частотой кадров 200 кадров в секунду, я ожидаю, что будет (35 х 200) = 7000 кадров в видео.
Если я использую ffmpeg для фактического извлечения кадров из видео, я на самом деле получаю 6999 изображений (я полагаю, достаточно близко). Команда, которую я использую для этого:
Примечание: «%%» требуется, когда команда запускается из интерфейса командной строки WinXP
Тем не менее, с помощью команды: -
c:\> ffprobe -select_streams v -show_frames sample.avi > frames.lis
и подсчет количества элементов [FRAME] в frames.lis дает количество кадров 1023 кадра, а не 7000.
Любое объяснение?
Вот ссылка на очень похожий файл, который ведет себя таким же образом (~ 7 МБ):
http://www.filedropper.com/sample_65
Щелкните левой кнопкой мыши изображение «Загрузить этот файл» на странице.
Я использую 17APR2014 статическую сборку Win32 для ffmpeg 'ffprobe' под WinXP-SP3.
Если есть другой способ сделать это, я в первую очередь пытаюсь составить таблицу «число кадров» и «время» для серии видеофайлов для использования в другом приложении.
Благодарю.
Можете ли вы поделиться примером видео? Обратите внимание, что продолжительность не всегда должна быть точной.
slhck 10 лет назад
0
Добавили ссылку на образец файла .avi в публикации.
Skeeve 10 лет назад
0
Для других с такой же проблемой @Skeeve получил ответы в списке рассылки FFmpeg: https://ffmpeg.org/pipermail/ffmpeg-user/2014-May/021318.html Не уверен, что это полностью решает мою проблему.
Gauthier 7 лет назад
0
1 ответ на вопрос
1
dstob
Is there a reason 1023 cannot be correct? The fps you are referring to is header info and so it can easily be incorrect.
In the output of the png's, are there a lot of duplicate frames? Ffmpeg may be doing you a favor and outputting copied frames to match the reported fps and duration.
Using ffprobe is my recommended solution. It's difficult to be certain 100% of the time unless you are actually decoding the frames and counting. So using -count_frames or -show_frames should give you the number you are looking for.
Note: There is no guarantee that the duration listed is accurate.