Вот код для извлечения кадров из видео MP4
. ffmpeg -i above_marathon_250.mp4 images%03d.bmp
Но этот же код не работает для видео формата YUV
. Кто-нибудь знает, как можно извлечь кадр(ы) из видео формата YUV
?
Как извлечь кадры (или отдельные кадры) из видео YUV с помощью ffmpeg
Ответы (3)
Это не работает, потому что файлы yuv не имеют заголовка, поэтому ffmpeg не знает, какой размер/pixfmt у файла. Вам нужно указать разрешение и pixmt вручную:
ffmpeg -video_size 1920x1080 -r 25 -pixel_format yuv422p -i file.yuv output-%d.png
А затем отрегулируйте size/pixfmt, чтобы он соответствовал вашему конкретному видео.
[править] Я также предлагаю в будущем публиковать такие вопросы на суперпользователе, это не имеет ничего общего с программированием.
Команда, указанная на ffmpeg.org,
ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
Это извлечет из видео один видеокадр в секунду и выведет их в файлы с именами foo-001.jpeg, foo-002.jpeg и т. д. Масштаб изображений будет изменен, чтобы соответствовать новым значениям WxH.
В вашем случае вы можете изменить приведенную выше команду на
ffmpeg -i inputfile.yuv -r 1 -f image2 images%05d.png
где r - частота кадров, которая должна быть установлена на 1, чтобы извлечь один кадр из yuv.
r=1
ffmpeg -i inputfile.yuv -1 1 -f image2 images%05d.png Не работает.
- person mrana; 13.08.2015
[rawvideo @ 0x7fef6880da00] Could not find codec parameters for stream 0 (Video:rawvideo (I420 / 0x30323449), yuv420p, -4 kb/s):unspecified size Consider increasing the value for the 'analyzeduration' and'probesize' options above_marathon_250.yuv: could not find codec parameters Input #0,rawvideo, from 'above_marathon_250.yuv': Duration:N/A,bitrate:n/a Stream #0:0:Video:rawvideo(I420 / 0x30323449), yuv420p, -4 kb/s, 25 tbr, 25 tbn,25 tbc Output #0,image2,to'images%05d.png': Output file #0 does not contain any stream
- person mrana; 13.08.2015
Вы должны указать размер видео -video_size
и частоту кадров -r
, поэтому используйте следующий скрипт:
ffmpeg.exe -video_size 720x576 -r 25 -ss 00:00:00 -i video_input_720x576_25.yuv -vframes 1 -q:v 1 frame_output_720x576_25.jpg
Если вы хотите указать формат входного видео, включите -pixel_format yuv420p
или любой другой формат, кроме yuv420p
.