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

12

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 le travail avec cinelerra, est de convertir tout clip vidéo dont on dispose au format dnxhd. Il vient d'être 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, je suppose que comment le faire serait:

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 je ne comprends pas, ils semblaient avoir à chaque fois des balises différentes sans expliquer pourquoi les utiliser.

sharkant
la source
1
deb-indus.org/tuto/ffmpeg-howto.htm#Encoding_VC-3 suggéreraitffmpeg -i <input_file> -vcodec dnxhd -b <bitrate> -an output.mov
Rinzwind
merci, j'ai vu celui-ci avant et je me disais: Dois-je spécifier un bitrate et faut-il qu'il n'y ait pas de son (-an)? .... je veux dire peut-on travailler uniquement en cinelerra avec des clips vidéo dnxhd qui n'ont pas de son?
sharkant
1
-b <int> : Set video bitrate in bit/s ( default = 200k ).donc je suppose que vous devez ajouter un bitrate car 200k n'est pas une option valide. Mais -anje laisserais tomber :)
Rinzwind
le débit dépend-il du fichier source ou du fichier dans lequel on veut convertir? .... je veux dire que si j'essaye d'utiliser 200, est-ce que ça pourrait marcher?
sharkant
Non. Vous devez spécifier le débit binaire pour cet encodeur particulier.
llogan

Réponses:

18

Il s'agit d'un encodeur pointilleux, vous devez donc choisir les paramètres appropriés, notamment:

  • fréquence d'images
  • format de pixel / espace colorimétrique
  • largeur x hauteur / résolution / taille du cadre
  • débit binaire

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


Exemple DNxHD

Cet exemple sera mis à l'échelle à 1280x720, choisissez une fréquence d'images de 30000/1001 (alias "29,97") et un format de pixel de YUV 4: 2: 2 planaire.

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 souhaitez DNxHR, ajoutez l' -profile:voption de sortie, telle que -profile:v dnxhr_hq.

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

  • DNxHR LB: dnxhr_lb- Faible bande passante. 8 bits 4: 2: 2 ( yuv422p). Qualité hors ligne.
  • DNxHR SQ: dnxhr_sq- Qualité standard. 8 bits 4: 2: 2 ( yuv422p). Convient au format de livraison.
  • DNxHR HQ: dnxhr_hq- Haute qualité. 8 bits 4: 2: 2 ( yuv422p).
  • DNxHR HQX: dnxhr_hqx- Haute qualité. 10 bits 4: 2: 2 ( yuv422p10le). Livraison de qualité de diffusion UHD / 4K.
  • 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 du 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 "factice" 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 manquante dans la liste générée à partir de cette commande. ffmpegacceptera aveuglément toute fréquence d'images pour cet encodeur, et le logiciel Avid l'accepterait (non confirmé), mais le débit binaire DNxHD est censé correspondre uniquement à des fréquences d'images spécifiques. Pour une compatibilité maximale, je recommande d'utiliser uniquement la bonne combinaison débit binaire / fréquence d'images. Utilisez donc la commande ci-dessus pour obtenir les débits binaires et les formats de pixels appropriés acceptés par la ffmpegréférence croisée avec la liste des résolutions Avid DNxHD ou le livre blanc DNxHD (page 9) pour les fréquences d'images appropriées.

  • Les fréquences d'images répertoriées dans les liens ci-dessus utilisent des approximations arrondies inexactes. Les valeurs appropriées sont répertorié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 des options supplémentaires spécifiques à l'encodeur et une liste des formats de pixels pris en charge, reportez-vous à:

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 pixels et / ou débit binaire sont incorrects. Reportez-vous aux paramètres DNxHD valides ci-dessus pour les valeurs acceptées.

pixel format is incompatible with DNxHD profile

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

llogan
la source