Konvertieren von FLV in MP4 mit FFMPEG und Beibehaltung der Qualität

Konvertieren von FLV in MP4 mit FFMPEG und Beibehaltung der Qualität

Ich versuche, meine FLV-Dateien mit ffmpeg in MP4 zu konvertieren, um sie auf iOS-Geräten abzuspielen, aber das konvertierte Video hat eine viel schlechtere Qualität als das Original.

Hier ist der Befehl, den ich verwende:

ffmpeg -i input.flv -ar 22050 output.mp4

Ich wäre sehr dankbar, wenn mir jemand die besten Einstellungen für die Konvertierung von FLV in MP4 mitteilen könnte.

Antwort1

Abhängig von den Codecs, die in Ihrem FLV verwendet werden, können Sie es vielleicht einfach in einen MP4-Container umpacken. Sie benötigen H.264Video MPEG4 simple profileund AACAudio. Sie können einige Informationen zu Ihrer Quelldatei mitffmpeg -i input.flv

Ich bin mir nicht sicher, ob H.264/MPEG4 Simple + AAC ausreicht oder ob es spezielle Optionen für die unterstützten Codecs gibt. Das lässt sich ganz einfach testen:

Versuchen Sie es mit

ffmpeg -i input.flv -c copy -copyts output.mp4

-copytsist copy timestamps. Es hilft bei der Audiosynchronisierung.

Wenn das nicht funktioniert, versuchen Sie, Audio- und Video-Codecs zu erzwingen. Dadurch wird die Datei neu kodiert:

ffmpeg -i input.flv -c:v libx264 -crf 23 -c:a aac -b:a 160k output.mp4

Wenn Sie nur den Audio- oder nur den Video-Codec ändern möchten, können Sie -c:a copyoder verwenden -c:v copy, um den Codec zu kopieren, den Sie behalten möchten.

Um die beim Transkodieren verwendete Videoqualität zu verbessern, können Sie einen niedrigeren CRF-Wert verwenden, z. B. einen Wert bis hinunter zu 18. Um eine kleinere Datei zu erhalten, verwenden Sie einen höheren CRF, beachten Sie jedoch, dass sich dadurch die Qualität verschlechtert.

Um die Audioqualität zu verbessern, wählen Sie eine höhere Bitrate (160 K im obigen Beispiel).

Sowohl bei der Audio- als auch bei der Videoqualität hängen Ihre Ergebnisse von der Qualität der Quelle ab. Bedenken Sie, dass Sie mit jeder Originalquelle nur begrenzte Möglichkeiten haben – im besten Fall erhalten Sie die gleiche Qualität wie die Quelle. Es lohnt sich auf jeden Fall, mit verschiedenen Qualitätsstufen und/oder Bitraten zu experimentieren.

Weitere Informationen zur FFMPEG-AAC-Kodierung(Ich habe mich auf den „nativen“ Encoder bezogen, der auf der ffmpeg-Site beschrieben wird).


Bezüglich des in der Frage vorgeschlagenen ffmpeg-Befehls ...

-arbezieht sich auf die Audio-Abtastrate. Ich empfehle, diesen Parameter überhaupt nicht zu verändern. Wenn Sie mit der Audiokodierung experimentieren möchten, passen Sie die Bitrate an ( -b:a 160ksiehe oben) und lassen Sie den Encoder basierend darauf entscheiden, was zu tun ist.

Für den Hintergrund beträgt die CD-Qualität allerdings 44.100 Hz Sampling; bei einem typischen Video werden 48.000 Hz verwendet.

Möglicherweise fällt Ihnen auf, dass 22050 im Beispiel der ursprünglichen Frage die Hälfte der Abtastrate in CD-Qualität ist. Wenn Sie CD-Material herunterkonvertieren, wäre dies eine gute Wahl. Wenn Sie mit einer 48-kHz-Quelle beginnen, würde ich stattdessen 24 kHz verwenden. (Aber auch hier würde ich empfehlen, einfach eine Zielbitrate auszuwählen und den Encoder die Abtastrate bei Bedarf ändern zu lassen.)

Informationen zu den Abtastraten des Originalmaterials sollten Sie über den ffmpeg -iBefehl erhalten, den ich oben vorgeschlagen habe.

verwandte Informationen