Wie löscht man einen bestimmten Teil eines Videos in FFmpeg, möglicherweise ohne erneute Kodierung?

Wie löscht man einen bestimmten Teil eines Videos in FFmpeg, möglicherweise ohne erneute Kodierung?

Ich konnte findendieser Threadzum Ausschneiden eines bestimmten Teils aus einer Datei. Das ist nicht sehr nützlich, da ich genau das Gegenteil erreichen möchte, nämlich den ausgewählten Teil des Videos entfernen.

Der BenutzerDie Lösung zum Extrahieren eines Teils ohne erneute Kodierung funktioniert ziemlich gut. Kann ich stattdessen etwas Ähnliches tun, um einen Auswahlteil zu entfernen?

Ich bevorzuge es, nicht erneut kodieren zu müssen, aber mir ist beides egal, also ist jede Lösung gut.

Antwort1

Extrahieren Sie die gewünschten Teile, indem Sie als Codec die Option "Kopieren" verwenden -c:v kopieren -c:a kopieren

Nehmen wir an, Sie haben ein 6-minütiges Video und möchten die Teile von 2–3 Minuten und von 4–5 Minuten nicht:

ffmpeg -ss 00:00:00 -to 00:02:00 -i input.mp4 -c:v copy -c:a copy input_part1.mp4
ffmpeg -ss 00:03:00 -to 00:04:00 -i input.mp4 -c:v copy -c:a copy input_part2.mp4
ffmpeg -ss 00:05:00 -to 00:06:00 -i input.mp4 -c:v copy -c:a copy input_part3.mp4

Erstellen Sie eine Textdatei für die extrahierten Dateien (filelist.txt).

file 'input_part1.mp4'
file 'input_part2.mp4'
file 'input_part3.mp4'

Dann verbinden Sie sie mit etwas wie diesem

ffmpeg -safe 0 -f concat -i filelist.txt -c kopiere output.mp4

output.mp4 sollte nicht die Teile enthalten, die Sie nicht möchten.

verwandte Informationen