Ich habe Probleme beim Kodieren einer Bildfolge (die möglicherweise nicht bei 0000 beginnt) in eine AVI-Datei
ffmpeg -y -f image2 -framerate 30 -start_number 560 -i "images_%04d.png" -an -vcodec rawvideo -pix_fmt bgr24 video.avi
Funktioniert, ist aber eine unkomprimierte .avi-Datei (und daher enorm groß). Also versuchen wir es mit xvi zu kodieren:
ffmpeg -y -f image2 -framerate 30 -start_number 560 -i "images_%04d.png" -vcodec xvid video.avi -an video.avi
Nur das funktioniert nicht, es heißt unbekannter Encoder „xvid“. Ich kann die Bilder in VirtualDub in eine xvid .avi-Datei konvertieren – ich möchte nur lernen, wie ich das über eine Befehlszeile in FFMPEG mache
Antwort1
Sie müssen Codec-Namen verwenden, die von ffmpeg erkannt werden. Für MPEG-4 Teil 2 ist dies entweder „mpeg4“, ein nativer FFmpeg-Encoder oder die externe Codierungsbibliothek „libxvid“. Ihr Befehl sollte also -vcodec mpeg4
oder enthalten -vcodec libxvid
.
Eine vollständige Liste der von ffmpeg unterstützten Codecs wird von generiert ffmpeg -codecs
. Sie können auch ffmpeg -encoders
oder ausführen ffmpeg -decoders
, wenn Sie genauer sein möchten. Um private Optionen aufzulisten (diese sind für jeden Encoder spezifisch), verwenden Sie ffmpeg -h encoder=mpeg4
.