У меня есть небольшой видеофайл, который 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.
Если есть другой способ сделать это, я в первую очередь пытаюсь составить таблицу «число кадров» и «время» для серии видеофайлов для использования в другом приложении.
Благодарю.
Ответы:
Есть ли причина 1023 не может быть правильным? Fps, на который вы ссылаетесь - это информация заголовка, поэтому она может быть неверной.
В выводе png много дублирующихся кадров? Ffmpeg может оказать вам услугу и вывести скопированные кадры в соответствии с сообщаемыми частотой кадров и длительностью.
Использование ffprobe - мое рекомендуемое решение. Трудно быть уверенным в 100% случаев, если вы на самом деле не декодируете кадры и не подсчитываете. Поэтому использование -count_frames или -show_frames должно дать вам номер, который вы ищете.
Примечание: нет никакой гарантии, что указанная продолжительность является точной.
источник