Hier gehe ich davon aus, dass sich Ihre Originaldatei im mp4
Container befindet, aber die Methode sollte auch für andere Container funktionieren.
Ein-Schritt-Methode - (etwas komplizierter) Siehe auch die Antwort von ptQa im referenzierten Thread. Aber hier ist das gleiche mit Audio hinzugefügt:
ffmpeg -i inputfile.mp4 -filter_complex "[0:v]trim=start=10:end=16,setpts=PTS-STARTPTS[a]; [0:v]trim=start=20:end=26,setpts=PTS-STARTPTS[b]; [0:a]atrim=start=10:end=16,asetpts=PTS-STARTPTS[c]; [0:a]atrim=start=20:end=26,asetpts=PTS-STARTPTS[d]; [a][c][b][d]concat=n=2:v=1:a=1[e][f]" -map '[e]' -map '[f]' -strict -2 outputfile.mp4
Dies fügt den Audiostream und die erforderlichen Pads hinzu, um Audio zu erhalten.
Der Vollständigkeit halber vorgesehen:
Der einfache Weg: Sie können den 2-Schritt-Prozess verwenden, den Sie bereits kennen:
Zuerst schneiden und extrahieren Sie die 2 Stücke , die Sie aus dem Video in voller Länge möchten.
2. Verbinden Sie diese 2 Teile miteinander.
Dies sollte der einfache Ausweg sein.
So schneiden Sie ein Stück von etwa der dritten Sekunde bis zur neunten Sekunde ab:
ffmpeg -i in.mp4 -ss 00:00:03 -to 00:00:09 -c:v copy -c:a copy part1.mp4
Sie können den Vorgang für den zweiten Teil wiederholen. Wenn es von der 10. bis zur 16. Sekunde ist:
ffmpeg -i in.mp4 -ss 00:00:10 -to 00:00:16 -c:v copy -c:a copy part2.mp4
Weitere Informationen finden Sie in diesem Thread.
Jetzt haben Sie 2 Dateien, die Sie verbinden können. Sie können auf mindestens 3 verschiedene Arten "verketten". Die Möglichkeit, dies ohne Neucodierung zu tun, besteht darin, dies über die Option demuxer zu tun. Erstelle eine Textdatei namens (say) joinlist.txt mit folgendem Inhalt:
file 'part1.mp4'
file 'part2.mp4'
Um die beiden Dateien zu verbinden, platzieren Sie die beiden Filme und den Text (joinlist.txt) im selben Ordner und verwenden Sie diesen Befehl:
ffmpeg -f concat -i joinlist.txt -c copy joinedfile.mp4