web-dev-qa-db-fra.com

Comment convertir une vidéo avec ffmpeg au format DNxHD / DNxHR?

Je suis un tutoriel sur la façon de travailler avec cinelerra-cv. Au tout début, il a été dit que la toute première étape dans l'utilisation de cinelerra consistait à convertir n'importe quel clip vidéo au format dnxhd. C'était juste dit, pas expliqué comment le faire.

Après quelques recherches, je suis tombé sur ffmpeg, mais je ne sais pas comment l’utiliser en ce qui concerne dnxhd, avec le peu de connaissances que j’ai recueillies sur ffmpeg, j’imagine comment le faire:

ffmpeg -i <video-clip> -vcodec dnxhd <video-clip-in-dnxhd>

cependant, cela ne fonctionne pas, et les exemples que j'ai vus sur la conversion en dnxhd avec ffmpeg que je ne comprends pas, ils semblaient avoir à chaque fois des balises différentes sans expliquer pourquoi les utiliser.

9
sharkant

C'est un encodeur difficile, vous devez donc choisir les paramètres appropriés, notamment:

  • cadence
  • format de pixel/espace de couleur
  • largeur x hauteur/résolution/taille
  • débit

Voir les paramètres DNxHD valides ci-dessous pour connaître les valeurs acceptées.


Exemple DNxHD

Cet exemple évoluera à 1280x720, choisissez une cadence de 30000/1001 ("29,97") et un format de pixel plan YUV 4: 2: 2.

ffmpeg -i input -c:v dnxhd -vf "scale=1280:720,fps=30000/1001,format=yuv422p" -b:v 110M -c:a pcm_s16le output.mov
  • Si votre fichier d'entrée est déjà conforme à certains des paramètres acceptés, vous n'avez pas à les déclarer manuellement.

  • Le conteneur de format de sortie pour DNxHD est généralement MXF ou MOV.


Exemple DNxHR

DNxHR est destiné aux résolutions supérieures à 1080p telles que 2K, 4K et 8K.

Si vous voulez DNxHR, ajoutez l'option de sortie -profile, telle que -profile dnxhr_hq.

Les valeurs acceptées sont les suivantes: dnxhd, dnxhr_444, dnxhr_hqx, dnxhr_hq, dnxhr_sq, dnxhr_lb.

  • DNxHR LB: dnxhr_lb - Bande passante faible. 8 bits 4: 2: 2 (yuv422p). Qualité hors ligne.
  • DNxHR SQ: dnxhr_sq - Qualité standard. 8 bits 4: 2: 2 (yuv422p). Convient pour le format de livraison.
  • QG DNxHR: dnxhr_hq - Haute qualité. 8 bits 4: 2: 2 (yuv422p).
  • DNxHR HQX: dnxhr_hqx - Haute qualité. 10 bits 4: 2: 2 (yuv422p10le). Diffusion UHD/4K de qualité broadcast.
  • DNxHR 444: dnxhr_444 - Qualité de finition. 10 bits 4: 4: 4 (yuv444p10le). Livraison de qualité cinéma.

La liste ci-dessus a été adaptée de codec DNxHR .


Paramètres DNxHD valides

ffmpeg échouera si vous fournissez des valeurs incorrectes, mais il peut fournir une liste de ce qui est accepté.

Vous pouvez afficher la liste avec la commande "fictive" suivante:

ffmpeg -f lavfi -i testsrc2 -c:v dnxhd -f null -

Remarques importantes sur la fréquence d'images

  • La fréquence d'images est absente de la liste générée à partir de cette commande. ffmpeg acceptera aveuglément toute fréquence d'images pour cet encodeur, et le logiciel Avid l'accepterait (non confirmé), mais le débit DNxHD est supposé correspondre uniquement à des fréquences d'images spécifiques. Pour une compatibilité maximale, il est recommandé d’utiliser uniquement la combinaison bitrate/frame rate appropriée. Utilisez donc la commande ci-dessus pour obtenir les formats de pixels et les formats de pixels acceptés par ffmpeg, et faites des références croisées avec le Liste des résolutions DNxHD Avid ou le Livre blanc DNxHD (page 9). pour les taux de trame appropriés.

  • Les taux de trame répertoriés dans les liens ci-dessus utilisent des approximations arrondies inexactes. Les valeurs appropriées sont énumérées ci-dessous; le nom abrégé est à gauche et la valeur appropriée est à droite.

    • 29.97 = 30000/1001 (ou utilisez l'alias ntsc)
    • 59,94 = 60000/1001
    • 23.967 = 24000/1001 (ou utilisez l'alias ntsc-film)

Plus d'options

Pour plus d'options spécifiques au codeur et une liste des formats de pixels pris en charge, voir:

ffmpeg -h encoder=dnxhd

Les erreurs

ff_frame_thread_encoder_init failed
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!

Cela signifie que votre fréquence d'images, largeur, hauteur, format de pixel et/ou débit sont incorrects. Reportez-vous à Paramètres DNxHD valides ci-dessus pour connaître les valeurs acceptées.

pixel format is incompatible with DNxHD profile

Choisissez un format de pixel approprié à l'aide du filtre format . Voir l'exemple DNxHD ci-dessus.

12
llogan