Handbrake utilise l'encodeur x264 pour la conversion vidéo. Il y a un site avec un aperçu de toutes les options x264 et de leurs homologues FFmpeg . Cependant, ceux-ci sont un peu obsolètes et certaines de ces options ne fonctionnent plus ou ont peut-être été renommées. Vous devez utiliser les profils x264 pour la plupart des options de détail, mais nous y arriverons.
De nombreuses options de base du frein à main (par exemple, la fréquence d'images) ne sont pas spécifiques à x264, et elles sont dispersées dans la documentation en ligne FFmpeg .
Avant de commencer, veuillez vérifier que vous utilisez une version récente de FFmpeg. Leur site de téléchargement a des versions statiques pour tous les principaux systèmes d'exploitation.
Allons-y:
--input "d:\input.mpg" --output "d:\output.mp4"
La syntaxe FFmpeg est ffmpeg -i input.mpg … d:\output.mp4
.
--rate 29.97
Spécifiez la fréquence d'images vidéo avec -r 29.97
. (Le frein à main --cfr
définit simplement une fréquence d'images constante. Pas nécessaire ici).
--arate 44.1
Réglez la fréquence d'échantillonnage audio avec -ar 44100
(en Hz).
--format mp4
Pas nécessaire car FFmpeg sait que vous voulez MP4.
--width 1920 --height 1080 --custom-anamorphic --display-width 1920 --keep-display-aspect --modulus 8 --crop 0:0:0:0
Cela ne fait rien d'autre que de régler la taille sur 1920 × 1080. En FFmpeg, faire avec -s:v 1920x1080
, ou si vous souhaitez utiliser les filtres, -filter:v "scale=1920:1080"
.
--encoder x264 --vb 5200
Réglez l'encodeur avec -c:v libx264
et le débit binaire sur constant avec -b:v 5200K
. Notez que nous ne sommes pas encore arrivés en ce qui concerne les paramètres de qualité.
--aencoder faac --ab 128 --mixdown stereo
Similaire à ci-dessus, avec -c:a libfaac -b:a 128K -ac 2
. Notez que FAAC n'est plus pris en charge dans FFmpeg; utilisez plutôt l'encodeur FFmpeg intégré avec -c:a aac -b:a 128K
.
-x bitrate=5200:vbv-bufsize=5200:vbv-maxrate=5200
Cela définit le mode d'encodage sur VBV qui cible un scénario de streaming au lieu d'un simple débit binaire constant ou d'une qualité constante. La qualité constante est également appelée CRF , la valeur par défaut pour x264 - elle est appelée «Facteur de taux» dans le frein à main. Alors que CRF vous donne généralement la meilleure qualité d'encodage, le mode VBV vous donne un fichier mieux adapté à la diffusion en ligne ou pour certains appareils aux capacités limitées.
Pour définir VBV, utilisez les options -maxrate 5200K
et -bufsize 5200K
dans ffmpeg.
Pour définir CRF, utilisez -crf 23
dans ffmpeg.
level=42
Utilisez -level 42
. Il s'agit du niveau H.264 .
bframes=2:min-keyint=60:keyint=60:ref=4
Réglez le nombre de cadres B avec -bf 2
. L'intervalle d'image clé minimum est défini avec -keyint_min 60
et l'intervalle maximum avec -g 60
. Le nombre d'images de référence est défini avec -refs 4
.
me=umh:merange=64:subme=7:8x8dct:cabac=1
Ce sont des options que vous pouvez définir dans ffmpeg en plus avec -x264-params me=umh:merange=64:subme=7:8x8dct:cabac=1
- comme tout autre paramètre d'encodeur x264 qui n'est pas directement mappé aux options ffmpeg.
Voici la version "TL; DR" si vous êtes paresseux, ne vous souciez pas des détails, ou si les choses ne fonctionnent pas: utilisez -preset:v medium
(ou laissez-le de côté, car le préréglage moyen est par défaut). Les préréglages x264 choisissent un ensemble d'options qui échangent la vitesse d'encodage pour l'efficacité de la compression. Ils sont commodément nommés à partir ultrafast
, superfast
, veryfast
, faster
, fast
, medium
à slow
, slower
et veryslow
. Choisissez ce avec quoi vous vous sentez à l'aise.
Donc, pour résumer, la version longue:
ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -b:v 5200K -maxrate 5200K -bufsize 5200K -level 42 -bf 2 -keyint_min 60 -g 60 -refs 4 -x264-params me=umh:merange=64:subme=7:8x8dct:cabac=1 -c:a aac -b:a 128K -ar 44100 d:\output.mp4
Ou le court que j'utiliserais (avec l'encodage VBV et quelques options de détail supprimées):
ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -b:v 5200K -maxrate 5200K -bufsize 5200K -c:a aac -b:a 128K -ar 44100 d:\output.mp4
Passer à un encodage de qualité constante pour une conversion tout usage, utilisez-le et changez le -crf
paramètre de 18 à 28, où plus bas signifie une meilleure qualité et 23 par défaut:
ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -crf 23 -c:a aac -b:a 128K -ar 44100 d:\output.mp4