Может ли ImageMagick создавать миниатюры из видео?

13796
Juneyoung Oh

Я пытаюсь извлечь миниатюры из видео через ImageMagick. Я нашел несколько образцов с их официального сайта, но он делает GIF, а не PNG. Я хочу твердую миниатюру, хотя.

Может ли он создать тот же вывод, что и с этой командой ffmpeg?

ffmpeg -ss 600 -i myVideo.mp4 -vframes 1 -s 420x270 Out.bmp 
11

2 ответа на вопрос

17
evilsoup

You can extract thumbnails from videos with ImageMagick like so (from here - another answer claims that ImageMagick uses ffmpeg 'under the hood', so I don't know if this will actually be any faster than just using ffmpeg):

convert input.mp4[100] thumbnail.png 

the [100] tells ImageMagick to take the 100th frame from input.mp4. I've tested it on a H.264 video stream in an MP4 container. Obviously you can use whatever ImageMagick options you want, including deinterlacing as described in your link.


ImageMagick is really for dealing with individual images, though; for video, you should just use ffmpeg. Obviously there is some overlap here, since you're dealing with an individual frame, but I'd say that deinterlacing is more of a video-processing task.

You should use the yadif filter for deinterlacing. You can add it to your existing line thusly:

ffmpeg -ss 600 -i input.mp4 -vframes 1 -s 420x270 -filter:v 'yadif' output.png 

when working with filters, I prefer to use the scale filter rather than -s:

ffmpeg -ss 600 -i input.mp4 -vframes 1 -filter:v 'yadif,scale=420:270' output.png 
Может быть, я неправильно понимаю вопрос, но ОП специально спросил, как добиться того, что команда `ffmpeg` делает с ImageMagick. Не знаю, возможно ли это или нет ... slhck 10 лет назад 0
@slhck Я интерпретировал реальную проблему ОП как «получение красиво выглядящих миниатюр из чересстрочного видео» и предположил, что они просто пытались использовать неправильный инструмент для работы (т.е. получить миниатюру с помощью ffmpeg -> deinterlace с ImageMagick). Однако, если кто-нибудь опубликует способ сделать это с помощью ImageMagick, у них будет мое одобрение. evilsoup 10 лет назад 0
@evilsoup спасибо за ваш ответ. Я загрузил этот вопрос, потому что ffmpeg занимает слишком много времени, чтобы сделать миниатюру из видео. И я откуда-то слышал, что если я использую imagemagick, я могу сделать это быстрее. Это правда и возможно? Я также искал это, но нет никакого способа взять миниатюру из видео только с imagemagick. Извините за мой плохой английский. Juneyoung Oh 10 лет назад 0
@JuneyoungOh, взять эскизы с помощью ImageMagick действительно возможно, смотрите обновление к моему ответу. Я сомневаюсь, что это будет происходить быстрее, так как кажется (из моего поверхностного поиска в Google), что ImageMagick использует ffmpeg в качестве серверной части для работы с видео. evilsoup 10 лет назад 0
@evilsoup О, спасибо. Я думал, что это невозможно. Теперь я могу проверить, что быстрее: D большое спасибо. Juneyoung Oh 10 лет назад 0
6
cnd

ImageMagick выдает ffmpeg с помощью этой команды:

ffmpeg -v -1 -vframes %S -i "%i" -vcodec pam -an -f rawvideo -y "%u.pam" 2> "%Z" 

Таким образом, краткий ответ «нет» (поскольку он не делает это сам).

Похожие вопросы