O ImageMagick pode fazer miniaturas de vídeo?

11

Estou tentando extrair miniaturas de vídeo via ImageMagick. Eu encontrei algumas amostras de seu site oficial, mas faz GIF, PNG não. Eu quero uma miniatura sólida embora.

Ele pode criar a mesma saída que com este comando ffmpeg?

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

Respostas:

18

Você pode extrair miniaturas de vídeos com o ImageMagick assim ( daqui - outra resposta afirma que o ImageMagick usa o ffmpeg 'por baixo do capô', por isso não sei se isso será realmente mais rápido do que usar o ffmpeg):

convert input.mp4[100] thumbnail.png

o [100]diz ao ImageMagick para tirar o 100º quadro input.mp4. Eu testei em um fluxo de vídeo H.264 em um contêiner MP4. Obviamente, você pode usar as opções do ImageMagick que desejar, incluindo o desentrelaçamento conforme descrito no seu link.


ImageMagick é realmente para lidar com imagens individuais; para o vídeo, você deve usar o ffmpeg. Obviamente, há alguma sobreposição aqui, já que você está lidando com um quadro individual, mas eu diria que o desentrelaçamento é mais uma tarefa de processamento de vídeo.

Você deve usar o filtro yadif para desentrelaçamento. Você pode adicioná-lo à sua linha existente assim:

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

ao trabalhar com filtros, prefiro usar o filtro de escala em vez de -s:

ffmpeg -ss 600 -i input.mp4 -vframes 1 -filter:v 'yadif,scale=420:270' output.png
evilsoup
fonte
Talvez eu esteja entendendo mal a pergunta, mas o OP perguntou especificamente como obter o que o ffmpegcomando faz com o ImageMagick. Não
faço
@slhck Eu interpretei o problema real do OP como 'obter miniaturas de boa aparência de vídeo entrelaçado' e presumi que eles estavam apenas tentando usar a ferramenta errada para o trabalho (ou seja, obter a miniatura com ffmpeg -> desentrelaçar com o ImageMagick). Se alguém postasse uma maneira de fazer isso com o ImageMagick, no entanto, eles receberiam meu voto positivo.
Evilsoup 25/05
@evilsoup obrigado pela sua resposta. Enviei esta pergunta porque o ffmpeg leva muito tempo para criar miniaturas do vídeo. E ouvi de algum lugar se eu usar o imagemagick, posso fazer isso mais rápido. É verdade e possível? Também procurei, mas não há como tirar miniaturas de vídeos apenas com imagens. Desculpe pelo meu inglês ruim.
Juneyoung Oh
@JuneyoungOh tirar miniaturas com o ImageMagick é realmente possível, veja a atualização na minha resposta. Duvido que seja mais rápido, no entanto, uma vez que parece (pelo meu estudo superficial) que o ImageMagick usa o ffmpeg como back-end para lidar com vídeos.
Evilsoup 27/05
@evilsoup Oh Thanks.I pensei que é impossível. Agora posso verificar o que é mais rápido: D muito obrigado.
Juneyoung Oh
6

O ImageMagick projeta o ffmpeg com este comando:

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

Portanto, a resposta curta é "não" (já que ela não faz isso).

cnd
fonte