Wie schneidet man einen Film von der angegebenen Start- und Endzeit in ffmpeg vor 50 Sekunden aus?

Wie schneidet man einen Film von der angegebenen Start- und Endzeit in ffmpeg vor 50 Sekunden aus?

Ich möchte einen Filmclip mit einer festgelegten Start- und Endzeit erstellen. Ich verwende ffmpeg. Ich habe eine Startzeit festgelegt, aber ich möchte eine Endzeit festlegen. Das Ende ist vor 50 Sekunden. Ich weiß nicht, wie ich das konfigurieren soll.

ffmpeg -i demo.mp4 -ss 00:01:20 -acodec libfaac -ab 128k -vcodec mpeg4 -b 800k -mbd 2 -cmp 2 -subcmp 2 new_demo.mp4

Antwort1

Die vernünftige Methode besteht darin, die ffmpeg-Ausgabe der Eingabeinformationen auf Dauer zu analysieren und dann einen -tWert von bereitzustellen duration - start time - 50s.

Die verrückte Methode besteht darin, den Input zweimal einzugeben und den Overlay-Filter zu verwenden:

ffmpeg -ss 2:10 -i demo.mp4 -ss 00:01:20 -i demo.mp4 -filter_complex overlay=shortest=1[v] -map [v] -map 1:a -shortest -acodec libfaac -ab 128k -vcodec mpeg4 -b 800k -mbd 2 -cmp 2 -subcmp 2 new_demo.mp4

Der erste Eingang hat einen SS-Wert aus Startzeit + Menge des zu schneidenden Endteils des Videos.

Der zweite Eingang hat einen SS-Wert Ihrer Startzeit.

Die Grundidee besteht darin, dass der Overlay-Filter beendet werden kann, wenn der kürzeste Input endet. Der erste Input wird auf einen SS-Wert gesetzt, sodass der Overlay endet, wenn das Intervall vom Ende erreicht ist.

verwandte Informationen