У меня есть небольшой видеофайл, который ffprobe описывает как:
Input #0, avi, from 'sample.avi':
Metadata:
encoder : Lavf55.12.100
Duration: 00:00:35.00, start: 0.000000, bitrate: 546 kb/s
Stream #0:0: Video: msmpeg4v3 (MP43 / 0x3334504D), yuv420p, 320x240,
506 kb/s, 200 fps, 200 tbr, 200 tbn, 200 tbc
Как видео 35 сек. долго, и с частотой кадров 200 кадров в секунду, я ожидаю, что будет (35 х 200) = 7000 кадров в видео.
Если я использую ffmpeg для фактического извлечения кадров из видео, я на самом деле получаю 6999 изображений (наверное, достаточно близко). Команда, которую я использую для этого:
c:\> ffmpeg -i sample.avi -f image2 -c:v png Img%%04d.png
Примечание: «%%» требуется, когда команда запускается из интерфейса командной строки 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.
Если есть другой способ сделать это, я в первую очередь пытаюсь составить таблицу «число кадров» и «время» для серии видеофайлов для использования в другом приложении.
Благодарю.