Wie konvertiert man avi und wmv in mp4 für HTML-Video-Tags?

Ich möchte avi und wmv in mp4 für das Web konvertieren und verwende den folgenden Code:
ffmpeg -I input.wmv output.mp4
Reicht das?

Antworten (1)

Ja, so ist es. Dadurch erhalten Sie die Standardeinstellungen für die Codierung, die im Allgemeinen für die Verwendung im Internet geeignet sind.

Sie können Einstellungen vornehmen, um die Größe, Geschwindigkeit und Qualität zu optimieren, aber Sie müssen dies nicht tun , um gute Ergebnisse zu erzielen. Die beste Anleitung, die ich kenne, ist die ffmpeg h.264-Kodierungsleitfaden- Wiki-Seite.

Beispielsweise könnten Sie die Qualität mit der Einstellung Constant Rate Factor anpassen (machen Sie sich keine allzu großen Gedanken darüber, was Constant Rate Factor eigentlich bedeutet, es ist wirklich nur die Qualitätseinstellung), indem Sie verwenden, -crf xwobei x eine ganze Zahl zwischen 0 ist (verlustfrei, große Dateigröße nicht allgemein kompatibel mit Webbereitstellung) und 51 (ziemlich beschissen, kleine Dateigröße). Der Standardwert ist 23, was ziemlich gut ist, 17 wird als visuell verlustfrei angesehen und irgendwo zwischen 17 und 28 ist ein vernünftiger Wert.

Eine weitere Einstellung ist die Geschwindigkeit. Wenn Sie CRF verwenden, wirkt sich die Anpassung der Geschwindigkeit nicht auf die Qualität der Ausgabe aus, sondern nur auf die Dateigröße . Eine schnellere Komprimierung bedeutet im Grunde, dass die Software weniger Zeit mit der Optimierung verbringt, sodass die Datei größer wird. Die Geschwindigkeit wird durch die Verwendung der Option gesteuert
-preset presetname, wobei presetnameeine der folgenden ist (in absteigender Reihenfolge der Geschwindigkeit / zunehmender Dateigröße): ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, und placebo.

Die Wiedergabegeräte, auf denen Sie erwarten, dass das Video abgespielt wird, sind eine weitere Sache, die Sie berücksichtigen sollten. Das Einstellen der Option -profile:vund (das Bit bedeutet, dass Sie das Profil nur für den Videostream einstellen) bedeutet, dass Sie zwischen einer effizienteren Komprimierung mit einem höheren Profil/Level und einer größeren Kompatibilität mit älteren oder weniger leistungsstarken Geräten mit einem niedrigeren Profil/Level wählen können . ist wahrscheinlich klug, wenn Sie ein allgemeines Webpublikum erwarten, es ist mit allen iPads, Apple TV2 und iPhone4 und ihren nicht fruchtigen Äquivalenten kompatibel. Wenn Ihre Zielgruppe wahrscheinlich einen iPod touch der 2. Generation verwendet, möchten Sie vielleicht zu ihm gehen und wenn Sie sicher sein wollen, dass er von so vielen Geräten wie möglich abgespielt werden kann, können Sie auch die Stufe angeben,-level:v-profile main-profile:v baseline-profile:v baseline -level 3.0

Wie @LordNeckbeard betonte, wenn Sie für die Verwendung im Internet codieren, wo das Video in ein HTML5 <video>-Tag eingebettet wird, wird durch Hinzufügen der Option -movflags +faststartdie Wiedergabe des Videos beim Herunterladen gestartet.

Alles in allem ist dies ein Beispiel dafür, wie Sie Optionen in ffmpeg miteinander verketten. Dies ist ein sehr einfaches Beispiel, ffmpeg ist extrem leistungsfähig und Ihre Befehle können so kompliziert sein, wie Sie es möchten. Dieses Beispiel bietet Ihnen eine hohe Qualität, ist auf älteren/weniger leistungsstarken Computern spielbar und wählt eine kleinere Dateigröße gegenüber der Codierungsgeschwindigkeit. Dies ist keine empfohlene Einstellung, sondern nur ein Beispiel dafür, wie Sie die Codierungsoptionen angeben:

ffmpeg -i thefile.wmv -profile:v main -crf 20 -preset slow output.mp4
würde ich nicht verwenden veryslow. Das erhöht die Anzahl der Refs auf bis zu 16. Kann auf Geräten mit geringer Leistung nicht angenehm sein. Kann auch etwas Latenz beim Start hinzufügen. Halten Sie sich an slowoder fügen Sie hinzu-x264-params refs=4
@stib Für die Anzeige per progressivem Download, z. B. indem Sie die MP4 auf einen Server legen und mit dem HTML5- <video>Element präsentieren, -movflags +faststartwird das Hinzufügen dringend empfohlen. Andernfalls muss das Video vollständig heruntergeladen werden, bevor die Wiedergabe beginnen kann.
Vielen Dank. Ich werde einige Änderungen vornehmen. Ich sollte beachten, dass das Beispiel nicht unbedingt eine empfohlene Einstellung ist, sondern nur ein Beispiel dafür, wie Sie Optionen in ffmpeg miteinander verketten.