Erster Teil meiner Frage:
Ich habe in der ffmpeg-Dokumentation ( section 3.2 How do I encode single pictures into movies?
) Folgendes gelesen :
Führen Sie den folgenden Befehl aus, um einzelne Bilder in Filme zu codieren:
ffmpeg -f image2 -i img%d.jpg movie.mpg
Beachten Sie, dass "% d" durch die Bildnummer ersetzt wird: img% 03d.jpg bedeutet die Sequenz img001.jpg, img002.jpg usw.
Meine Frage ist: Wer macht die Übersetzung zwischen img%03d.jpg
und img001.jpg, img002.jpg, etc
? Ist es die Shell oder ffmpeg?
Zweiter Teil:
Ich möchte ffmpeg bitten, eine Folge von Bildern in ein Video zu kodieren. Meine Sequenzen beginnen jedoch häufig mit einem anderen Index als 1 (z. B. können wir ihn aufrufen start_index
) und enden mit einem Index, den wir aufrufen können end_index
. Darüber hinaus verwendet die Sequenz Wertinkremente increment
, z.
img_0025.png, img_0030.png, img_0035.png, ... img_0100.png
wo start_index
war 25, end_index
war 100 und increment
war 5.
Ich möchte ffmpeg eine Bildsequenz wie oben zuführen, ohne die Sequenz zuerst umbenennen zu müssen. In der Dokumentation wird erklärt, wie dies mit symbolischen Links gemacht wird, aber ich habe mich gefragt, ob es eine Möglichkeit gibt, sie insgesamt zu vermeiden, möglicherweise mithilfe von Advanced Globbing auf zsh.
while IFS= read -d $'\0' -r file ;do pnmcomp -align=center -valign=middle <(anytopnm "$file" 2>/devnull) done
funktioniert das Skript nicht mehr (dh ich bekommepipe: could not find codec parameters
). Wissen Sie, warum? Musspnmscale
oder muss ich unbedingt mit Bildernppmmake
füttern ?ffmpeg
pnm
avisynth
(eine leistungsstarke Video-Scripting-Umgebung - avisynth ist nur Windows :( Der Hauptgrund, warum ich einnetpbm
Format verwendet habe, ist, dass ich immer wieder Beiträge über Probleme beim Zuführen von JPEGs in die Pipe sah. Deshalb habe ich nur den Weg des geringsten Widerstands gewählt. Die Videokodierung ist der Schritt, der zu Qualitätsverlusten führt, aber das Erhöhen der Bildgröße hilft ... Ich nehme an, Sie haben Ihre spezifischen Gründe für die Verwendung eines Videos, aber eine einfache Diashow kann für Sie arbeiten.Nur für den ersten Teil: Es ist ffmpeg, das den Job macht. Die Shell versteht die
%d
Zeichenfolge nicht als spezielles Muster in Dateinamen.quelle