Soms heb je twee of meer videobestanden die je wilt combineren tot één bestand. Ik gebruik ffmpeg en gebruik de concat demuxer-instructies:
Maak eerst een tekstbestand met de naam vidlist.txt in het volgende formaat:
file '/path/to/clip1'file '/path/to/clip2'file '/path/to/clip3'
Het beste is om het in dezelfde map te plaatsen als de videobestanden. Houd er rekening mee dat dit zowel relatieve als absolute paden kunnen zijn.
Voer vervolgens in dezelfde map vanaf een terminal het commando uit:
ffmpeg -f concat -safe 0 -i vidlist.txt -c copy outputfilename.avi
Als het niet helemaal duidelijk is, vervang dan outputfilename.avi door de videobestandsnaam die u wilt produceren (of dat nu outputfilename.mp4, outputfilename.mkv, outputfilename.avi is). ffmpeg zal de container gebruiken die wordt aangegeven door de extensie.
De bestanden worden stream gekopieerd in de volgorde waarin ze verschijnen in de vidlist.txt naar de uitvoercontainer. Omdat er geen hercodering plaatsvindt, is de opdracht relatief snel.
- concat videofilter
Gebruik deze methode als uw invoer niet dezelfde parameters heeft (breedte, hoogte, enz.), of niet dezelfde formaten/codecs heeft, of als u een filter wilt uitvoeren.
Merk op dat deze methode een hercodering van alle invoer uitvoert. Als u het opnieuw coderen wilt voorkomen, kunt u alleen de invoer die niet overeenkomt opnieuw coderen, zodat ze dezelfde codec en andere parameters delen, en vervolgens de concat-demuxer gebruiken om te voorkomen dat alles opnieuw wordt gecodeerd.
ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv \-filter_complex "[0:v] [0:a] [1:v] [1:a] [2:v] [2:a] \concat=n=3:v=1:a=1 [v] [a]" \-map "[v]" -map "[a]" output.mkv
- concat-demuxer
Gebruik deze methode als u opnieuw coderen wilt voorkomen en uw indeling geen aaneenschakeling op bestandsniveau ondersteunt (de meeste bestanden die door algemene gebruikers worden gebruikt, ondersteunen geen aaneenschakeling op bestandsniveau).
$ cat mylist.txtfile '/path/to/file1'file '/path/to/file2'file '/path/to/file3'
ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4
- concat-protocol
Gebruik deze methode met formaten die concatenatie op bestandsniveau ondersteunen (MPEG-1, MPEG-2 PS, DV). Niet gebruiken met MP4.
ffmpeg -i "concat:input1|input2" -codec copy output.mkv
Deze methode werkt niet voor veel formaten, waaronder MP4, vanwege de aard van deze formaten en de simplistische aaneenschakeling die door deze methode wordt uitgevoerd.
Geen opmerkingen:
Een reactie posten
Opmerking: Alleen leden van deze blog kunnen een reactie posten.