Es hängt ein wenig davon ab, wie Ihre Streams in der mp4-Datei zugeordnet sind. So etwas sollte funktionieren:
ffmpeg -i video.mp4 -i audio.aac -map 0:0 -map 1:0 -vcodec copy -acodec copy newvideo.mp4
Normalerweise wird der Videostream als erster Stream im Container abgebildet.
Wenn es nicht als erster Stream zugeordnet ist, ändern Sie die Zuordnung:
ffmpeg -i video.mp4 -i audio.aac -map 0:1 -map 1:0 -vcodec copy -acodec copy newvideo.mp4
Um herauszufinden, wie die Streams in Ihrer Videodatei tatsächlich zugeordnet wurden, können Sie sie verwenden, mediainfo
die sich heutzutage in den Standard-Ubuntu-Repositorys befinden.
Wenn wir hier die Kommandozeile aufschlüsseln, funktioniert das folgendermaßen:
-i video.mp4 -> first media file
-i audio.aac -> second media file
-map 0:1 -> use the second stream from the first mediafile
-map 1:0 -> use the first stream from the second mediafile
-vcodec copy -> leave the video as is
-acodec copy -> leave the audio as is
newvideo -> resulting videofile
Stellen Sie sicher, dass das Audiofile und das Videofile dieselbe Dauer haben. Nicht jeder Spieler akzeptiert Titel mit großen Dauerunterschieden.
Bitte beachten Sie das avconv
und ffmpeg
sind fast das gleiche. Tatsächlich funktioniert dieser Befehl mit avconv genauso wie der gleiche Befehl mit ffmpeg:
avconv -i video.mp4 -i audio.aac -map 0:0 -map 1:0 -vcodec copy -acodec copy newvideo.mp4
Das Programm avconv gehört zum Libav-Projekt, einer Abzweigung aus dem FFmpeg-Projekt. Sie können auch die folgende Fehlermeldung ignorieren:
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
Eine Alternative zum Muxen von Dateien im MP4-Format ist MP4Box
aus dem gpac
Paket.