Kann ImageMagick Miniaturansichten aus Videos erstellen?


11

Ich versuche, Thumbnails über ImageMagick aus Videos zu extrahieren. Ich habe einige Beispiele von ihrer offiziellen Seite gefunden, aber es macht GIF, nicht PNG. Ich möchte jedoch ein solides Miniaturbild.

Kann es die gleiche Ausgabe wie mit diesem Befehl ffmpeg erstellen?

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

Antworten:


18

Sie können mit ImageMagick wie folgt Miniaturansichten aus Videos extrahieren ( von hier aus - eine andere Antwort besagt, dass ImageMagick ffmpeg "unter der Haube" verwendet, sodass ich nicht weiß, ob dies tatsächlich schneller sein wird als nur mit ffmpeg):

convert input.mp4[100] thumbnail.png

Das [100]weist ImageMagick an, das 100. Bild zu übernehmen input.mp4. Ich habe es auf einem H.264-Videostream in einem MP4-Container getestet. Natürlich können Sie alle gewünschten ImageMagick-Optionen verwenden, einschließlich Deinterlacing, wie in Ihrem Link beschrieben.


ImageMagick ist jedoch wirklich für den Umgang mit einzelnen Bildern gedacht. Für Videos sollten Sie nur ffmpeg verwenden. Natürlich gibt es hier einige Überlappungen, da es sich um ein einzelnes Frame handelt, aber ich würde sagen, dass Deinterlacing eher eine Videoverarbeitungsaufgabe ist.

Sie sollten den Yadif-Filter für das Deinterlacing verwenden. Sie können es folgendermaßen zu Ihrer bestehenden Zeile hinzufügen:

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

Wenn ich mit Filtern arbeite, bevorzuge ich den Skalierungsfilter anstatt -s:

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

Vielleicht verstehe ich die Frage falsch, aber das OP hat speziell gefragt, wie man erreicht, was der ffmpegBefehl mit ImageMagick macht. Keine Ahnung, ob es möglich ist oder nicht ...
Slhck

@slhck Ich interpretierte das eigentliche Problem des OP als "Abrufen gut aussehender Miniaturansichten aus Interlaced-Videos" und ging davon aus, dass nur versucht wurde, das falsche Tool für den Job zu verwenden (dh das Miniaturbild mit ffmpeg abrufen -> mit ImageMagick deinterlace). Wenn jemand einen Weg finden würde, dies mit ImageMagick zu tun, hätte er meine positive Stimme.
Evilsoup

@evilsoup danke für deine Antwort. Ich habe diese Frage hochgeladen, weil ffmpeg zu viel Zeit benötigt, um ein Miniaturbild aus einem Video zu erstellen. Und ich habe von irgendwo gehört, wenn ich Imagemagick benutze, kann ich das schneller machen. Ist es wahr und möglich? Ich habe es auch gesucht, aber es gibt keine Möglichkeit, Miniaturansichten von Videos nur mit Imagemagick zu erstellen. Tut mir leid für mein schlechtes Englisch.
Juneyoung Oh

@JuneyoungOh Thumbnails mit ImageMagick zu machen ist in der Tat möglich, siehe das Update zu meiner Antwort. Ich bezweifle jedoch, dass es schneller gehen wird, da ImageMagick (nach meinem oberflächlichen Googeln) ffmpeg als Back-End für den Umgang mit Videos verwendet.
Evilsoup

@evilsoup Oh Danke. Ich dachte, es ist unmöglich. Jetzt kann ich überprüfen, was schneller ist: D vielen Dank.
Juneyoung Oh

6

ImageMagick wird mit diesem Befehl an ffmpeg gesendet:

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

Die kurze Antwort lautet also "nein" (da es dies nicht selbst tut).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.