web-dev-qa-db-fra.com

FFmpeg: Maintien de la qualité lors de la conversion

doublon possible:
Convertissez AVI en MP4 en conservant la même qualité

Je voudrais convertir une bonne quantité de fichiers wmv, mpg et avi (avec différents encodages audio et vidéo) en mp4/x264/aac avec une qualité équivalente. J'ai fait des tests avec la commande suivante:

ffmpeg.exe -i "test.avi" -c:v libx264 -c:a libvo_aacenc "test.mp4"

(Comme vous pouvez le constater, j'ai omis les options spécifiant le débit binaire et la qualité de l'audio et de la vidéo)

À l'aide de cette commande, FFmpeg conserve automatiquement les dimensions de la vidéo, mais je ne sais toujours pas comment il gère les éléments tels que le débit binaire lorsqu'ils sont omis. Quel est le meilleur moyen de conserver la qualité d'une vidéo tout en la convertissant dans un format et un codec différents?

J'utilise Windows 7 64 bits et ffmpeg-20121230-git-518239c-win64-shared

15
x74x61

FFmpeg définit l'option -crf sur 23 par défaut.

Essayer:

ffmpeg.exe -i "test.avi" -c:v libx264 -crf 20 -c:a aac -strict -2 "test.mp4"

L'option CRF définit la qualité de l'encodage. Le débit binaire variera selon les besoins pour assurer une qualité constante tout au long de la vidéo. 51 étant le pire à 0 étant le meilleur - sans perte.

J’ai tendance à régler tous mes codes sur 20, ce qui est le défaut de Handbrake et j’ai été satisfait de la qualité. Je suggère de jouer avec cette valeur pour trouver un niveau de qualité acceptable pour vous.

Vous voudrez peut-être utiliser les options -ss et -t pour créer des codes de test courts. -ss étant l'heure de début et -t étant la durée - les deux en secondes. Il n’est probablement pas nécessaire d’encoder l’ensemble de la vidéo pour déterminer ce qui est acceptable.

Pour créer un clip de 1min commençant par 1min dans la vidéo:

ffmpeg.exe -i "test.avi" -c:v libx264 -crf 20  -c:a aac -strict -2 -ss 60 -t 60 "test.mp4"
21
paulgrav