it-swarm.com.de

Verwenden von ffmpeg zum Codieren von Videos in hoher Qualität

Ich habe eine Reihe von Videoframes als Bilder in einem Verzeichnis gespeichert und ich versuche, diese in ein Video guter Qualität zu codieren, aber jede Einstellung und jedes Format, das ich versuche, erzeugt sehr auffällige Artefakte.

Der grundlegende Befehl lautet:

ffmpeg -r 25 -i %4d.png myvideo.mpg

und ich habe die minrate und maxrate Flags ausprobiert. Jedes der Formate {mpg, avi, mov, flv} kann verwendet werden.

Vorschläge für Einstellungen? Die endgültige Dateigröße ist kein Problem.

88
CakeMaster

Einige Sachen:

  • Sie müssen die Videobitrate einstellen. Ich habe noch nie Minrate und Maxrate verwendet, daher weiß ich nicht, wie genau sie funktionieren, sondern setze die Bitrate mit dem -b Schalter, ich bin in der Lage, qualitativ hochwertige Videos zu bekommen. Sie müssen sich eine Bitrate einfallen lassen, die einen guten Kompromiss zwischen Komprimierung und Videoqualität bietet. Möglicherweise müssen Sie damit experimentieren, da alles von der Bildgröße, der Bildrate und dem Bewegungsumfang im Inhalt Ihres Videos abhängt. Denken Sie daran, dass DVD im Durchschnitt für 720 x 480 etwa 4 bis 5 Mbit/s beträgt. Daher beginne ich normalerweise von dort und entscheide, ob ich mehr oder weniger benötige, und experimentiere dann einfach. Zum Beispiel könnten Sie -b 5000k in die Befehlszeile, um mehr oder weniger DVD-Video-Bitrate zu erhalten.

  • Sie müssen einen Videocodec angeben. Wenn Sie dies nicht tun, verwendet ffmpeg standardmäßig MPEG-1, das ziemlich alt ist und nicht annähernd die Komprimierungsstufe MPEG-4 oder H.264) aufweist. Wenn Ihre ffmpeg-Version erstellt wurde Mit der Unterstützung von libx264 können Sie -vcodec libx264 als Teil der Befehlszeile. Andernfalls -vcodec mpeg4 macht auch einen besseren Job als MPEG-1, aber nicht so gut wie x264.

  • Es gibt viele andere erweiterte Optionen, mit denen Sie die beste Qualität bei niedrigsten Bitraten erzielen können. Schauen Sie sich hier für einige Beispiele an.

61
Jason B

Sie müssen die Option -vb angeben, um die Videobitrate zu erhöhen. Andernfalls erhalten Sie die Standardeinstellung, mit der kleinere Videos mit mehr Artefakten erstellt werden.

Versuchen Sie so etwas:

ffmpeg -r 25 -i %4d.png -vb 20M myvideo.mpg

39
jeff7

Stellen Sie sicher, dass die PNGs vollständig undurchsichtig sind, bevor Sie das Video erstellen

z.B. Gib ihnen mit imagemagick einen schwarzen Hintergrund:

convert 0.png -background black -flatten +Matte 0_opaque.png

Aus meinen Tests geht hervor, dass keine Bitrate oder kein Codec ausreicht, um das Video gut aussehen zu lassen, wenn Sie ffmpeg-PNGs mit Transparenz füttern

14
Oran Fry

Wenn Sie keine Nachbearbeitung durchführen, ist das Video nie besser als die Originalbilder. Ebenso wie bei einem Daumenkino sieht es lustig aus, wenn Sie einen großen "Sprung" zwischen Keyframes machen. In der Regel benötigen Sie genügend "Tweens" zwischen den Keyframes, um eine reibungslose Animation zu gewährleisten. HTH

0
JustBoo