So führen Sie Audio-und Videodateien in ffmpeg zusammen

Ich möchte eine Audiodatei zusammenführen (.wav oder. au Format) mit einer Videodatei (. mp4 Format).

Bitte schlagen Sie mir vor, wie Sie dies erreichen können. Ich möchte diese Datei zu einer neuen MP4-Videodatei zusammenführen. Ein ffmpeg-Befehl wäre sehr willkommen.

 271
Author: bummi, 2011-05-01

8 answers

Zusammenführen von video und audio, mit audio-re-encoding -

Siehe dieses Beispiel aus dieser Blogeintrag wurde jedoch für eine neuere Syntax aktualisiert. Es sollte etwas zum Effekt von:

ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac output.mp4

Hier gehen wir davon aus, dass die Videodatei noch keinen Audiostream enthält und dass Sie dasselbe Ausgabeformat (hier MP4) wie das Eingabeformat haben möchten.

Der obige Befehl transcodiert das Audio, da MP4s keine PCM-Audioströme übertragen können. Sie können jedes andere gewünschte Audio verwenden codec, wenn Sie wollen. Weitere Informationen finden Sie im FFmpeg Wiki: AAC Encoding Guide.

Wenn Ihr Audio-oder Videostream länger ist, können Sie die Option -shortest hinzufügen, damit ffmpeg die Codierung beendet, sobald eine Datei beendet ist.

Kopieren des Audios ohne erneute Kodierung

Wenn Ihr Ausgabecontainer (fast) jeden Codec – wie MKV-verarbeiten kann, können Sie einfach sowohl Audio-als auch Videostreams kopieren:

ffmpeg -i video.mp4 -i audio.wav -c copy output.mkv

Audiostream ersetzen

Wenn Ihr Eingabevideo bereits enthält audio, und Sie möchten es ersetzen, Sie müssen ffmpeg mitteilen, welchen Audiostream Sie aufnehmen möchten:

ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 output.mp4

Der -map mit der Option verwendet ffmpeg nur den ersten Videostream vom ersten Eingang und den ersten Audiostream vom zweiten Eingang für die Ausgabedatei.

 422
Author: Patrick Georgi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-03-29 21:02:57

Da ich mit meiner Reputation keine Kommentare zur ersten Antwort schreiben darf, hier ein Nachtrag, weil ich dieses Problem beim Codieren von Webms hatte.
Wenn Ihr Audiostream beispielsweise länger als der Videostream ist, müssen Sie ihn ausschneiden, da sonst das letzte Videorahmen als Standbild und Audio ausgeführt wird.

Um einen der beiden Streams zu schneiden, können Sie-ss [hh:mm:ss] -t [ss] vor jeder der-i " - Dateien verwenden.extern".
-ss [...] definiert den zu schneidenden Startpunkt
-t [...] definiert die Länge des Segments in Sekunden

Beispiel:

ffmpeg.exe -ss 00:00:10  -t 5 -i "video.mp4" -ss 0:00:01 -t 5 -i "music.m4a" -map 0:v:0 -map 1:a:0 -y out.mp4
 19
Author: user136036,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-01-10 01:11:26

Befehl öffnen promt (windows+R -> Cmd+Geben Sie) ein. Gehen Sie dann in den Ordner, in dem Sie Audio-und Videodatei haben. Wenden Sie diesen Befehl an:

ffmpeg -i "videoFile.mp4" -i "audioFile.mp3" -shortest outPutFile.mp4

Sie erhalten eine neue Datei mit dem Namen outPutFile.mp4 (eine zusammengefügte Datei aus Audio und Video)

 9
Author: UniCoder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-03-05 09:59:42

Das hat bei mir funktioniert:

ffmpeg.exe -i AudioT.m4a -i VideoT.mp4 -acodec copy -vcodec copy muxed.mp4
 7
Author: Ronald,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-03-14 10:54:01

Versuchen Sie es mit mencoder (ja, es basiert auf ffmpeg, aber Sie wissen es nie). Ich benutze das Argument -audiofile. Ich benutze im Allgemeinen ffmpeg, also nimm diesen Rat mit einer Prise Salz.

Und wenn Sie Windows verwenden, funktioniert Mediacoder (leider nicht mehr Open Source)... es ist im Grunde ein Frontend für viele GNU-Encoder und ein paar nicht-freie.

 1
Author: Wyatt8740,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-03-12 22:47:37

Falls man Audio und Video mit unterschiedlicher Länge zusammenführen und auch Fade In und Fade Out anwenden möchte, funktionierte Folgendes für mich:

ffmpeg -i Video001.mp4 -i Audio001.mp3 -af afade=t=in:st=0:d=3,afade=t=out:st=47:d=4 -c:v copy -c:a aac -shortest Output.mp4

In meinem obigen Fall hatte das Video die Länge 51, also wählte ich Fade In der Länge 3 [Sec] und Fade Out* von ~4 [Sec]. Da Fading durch einen Filter angewendet wird, ist eine Transkodierung des Audios erforderlich. Im obigen Fall habe ich die Codierung aac gewählt.

Die Antwort ist stark basierend auf der Antwort von @PatrickGeorgi.

 0
Author: Royi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-03-26 02:57:02

Sie können auch mencoder versuchen, Audio-und Videodateien zu kombinieren https://youtu.be/1IHFp2eROYk

 0
Author: Shaurya Mehta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-06 18:58:54

Ich habe dazu ein Python-Skript erstellt, Sie können es versuchen, wenn Sie möchten. Holen Sie es auf Github: https://github.com/mmakarov/replicator

Oder schau dir das Video hier an: https://www.youtube.com/watch?v=4Uu1hS3-eQM

Replicator ist ein Python-Skript zum Zusammenführen einiger Videodateien, transparent overlay, Textbereiche mit MP3 - Audiospur. Letztes Video wird genau sein gleiche Länge wie Ihre Audiospur. Länge Ihres Videos wird sein automatisch berechnet.

Ich habe das gemacht skript in einem Versuch, alle Videosequenzdateien zusammenzuführen mit PNG transparente Überlagerung, Hinzufügen von Textbereichen auf Video, mit MP3-Audio Spur. Resultierende Videodatei sind bereit, auf Youtube oder andere hochladen andere video-hosting-Dienste.

Sie können es nach Ihrem Geschmack ändern.

Wie benutzt man es: 0. Terminal öffnen und eingeben: git clone https://github.com/mmakarov/replicato...

  1. Legen Sie Ihre Videodateien in das Projektverzeichnis als 'source1.mp4', 'source2.mp4' usw.
  2. Setzen Sie Ihre PNG transparentes Bild in das Projektverzeichnis als ' Overlay.png'
  3. Legen Sie Ihre MP3-Datei als 'voice.mp3'in das Projektverzeichnis
  4. im Terminallauf: python3 source-to-medium.py (hier wird 'medium.mp4' erstellt)
  5. geben Sie bei Bedarf den Inhalt Ihrer Textbereiche ein ...es dauert einige Zeit, um Quell -*. mp4-Dateien in ein Medium zu konvertieren.mp4
  6. im Terminallauf: python3 medium-to-fin.py ...es wird die endgültige Videolänge von voice.mp3.length() / medium.mp4.length caltulate() = silent_fin.mp4 .length ()...auch wird es voice.mp3 hinzufügen silent_fin. mp4 als Audiospur
  7. Endlich hast du youtube_ready. mp4 Dateien

Warnung: russische Kommentare in Quellen!

 0
Author: Maksim Makarov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-08-06 16:39:10