11

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

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

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

2 ответа2

18

Вы можете извлекать миниатюры из видео с помощью ImageMagick следующим образом (отсюда - другой ответ утверждает, что ImageMagick использует ffmpeg «под капотом», поэтому я не знаю, будет ли это на самом деле быстрее, чем просто использование ffmpeg):

convert input.mp4[100] thumbnail.png

[100] говорит ImageMagick взять 100-й кадр из input.mp4 . Я проверил это на видеопотоке H.264 в контейнере MP4. Очевидно, что вы можете использовать любые параметры ImageMagick, которые вы хотите, в том числе деинтерлейсинг, как описано в вашей ссылке.


Однако ImageMagick действительно предназначен для работы с отдельными изображениями; для видео, вы должны просто использовать ffmpeg. Очевидно, что здесь есть некоторое совпадение, поскольку вы имеете дело с отдельным кадром, но я бы сказал, что деинтерлейсинг - это скорее задача обработки видео.

Вы должны использовать фильтр yadif для деинтерлейсинга. Вы можете добавить его в свою существующую строку следующим образом:

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

при работе с фильтрами я предпочитаю использовать масштабный фильтр, а не -s:

ffmpeg -ss 600 -i input.mp4 -vframes 1 -filter:v 'yadif,scale=420:270' output.png
6

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .