Konvertieren Sie Mp4 in Mp3 mit Miniaturansicht

8

Ich kann eine mp4 in ffmpeg in eine mp3 konvertieren, bin mir aber nicht sicher, wie ich eine Miniaturansicht des Videos hinzufügen würde.

Derzeit muss dies von mp4 nach mp3 konvertiert werden

ffmpeg -i video.mp4 -acodec libmp3lame -metadata title=video -b:a 256 -f input.mp3

Müsste ich das dann mit diesem Befehl erneut über ffmpeg ausführen?

ffmpeg -i input.mp3 -i cover.jpg -map_metadata 0 -map 0 -map 1 output.mp3

oder gibt es eine Möglichkeit, komplexe Filter zu verwenden, um zu erreichen, dass dies ein Lauf ist?

Ich weiß, dass dies für FLV funktioniert, aber es scheint nicht für mp4 zu funktionieren

ffmpeg -i video.flv -i cover.jpg -map 0:a -map 1 -c:v copy -metadata title=video -b:a 256k out.mp3
nadermx
quelle
Möchten Sie wirklich, dass der Konvertierer die Miniaturansicht automatisch festlegt? Denn sonst könnten Sie es manuell ändern, aber ich bin mir nicht sicher, ob Sie danach sind. Wenn Sie dies mit FLV, aber nicht mit MP4 tun können, würde ich einfach ein Skript erstellen, das beide Befehle ausführt.
RamonRobben
@ RamonRobben Ich versuche zu vermeiden, ffmpeg zweimal
ausführen zu müssen
Sie könnten so etwas ausprobieren ffmpeg -i in.mp4 -i test.png -map 0: 0 -map 1: 0 -c copy -id3v2_version 3 -metadata: s: v title = "Albumcover" -metadata: s: v comment = "Cover (Front)" out.mp3 Ich lade ffmpeg selbst herunter, um mit dem Testen zu beginnen.
RamonRobben

Antworten:

3

Bessere Antwort mit Erklärung, die kluge Vorschläge von slhck und Mulvya enthält, ohne wesentliche Parameter.

ffmpeg -i video.mp4 -i cover.jpg -acodec libmp3lame -b:a 256k -c:v copy -map 0:a:0 -map 1:v:0 output.mp3

ffmpeg Audio- / Video-Manupulationstool: Bereits vom OP ausgewählt, ist es besonders für diesen Job geeignet.

-i video.mp4 Erste Eingabedatei: Ein Video mit Audio, das wir extrahieren möchten.

-i cover.jpg zweite Eingabedatei, ein Bild, das angezeigt werden soll, wenn die resultierende Audiodatei abgespielt wird.

-acodec libmp3lame Wir möchten eine MP3-Datei mit dem LAME-Encoder erstellen.

-b:a 256kDadurch wird die Bitrate für die Audiospur auf eine Konstante von 256 KBit / s eingestellt. Eine intelligentere Option wäre die Codierung mit einer variablen Bitrate unter Angabe des Qualitätsparameters : -q:a 0fragt nach der maximalen Qualität, -q:a 4stellt jedoch häufig einen guten Kompromiss zwischen der wahrgenommenen Audioqualität und der Bitrate (und damit der Dateigröße) dar.

-c:v copyDies zeigt an, dass der Videostream (das JPG-Bild) nicht neu codiert werden soll, sondern unverändert kopiert werden muss. Dies ist nützlich, um unnötige Verarbeitung und potenzielle Qualitätsverluste beim erneuten Codieren in ein verlustbehaftetes Format zu vermeiden. In unserem Fall würde das Bild ohne diesen Parameter von .jpg dekodiert und in .png codiert, was anscheinend das native Format ist, das standardmäßig ausgewählt wird. Dies würde keinen Qualitätsverlust darstellen, da .png ein Verlust ist, führt jedoch häufig zu einer Erhöhung der Dateigröße, da .jpg (verlustbehaftet) im Allgemeinen eine bessere Komprimierungsrate bietet.

-map 0:a:0Dadurch wird der zu verwendende Stream aus der ersten ( 0:) Eingabedatei ausgewählt: Es muss der erste ( :0) Audio ( a) - Stream sein, der darin enthalten ist.

-map 1:v:0Dadurch wird der erste ( :0) video ( v) - Stream aus der zweiten ( 1:) Eingabedatei ausgewählt.

output.mp3 Der Name dieses Parameters wurde geschickt ausgewählt, um bereits darauf hinzuweisen, dass dies der Name sein muss, der der ausgegebenen Audiodatei (MP3) mit dem eingebauten Bild, das wir erstellen möchten, gegeben werden muss.

Ursprüngliche Antwort

Dadurch wird eine Audiodatei (.mp3) mit einem statischen Bild erstellt, indem ein Video (.mp4) und ein Bild (.jpg) von meiner Hochzeit zusammengestellt werden:

ffmpeg -i video.mp4 -i cover.jpg -acodec libmp3lame -metadata title=video -b:a 256k -map_metadata 0 -map 0:1 -map 1 output.mp3

Informationen zur Auswahl von Eingabestreams mit finden Sie in der ffmpeg- Dokumentation. Dies -mapist hier die entsprechende Option.

Ich habe den Befehl zuerst einfach ausgeführt -map 0 -map 1und folgende Informationen erhalten:

Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> png (native))
  Stream #0:1 -> #0:1 (aac (native) -> mp3 (libmp3lame))
  Stream #1:0 -> #0:2 (mjpeg (native) -> png (native))

Daher wusste ich, dass ich einen Stream 1(AAC-Audio) aus der Datei haben wollte, die eine Indexnummer von hat 0, dh die Videodatei; daher musste es explizit mit ausgewählt werden -map 0:1 -map 1.

simlev
quelle
Ich habe es versucht, aber es gibt mir Stream map '0:1' matches no streams. To ignore this, add a trailing '?' to the map.
nadermx
Führen Sie es mit ´-map 0 -map 1´ aus und sehen Sie, welche Streams verfügbar sind.
Simlev
Stream mapping: Stream #0:0 -> #0:0 (aac (native) -> mp3 (libmp3lame)) Stream #1:0 -> #0:1 (mjpeg (native) -> png (native))
Nadermx
1
@nadermx Sie können -map 0:a:0 -map 1:v:0den ersten Audio- und Videostream der ersten bzw. zweiten Datei auswählen.
Slhck
1
Vermeiden Sie die Codierung der Bildeingabe, insbesondere mit JPG. -c:v copy.
Gyan
2

Sie können den VLC Media Player verwenden -

Schritt 1: Öffnen Sie den VLC und wählen Sie "Medien". Klicken Sie auf Konvertieren / Speichern.

Schritt 2: Wählen Sie im nächsten Fenster "Hinzufügen" und wählen Sie die zu konvertierende Videodatei (MP4) aus.

Schritt 3: Klicken Sie als nächstes auf den Abwärtspfeil von "Konvertieren / Speichern" und dann auf "Konvertieren".

Schritt 4: Stellen Sie im nächsten Fenster sicher, dass die Schaltfläche "Konvertieren" ausgewählt ist. Fahren Sie fort, um den Typ der Audiodatei auszuwählen, die Sie erstellen möchten. In unserem Fall ist es die MP3-Datei, in die wir konvertieren.

Schritt 5: Wählen Sie ein Ausgabeziel und drücken Sie dann „Start“. Der VLC beginnt dann mit der Konvertierung.

Zum Hinzufügen von Miniaturansichten können Sie auf diesen Link verweisen (sehr gut erklärt).

AjaiVeer Singh Sandhu
quelle