2014-10-07 3 views
0

Мне нужно извлечь кадры из видео с частотой 30 кадров в секунду дважды: (i) 720p png кадры и (ii) 270p tiff frames.ffmpeg: одно и то же видео, одинаковую частоту кадров, разное количество выходных кадров. Зачем?

достичь этого, используя следующие команды соответственно:

ffmpeg -r 30 -i myvideo.mp4 -s 1280x720 frames/myvideo_%06d.png 

ffmpeg -y -i myvideo.mp4 -an -r 30 -pix_fmt rgb24 -vcodec tiff -s 480x270 frames/myvideo_%06d.tif 

Тем не менее, это приводит к первой команде, выводящей 35,776 кадров и второй команду выводящей 35,812 кадров, несмотря на видео является идентичным, и частотой кадров запрошенных 30 кадров в секунду ,

Что вызывает это? Как я могу гарантировать, что ffmpeg выводит одинаковое количество (синхронизированных) кадров?

+0

Кажется, что -r зависит от положения. Перемещение -r в начало команды (т. Е. «Ffmpeg -r 30 -y -i myvideo.mp4 -an -pix_fmt rgb24 -vcodec tiff -s 480x270 frames/myvideo_% 06d.tif»), похоже, разрешает эту проблему. Мне было бы интересно, если бы кто-то более осведомленный с ffmpeg мог прокомментировать это относительно того, является ли это правильным способом мышления/решения. – Josh

ответ

0

Задание -r перед командой -i указывает скорость входного видео. Задание -r после команды -i указывает скорость вывода видео.

0

Задание -r перед входом сообщает/заставляет ffmpeg выбрать указанную частоту кадров. Если вы укажете -r после входной последовательности, ffmpeg должен угадать скорость входного кадра, которая может привести к потере кадров, что видно во втором случае.

То же самое относится и к входному разрешению.

Смежные вопросы