ffmpeg schneidet dasselbe Video in mehrere Teile

Für das Projekt, an dem ich arbeite, muss ich einige Teile desselben Videos mit einigen Untertiteln schneiden. Also habe ich eine Bash-Datei erstellt, die mehrere ffmpeg-Befehle wie diesen ausführt.

ffmpeg -i input.mp4 -vf scale="w=640:h=-2",drawtext="fontfile=/usr/share/fonts/truetype/msttcorefonts/verdana.ttf: textfile='1.txt': fontcolor=white: fontsize=20: box=1: boxcolor=black@0.5: boxborderw=5: x=(w-text_w)/2: y=((h-text_h)/2)+90:" -ss 00:00:45.674 -to 00:00:50.093 -async 1 ./out/1.mp4

ffmpeg -i input.mp4 -vf scale="w=640:h=-2",drawtext="fontfile=/usr/share/fonts/truetype/msttcorefonts/verdana.ttf: textfile='2.txt': fontcolor=white: fontsize=20: box=1: boxcolor=black@0.5: boxborderw=5: x=(w-text_w)/2: y=((h-text_h)/2)+90:" -ss 00:00:49.344 -to 00:00:52.971 -async 1 ./out/2.mp4

aber es ist schnell zum ersten Mal (Start) der Eingabedatei, es wird langsamer, wenn ich mit der Suche von der Mitte oder nahe dem Ende der Eingabe beginnen möchte. Es werden also fast 7-8 Minuten für die 22. Minute der Eingabedatei ...

ffmpeg -i input.mp4 -vf scale="w=640:h=-2",drawtext="fontfile=/usr/share/fonts/truetype/msttcorefonts/verdana.ttf: textfile='226.txt': fontcolor=white: fontsize=20: box=1: boxcolor=black@0.5: boxborderw=5: x=(w-text_w)/2: y=((h-text_h)/2)+90:" -ss 00:22:23.345 -to 00:22:25.846 -async 1 ./out/226.mp4

Weiß jemand, wie man das besser macht? Kann ich das tun, ohne jedes Mal nach einer Datei zu suchen? (Weil es scheint, dass dies ein Suchproblem für mich ist ....)

Antworten (1)

Verwenden Sie ss/to als Eingabeoptionen. Dies sucht in der Demuxer-Stufe, die viel schneller ist.

ffmpeg -ss 00:22:23.345 -to 00:22:25.846 -i input.mp4 ...

Sie benötigen einen sehr aktuellen Build von ffmpeg (> 19. November 2017)

Ich habe bereits, sollte ich sie vor der Eingabedatei als Parameter in die ausführbare Datei verschieben?
-ss muss vor der Eingabedatei stehen, die in der Lesephase angewendet werden soll, wie das Beispiel zeigt
Ich werde versuchen, mit den neuesten Quellen zu bauen ... Das aktuelle ffmpeg unter Ubuntu akzeptiert dies nicht.
-ssals Demuxer-Option ist alt, -towurde aber bis zum angegebenen Datum nicht implementiert.
kann es nicht mit ffmpe3 zum Laufen bringen Option zum (Aufzeichnen oder Transkodieren der Stoppzeit) kann nicht auf die Eingabe-URL angewendet werden input.mp4 - Sie versuchen, eine Eingabeoption auf eine Ausgabedatei anzuwenden oder umgekehrt. Verschieben Sie diese Option vor die Datei, zu der sie gehört. Fehler beim Analysieren der Optionen für die Eingabedatei input.mp4. Fehler beim Öffnen der Eingabedateien: Ungültiges Argument
Verwenden Sie die Git-Version von johnvansickle.com/ffmpeg