Как извлечь 1-й кадр и восстановить как изображение с помощью ffmpeg?
кто-нибудь знает хитрость?
и как установить ffmpeg ? yum install mpeg
возвращает только это:
======================================================================================== Matched: mpeg ========================================================================================
libiec61883.i386 : Streaming library for IEEE1394
libiec61883.x86_64 : Streaming library for IEEE1394
qffmpeg-devel.i386 : Development package for qffmpeg
qffmpeg-devel.x86_64 : Development package for qffmpeg
qffmpeg-libs.i386 : Libraries for qffmpeg
qffmpeg-libs.x86_64 : Libraries for qffmpeg
2 ответов
Это на manpage:
* You can extract images from a video, or create a video from many images: For extracting images from a video: ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg This will extract one video frame per second from the video and will output them in files named foo-001.jpeg, foo-002.jpeg, etc. Images will be rescaled to fit the new WxH values. If you want to extract just a limited number of frames, you can use the above command in combination with the -vframes or -t option, or in combination with -ss to start extracting from a certain point in time.
но, конечно, вы должны установить его в первую очередь. Я на Debian и не использую yum.
[обновление для другого вопроса]
i=1
for avi in *.avi; do
ffmpeg -i $avi -vframes 1 -f image2 /tmp/$i.jpg; i=$((i+1))
done
проверено и работает.
[обновление для еще одного вопроса...]
for flv in *.flv; do
ffmpeg -i $flv -vframes 1 -f image2 ${flv%%.flv}.jpg
done
Я собрал эту командную строку из различных ответов, которая отлично работает для меня, чтобы получить абсолютно первый кадр из видео. Я использую это, чтобы сохранить скриншот миниатюры для видео.
ffmpeg -i inputfile.mkv -vf "select=eq(n\,0)" -q:v 3 output_image.jpg
объяснение:
на выберите фильтр -vf "select=eq(n\,0)"
- выбрать только кадр #0.
-q:v
позволяет установить качество выходного jpeg между 1 и 31. Меньше число, тем выше качество. 2 - 5 работает хорошо, я использую 3.
Примечание: это даст вам изображение с тем же размером, что и видео. Чтобы получить миниатюру, вы можете использовать фильтр масштаба, чтобы получить миниатюру, чтобы соответствовать любой ширине вам нужно, например:
ffmpeg -i inputfile.mkv -vf "select=eq(n\,0)" -vf scale=320:-2 -q:v 3 output_image.jpg
приведенная выше команда даст вам миниатюру jpeg, которая будет масштабироваться до матч ширина 320, и высота будет высчитана для того чтобы соответствовать коэффициенту сжатия.