web-dev-qa-db-fra.com

Conversion de FLV en MP4 avec FFMPEG et préservation de la qualité

J'essaie d'utiliser ffmpeg pour convertir mes fichiers FLV en MP4 pour les lire sur des appareils iOS, mais la qualité de la vidéo convertie est bien inférieure à celle de l'original.

Voici la commande que j'utilise:

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

J'apprécierais vraiment si quelqu'un pouvait me fournir les meilleurs réglages pour la conversion de flv à mp4.

25
erfanria

Selon les codecs utilisés dans votre fichier FLV, vous pourrez peut-être vous contenter de le ré-emballer dans un conteneur mp4. Vous aurez besoin de H.264 ou MPEG4 simple profile vidéo et de AAC audio. Vous pouvez trouver des informations sur votre fichier source avec ffmpeg -i input.flv

Je ne sais pas si le simple fait d'utiliser H.264/MPEG4 Simple + AAC est suffisant ou s'il existe des options spécifiques aux codecs pris en charge. C'est assez facile à tester:

Essayez d'utiliser

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

-copyts est copy timestamps cela facilitera la synchronisation audio.

Si cela ne fonctionne pas, essayez de forcer les codecs audio et vidéo. Cela va ré-encoder le fichier:

ffmpeg -i input.flv -c:v libx264 -crf 23 -c:a libfaac -q:a 100 output.mp4

Pour améliorer la qualité vidéo, vous pouvez utiliser une valeur CRF inférieure, par exemple. n'importe quoi jusqu'à 18. Pour obtenir un fichier plus petit, utilisez un CRF plus élevé, mais notez que cela dégradera la qualité.

Pour améliorer la qualité audio, utilisez une valeur de qualité supérieure. Pour FAAC, 100 est la valeur par défaut.


Voici quelques réflexions sur la commande ffmpeg suggérées dans la question.

-ar fait référence à la fréquence d'échantillonnage audio. Je recommanderais de ne pas jouer avec cela jusqu'à ce que vous compreniez mieux les choses. Si vous souhaitez jouer avec l'encodage audio, ajustez le débit (par exemple, -b:a 128k) et laissez l'encodeur choisir quoi faire en fonction de cela.

Si vous vous retrouvez dans cette voie ...

La qualité du CD est un échantillonnage de 44100Hz; vidéo typique utilise 48000Hz.

Vous pouvez noter que, dans l'exemple de la question d'origine, le chiffre 22050 correspond à la moitié de la fréquence d'échantillonnage de la qualité cd. Si vous convertissez des CD, c'est un bon choix. Si vous commencez avec une source 48KHz (ce que vous faites probablement; encore une fois, c'est beaucoup plus courant que 44100 dans les fichiers vidéo), j'utiliserais plutôt 24Khz. Cela n’aura probablement pas beaucoup d’importance, mais cela peut sembler un peu mieux et utiliser un peu moins de ressources processeur pour effectuer la conversion.

41
Dan Pritts