web-dev-qa-db-fra.com

Définir la résolution en encodage FFmpeg pour HEVC?

FFmpeg est maintenant supporte l'encodage 10 bits et 12 bits pour x265, mais je ne trouvais pas les options de ligne de commande appropriées pour les encoder dans ces profondeurs de bits.

Quelqu'un peut-il spécifier ces options?

4
Danial Behzadi

Si vous avez une version moderne correctement configurée de FFmpeg et x265 (le référentiel FFmpeg sous Zesty Zapus 17.04 tombe dans cette catégorie), vous devriez trouver le codage avec 8, 10 et 12 bits de manière équitable. simple.

J'illustre un exemple de ligne de commande pour chacun ci-dessous:

1. Encodage HEVC 8 bits avec FFmpeg ...

Vérifiez la capacité de votre version installée de x265 pour le codage à 8 bits comme suit:

andrew@illium~$ x265 -V
x265 [info]: HEVC encoder version 2.4
x265 [info]: build info [Linux][GCC 7.1.0][64 bit] 8bit+10bit+12bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX XOP FMA4 FMA3 LZCNT BMI1
andrew@illium~$ 

Ici, vous verrez que ma propre copie est capable de coder en 8 | 10 | 12 bits. Une installation de FFmpeg compilée avec cette version de x265 peut produire un encodage 8 bits décent avec la commande suivante:

ffmpeg -i input.mp4 \
       -c:v libx265 -preset medium -crf 28 -pix_fmt yuv420p \
       -c:a aac -b:a 128k \
       output_8bit.mp4

Vous pouvez bien sûr modifier l’un de ces paramètres pour répondre à vos besoins spécifiques ...

2. Encodage HEVC 10 bits avec FFmpeg ...

Vérifiez la capacité de votre version installée de x265 pour le codage 10 bits comme suit:

andrew@illium~$ x265 -V -D10
x265 [info]: HEVC encoder version 2.4
x265 [info]: build info [Linux][GCC 7.1.0][64 bit] 10bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX XOP FMA4 FMA3 LZCNT BMI1
andrew@illium~$ 

Ici, vous verrez que ma propre copie a des capacités pour l’encodage 10 bits. Une installation de FFmpeg compilée avec cette version de x265 peut produire un encodage 10 bits décent avec la commande suivante:

ffmpeg -i input.mp4 \
       -c:v libx265 -preset medium -crf 28 -pix_fmt yuv420p10le \
       -c:a aac -b:a 128k \
       output_10bit.mp4

Et cela devrait vous aider à traverser ...

3. Encodage HEVC 12 bits avec FFmpeg ...

Vérifiez la capacité de votre version installée de x265 pour le codage 12 bits comme suit:

andrew@illium~$ x265 -V -D12
x265 [info]: HEVC encoder version 2.4
x265 [info]: build info [Linux][GCC 7.1.0][64 bit] 12bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX XOP FMA4 FMA3 LZCNT BMI1
andrew@illium~$ 

Ici, vous verrez que ma propre copie possède des capacités d’encodage 12 bits. Une installation de FFmpeg compilée avec cette version de x265 peut produire un encodage 12 bits décent avec la commande suivante:

ffmpeg -i input.mp4 \
       -c:v libx265 -preset medium -crf 28 -pix_fmt yuv420p12le  \
       -c:a aac -b:a 128k \
       output_12bit.mp4

Une fois encore, une expérimentation avec certains des paramètres auxiliaires devrait vous donner exactement le résultat recherché ...

Notes:

  1. Si vous ne savez pas quels formats de pixels (pour le paramètre vital -pix_fmt FFmpeg) sont pris en charge par votre copie de FFmpeg et de libx265, la commande suivante affichera les détails:

     ffmpeg -h encoder=libx265 2>/dev/null | grep pixel 
    
  2. Guide de codage FFmpeg et H.265 : Informations de base sur le codage HEVC avec FFmpeg, rien sur le codage 8 | 10 | 12 bits si ...

  3. Zesty Zapus (17.04) a un x265 légèrement plus ancien mais entièrement configuré:

      andrew@ilium:~$ x265 -V
      x265 [info]: HEVC encoder version 2.3
      x265 [info]: build info [Linux][GCC 6.3.0][64 bit] 8bit+10bit+12bit
      x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX LZCNT
      andrew@ilium:~$ 
    

    et donc peut encoder à tous les 3 profondeurs de bits possibles ...

6
andrew.46