2011-05-01 07:45:34 +0000 2011-05-01 07:45:34 +0000
178
178

Hoe voeg ik een audio- en videobestand samen in ffmpeg

Ik wil een audiobestand (.wav of .au formaat) samenvoegen met een videobestand (.mp4 formaat).

Suggereer mij hoe ik dit kan bereiken. Ik wil deze bestanden samenvoegen tot een nieuw .mp4-videobestand. Een ffmpeg commando zou zeer welkom zijn.

Antwoorden (5)

286
286
286
2011-05-01 09:53:57 +0000

Samenvoegen van video en audio, met audio-reëncodering

Zie dit voorbeeld, overgenomen uit dit blogbericht maar geüpdatet voor nieuwere syntaxis. Het zou iets moeten zijn dat het effect heeft van:

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

Hier gaan we ervan uit dat het videobestand nog geen audiostream bevat, en dat je hetzelfde uitvoerformaat (hier, MP4) wilt hebben als het invoerformaat.

Het bovenstaande commando transcodeert de audio, aangezien MP4’s geen PCM-audiostromen kunnen dragen. U kunt elke andere gewenste audiocodec gebruiken als u dat wilt. Zie de AAC coderingsgids voor meer informatie.

Als uw audio- of videostream langer is, kunt u de optie -shortest toevoegen, zodat de ffmpeg stopt met het coderen zodra een bestand eindigt.

Kopiëren van de audio zonder hercodering

Als uw uitvoercontainer (bijna) elke codec aankan - zoals MKV - dan kunt u eenvoudigweg zowel audio- als videostreams kopiëren:

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

Vervangen van audio stream

Als je input video al audio bevat, en je wilt deze vervangen, dan moet je ffmpeg vertellen welke audio stream je moet nemen:

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

De map optie maakt ffmpeg alleen gebruik van de eerste video stream van de eerste input en de eerste audio stream van de tweede input voor het output-bestand.

16
16
16
2015-01-10 01:11:26 +0000

Aangezien ik geen commentaar mag schrijven op het eerste antwoord met mijn reputatie, een addendum hier, omdat ik dit probleem had bij het coderen van webms. Als je audiostream bijvoorbeeld langer is dan de videostream , moet je het knippen of anders heb je het laatste videoframe als stilstaand beeld en audio lopen.

Om een van beide streams te knippen, kunt u -ss [hh:mm:ss] -t [ss] gebruiken voor elk van de -i “file.ext”. -ss […] zal het startpunt voor het knippen definiëren -t […] zal de lengte van het segment in seconden definiëren

Voorbeeld:

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
8
8
8
2015-04-16 07:18:25 +0000

-openen commando promt (windows+r ->cmd->enter)

-dan ga je naar binnen in de map waar je audio- en videobestand

toepast dit cmd ffmpeg -i "videoFile.mp4" -i "audioFile.mp3" -shortest outPutFile.mp4

Enter…je krijgt een nieuw bestand genaamd outPutFime.mp4 (een samengevoegd bestand van audio en video)

5
5
5
2015-03-05 15:29:32 +0000

Dit werkte voor mij:

ffmpeg.exe -i AudioT.m4a -i VideoT.mp4 -acodec copy -vcodec copy muxed.mp4
1
1
1
2013-03-12 22:47:37 +0000

Probeer de mencoder te gebruiken (Ja, het is gebaseerd op ffmpeg, maar je weet maar nooit). Ik gebruik het -audiofile argument. Ik gebruik over het algemeen echter ffmpeg, dus neem dit advies met een snufje zout.

En, als je Windows gebruikt, werkt Mediacoder (helaas niet meer open source)… het is in principe een frontend voor veel gnu encoders en een paar niet-vrije encoders.