Ich bin ein völliger Neuling in Sachen FFmpeg und Programmierung, also ist die Frage vielleicht zu dumm ... Ich habe ein Video und möchte es in kleine Stücke zuschneiden und jedes einzelne rendern, also versuche ich, eine FOR-Schleife zu verwenden:
FOR /l %x IN (0,40,1000) DO ffmpeg -i sample.avi -filter:v "crop=20:20:x:x" outx.avi; done
Was ich bekomme ist: [NULL @ 0000000002624220] Es konnte kein geeignetes Ausgabeformat für „outx.avi;“ gefunden werden. outx.avi;: Ungültiges Argument
Kann irgendjemand weiterhelfen?
Antwort1
Sie verwenden offenbar Windows-Batchdateien. Hier FOR
haben Schleifen kein abschließendes ; done
, wie dies bei Bash-Schleifen der Fall ist.
Unter Windows:
FOR ... IN ... DO ...
Unter Bash:
for ... in ...; do ...; done
Stellen Sie daher sicher, dass Sie die richtige Syntax für Ihre Shell verwenden.
Beachten Sie, dass ffmpeg durch einfache Angabe out.avi
MPEG-4 bzw. MP3 als Video- und Audio-Codecs auswählt und die Qualität dadurch möglicherweise ziemlich schlecht ist. Geben Sie im Idealfall die Video- und Audio-Encoder an, z. B.:
ffmpeg -i <input> -c:v libx264 -crf 23 -c:a aac -b:a 192k out.mp4
Lies dasH.264-KodierungshandbuchFür mehr Information.