Diese Frage hat hier bereits eine Antwort:
Derzeit konvertiere ich FLV-Flash-Dateien in WEBM- und MP4-Dateien, um sie mit einem HTML5-Videoplayer zu verwenden.
_
Ich benutze diesen ffmpeg-Befehl für WEBM: Das ffmpeg -i filename.flv -vcodec libvpx -acodec libvorbis filename.webm
funktioniert hervorragend und die Dateigröße bleibt relativ gleich (wichtig).
_
Für MP4 verwende ich Folgendes: ffmpeg -i filename.flv -sameq -ar 22050 filename.mp4
Es konvertiert in .mp4 fine und verhindert Qualitätsverluste, aber die Dateigröße verdreifacht sich fast.
Mit welcher ffmpeg-Formel können Sie in MP4 konvertieren, ohne zu viel Qualität zu verlieren und eine viel höhere Dateigröße zu verhindern?
mpeg4
. Laut der Ausgabe vonffmpeg --help muxer=mp4
auf meinem Computer verwendet ffmpeg h264 als Standardvideocodec von mp4.Dieser Befehl ändert nur den Container ohne erneute Kodierung
quelle
for %%a in ("*.flv") do ffmpeg -i "%%a" -codec copy "%%~na.mp4"
Führen Sie anschließend convert.bat in einem Ordner mit * .flv-Dateien aus-codec copy
in eine .mp4-Datei funktioniert nur in den seltensten Fällen, in denen Audio und Video bereits mit H.264 und AAC codiert sind . Siehe superuser.com/a/1009539/390946 und addpipe.com/blog/flv-to-mp4 .avconv
undffmpeg
sind im Wesentlichen das gleiche. [Stand vor kurzem gibt es einige Unterschiede, aber nicht wirklich viel über die Heimat zu schreiben , wenn Sie selbst kompilierenffmpeg
[die man in Ubuntu repos vorgesehen zum Beispiel alt und leidet an dieser Videogröße ist kein bla bla bla Deal [im Grunde versucht , um Ihnen zu sagen, dass das Video falsche Proportionen hat], aber wenn Sie sich die Mühe machen, dasffmpeg
Kompilierungshandbuch zu lesen und es aus git zu kompilieren, hat es keine der Probleme der älteren Versionen, die in den meisten Betriebssystemen auf Lager sind. Die Abschreibungswarnung, auf die Bezug genommenavconv
wird, besagt, dass sie ein neueres Dienstprogramm erstellt haben, um zu versuchenffmpeg
, es zu ersetzen , ABER es wird SO ausgiebig verwendet, dass wir alle Softlinks vonavconv
bis erstellen würden, selbst wenn sie es abschneiden wolltenffmpeg
sowieso werden sie nicht aufhören zu arbeiten und es fallen lassen.]]Es ist keine schlechte Sache zu verwenden
avconv
, ich habe nur die eine Antwort gesehen, in der die Abschreibungswarnung erwähnt wird, die im Wesentlichen eine leere Nachricht ist. Dies ist eher eine Alternative zu ffpmeg. Sie könnten avconv ausprobieren, was hier zutreffender ist.ist wirklich das GLEICHE wie
Im Wesentlichen verwenden Sie in der ersten Variante die Optionen für kürzere Hände und in der zweiten Variante die mehr ausgeschriebene Variante.
AUCH
-map 0
bezieht sich auf Audiospuren. Wenn Sie also etwas verwenden,mp4a
das mit mehreren Audiospuren gut zurechtkommt, können Sie dies auslassen, um alle Audiostreams in die resultierende Datei zu kopieren. Dies ist nur erforderlich, wenn Sie einen Codec verwenden, der nicht mehrere Audiospuren in derselben Datei unterstützt. Dann möchten Sie das benötigte Audio zuordnen und nicht alle. Wenn Sie versuchen, den verwendeten Speicherplatz zu minimieren, können Sie natürlich nur einen angeben, um zu versuchen, ein wenig Größe aus der Datei zu entfernen [Audio entspricht vielleicht einem Drittel der Größe der Videospur [und das ist großzügig]].-c:v = codec(video)
also:-c:v libx264
ist gleichbedeutend mit:-vcodec libx264
FYI; Gleiches gilt für dieses Beispiel:-c:v copy = -vcodec copy
und für FLVs sei außerdem vorsichtig, die FLV-Datei ist insofern die gleiche wie eine AVI-Datei, als sie ein Container ist, der eine beliebige Anzahl von Codecs für Video oder Audio enthalten kann. Sie sollten zuerst das Dienstprogramm zur Medieninspektion Ihrer Wahl verwenden, um zu sehen, was in der Datei selbst verwendet wird, bevor Sie den Video- und / oder Audiostream kopieren oder ihn von einem beliebigen Ort auf einen neuen übertragen möchten. Daher ist der Befehl, der für ein FLV am besten funktioniert, möglicherweise nicht der gleiche für ein anderes FLV [natürlich werden mehrere FLVs, die von derselben Quelle stammen, normalerweise auf dieselbe Weise codiert, dies ist jedoch keine Garantie].
Nicht zu versuchen, etwas herauszusuchen, ist gerade in der Websuche darauf gestoßen und wollte versuchen, die Dinge für die Leute ein wenig zu klären.
Wieder wie diese Antwort für die Antwort unterhalb dieses ein JA besagt, wird ffmpeg immer diese Nachricht posten, es ist im Wesentlichen hohl, da diese 2 Utils wirklich immer noch genau das gleiche util sind, mit sehr wenig Unterschied. In fast allen Fällen sollten Sie mit beiden Befehlen genau die gleichen Ergebnisse erzielen. Dies führt nicht unbedingt zu einer vollständigen Neukodierung. Warum? A: Wenn es nicht benötigt wird, spart es eine Menge Zeit. B: Wenn Sie eine Datei, in die es bereits komprimiert wurde, erneut in einen Videocodec umcodieren, führen Sie im Wesentlichen eine Komprimierungsroutine für etwas aus, das bereits komprimiert ist und immer das Ergebnis ist in weniger Qualität als die Quelle. Die meisten neueren Codecs sind etwas kreuzkompatibel [nicht alle], wie zum Beispiel ein FLV technisch gesehen ein MP4 in einem FLV-Wrapper sein könnte, da FLVs wie AVIs nur Container anderer Codecs sind. Damit, es hängt davon ab, was das Quell-FLV für den Video- und Ausio-Codec hat, im Vergleich zu dem, in das Sie es konvertieren, um festzustellen, ob es überhaupt transcodiert werden muss. Wenn sie innerhalb des FLV das H264 MP4-Video und MP4a für Audio verwenden würden, müssten Sie das, was Sie nur kopieren müssten, nicht erneut umcodieren und die Dateiköpfe so anpassen, dass es als echtes MP4-Video anstatt als MP4-Video gelesen wird in einer FLV-Datei.
quelle
Laut dieser Anleitung lautet der richtige Befehl zum Konvertieren von FLV in MP4 ohne AV-Rekodierung wie folgt:
Bei AVC-Video und AAC- oder MP3-Audio hat es in allen Fällen perfekt funktioniert.
quelle
Wenn ich ffmpeg benutze, wurde ich gewarnt, dass ich avconv verwenden soll. Mit avconv habe ich gute Ergebnisse erzielt:
Lesen Sie
man avconv
für weitere Informationen.quelle
ffmpeg
selbst ist nicht veraltet . Der Grund dafür ist, dass Sie den x264-Encoder mit guten Standardeinstellungen für die Qualität angeben.Ich schlage vor, Sie erstellen ein Shell-Skript
video_flv_to_mp4
mit folgendem Inhalt:Dann führe es so aus:
Sie erhalten eine video.flv.mp4-Datei.
quelle
-sameq
ist keine gültige Option mehr für ffmpeg. Es bedeutet auch nicht "gleiche Qualität". Siehe auch diesen Beitrag .