Wie kann ich eine MP4-Videodatei zuschneiden (kein Bild)?

17

Ich suche eine App, mit der ich den Anfang und das Ende einer mp4-Datei effizient und verlustfrei abschneiden kann .

Gibt es zum Beispiel etwas, mit dem ich einen Keyframe finden und das Los zwischen diesem und einem anderen Keyframe kopieren kann, ohne das Los neu codieren zu müssen (langsam und verlustbehaftet) und ohne die AV-Synchronisierung zu verlieren?

Mit mp4 meine ich H264-Video + AAC-Audio in einem MP4-Container

Vor h264-Tagen war Avidemux ein hervorragendes Tool dafür, da Sie die ursprünglich codierten Streams wiederverwenden können, was keinen Verlust bedeutet, und nur ein paar Sekunden benötigen, um die gekürzte Version zu erstellen. Mit h264 ist dies jedoch hoffnungslos (was die AV-Synchronisation massiv verliert) oder den gefährlichen Modus verwenden, der sie sofort zum Absturz bringt.

AFAIK, Openshot, Kdenlive, Pitivi usw. tun dies durch Dekodieren und Neukodieren (langsam und verlustbehaftet).

Scheint eine einfache Sache zu sein (zeigt wahrscheinlich meinen Mangel an Wissen hier!), Also habe ich mich gefragt, ob ich etwas vermisse.

Kunstvollroboter
quelle
Wenn Sie das Ende des Videos kürzen müssen,
lesen
2
superuser.com/questions/377343/… bezieht sich gut und bietet eine ähnliche Lösung wie unten, fügt aber einige gute Informationen hinzu.
pbhj

Antworten:

24

ffmpeg

ffmpeg -i source.mp4 -ss 00:00:00 -t 00:00:00 -vcodec copy -acodec copy splice.mp4

Dies dauert source.mp4 und, unter Verwendung der gleichen Audio- und Videocodecs und ohne Qualitätsverlust, dauert -t Zeit nach -ss Startzeit video und gibt Ihre splice.mp4 aus

Bitte beachten Sie, dass das Timing sehr empfindlich auf die Formatierung reagiert (oben ist ein Beispiel für die Formatierung angegeben). Auch in einigen Distributionen ffmpegwurde durch ersetzt avconv. Führen Sie einfach den obigen Befehl aus und ersetzen Sie das Wort ffmpeg durch avconv, um dieses Problem zu lösen.

Eine weitere hervorragende Informationsquelle zu diesem Thema. (Danke @pbhj)

ErdeMeLon
quelle
3
Brillant. Beachten Sie, dass Sie das -ssArgument nicht abkürzen können , dh es 9:00muss 9 Minuten lang ausgedrückt werden, da es 00:09:00sonst unbemerkt ignoriert wird. Ich denke, diese Antwort sollte auch avconventsprechend der Warnung von ffmpeg aktualisiert werden . Vielen Dank.
Artfulrobot
Nebenbei bemerkt, diese Warnung zeigt nur an, dass Sie avconv anstelle von ffmpeg installiert haben, sodass Ihre ausführbare Datei ffmpeg eigentlich nur ein Wrapper um avconv ist und dieser Wrapper möglicherweise bald veraltet sein wird. Wenn Sie ffmpeg installiert hätten, aber nicht avconv, würden Sie diese Warnung nicht erhalten. Dies soll nicht bedeuten, dass ffmpeg selbst veraltet ist (neuere Versionen von Ubuntu haben sich jedoch dafür entschieden, avconv standardmäßig anstelle von ffmpeg zu installieren).
Thomasrutter
5

In Ubuntu 16.04 entspricht dies ffmpegdem Befehlavconv

So installieren Sie es:

sudo apt-get install libav-tools

Beispiel für eine Befehlszeile zum Zuschneiden eines Videos nach Zeit:

avconv -i originalFile.ogv -ss 00:00:00 -t 00:00:10 -vcodec copy -acodec copy croppedFile.ogv
AlejandroVD
quelle
In späteren Versionen von Ubuntu nicht verfügbar.
Lolmaus - Andrey Mikhaylov