Come convertire un video con ffmpeg nel formato DNxHD / DNxHR?


12

Sto seguendo un tutorial su come lavorare con cinelerra-cv, all'inizio è stato detto che il primo passo nel lavorare con cinelerra è convertire qualsiasi clip video che si ha nel formato dnxhd. È stato appena detto, non spiegato come farlo.

Dopo alcune ricerche, mi sono imbattuto in ffmpeg, ma non ho idea di come usarlo per quanto riguarda dnxhd, con la poca conoscenza che ho raccolto su ffmpeg, la mia ipotesi su come farlo sarebbe:

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

tuttavia, questo non funziona, e gli esempi che ho visto sulla conversione in dnxhd con ffmpeg non capisco, sembravano ogni volta avere tag diversi senza spiegare perché usarli.


1
deb-indus.org/tuto/ffmpeg-howto.htm#Encoding_VC-3 suggerirebbeffmpeg -i <input_file> -vcodec dnxhd -b <bitrate> -an output.mov
Rinzwind

grazie, l'ho già visto prima ed ero tipo: devo specificare un bitrate e non deve avere alcun suono (-an)? .... Voglio dire, si può lavorare solo in cinelerra con videoclip dnxhd che non hanno suono?
Sharkant,

1
-b <int> : Set video bitrate in bit/s ( default = 200k ).quindi presumo che sia necessario aggiungere un bitrate poiché 200k non è un'opzione valida. Ma -anvorrei cadere :)
Rinzwind

il bitrate dipende dal file sorgente o dal file in cui si desidera convertire? .... Voglio dire, se provassi ad usare 200 potrebbe funzionare?
Sharkant,

No. Devi specificare il bitrate per questo particolare codificatore.
llogan,

Risposte:


18

Questo è un codificatore esigente, quindi devi scegliere i parametri corretti tra cui:

  • frequenza dei fotogrammi
  • formato pixel / spazio colore
  • larghezza x altezza / risoluzione / dimensioni del telaio
  • bitrate

Vedere i parametri validi DNxHD di seguito per i valori accettati.


Esempio DNxHD

Questo esempio verrà ridimensionato a 1280x720, scegli una frequenza dei fotogrammi di 30000/1001 (aka "29.97") e un formato pixel di YUV 4: 2: 2 planare.

ffmpeg -i input -c:v dnxhd -vf "scale=1280:720,fps=30000/1001,format=yuv422p" -b:v 110M -c:a pcm_s16le output.mov
  • Se il file di input è già conforme ad alcuni dei parametri accettati, non è necessario dichiararli manualmente.

  • Il contenitore del formato di output per DNxHD è in genere MXF o MOV.


Esempio DNxHR

DNxHR è per risoluzioni superiori a 1080p come 2K, 4K e 8K.

Se si desidera DNxHR, aggiungere l' -profile:vopzione di output, ad esempio -profile:v dnxhr_hq.

I valori accettati sono: dnxhd, dnxhr_444, dnxhr_hqx, dnxhr_hq, dnxhr_sq, dnxhr_lb.

  • DNxHR LB: dnxhr_lb- Larghezza di banda bassa. 8-bit 4: 2: 2 ( yuv422p). Qualità offline.
  • DNxHR SQ: dnxhr_sq- Qualità standard. 8-bit 4: 2: 2 ( yuv422p). Adatto per il formato di consegna.
  • DNxHR HQ: dnxhr_hq- Alta qualità. 8-bit 4: 2: 2 ( yuv422p).
  • DNxHR HQX: dnxhr_hqx- Alta qualità. 10-bit 4: 2: 2 ( yuv422p10le). Consegna di qualità broadcast UHD / 4K.
  • DNxHR 444: dnxhr_444- Qualità di finitura. 10-bit 4: 4: 4 ( yuv444p10le). Consegna di qualità cinematografica.

L'elenco sopra è stato adattato dal codec DNxHR .


Parametri DNxHD validi

ffmpeg fallirà se si forniscono valori errati, ma può fornire un elenco di ciò che è accettato.

È possibile mostrare l'elenco con il seguente comando "fittizio":

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

Note importanti sulla frequenza dei fotogrammi

  • Manca la frequenza dei fotogrammi dall'elenco generato da questo comando. ffmpegaccetterà ciecamente qualsiasi frame rate per questo codificatore e, secondo quanto riferito, il software Avid lo accetterà (non confermato), ma il bitrate DNxHD dovrebbe corrispondere solo a frame rate specifici. Per la massima compatibilità, ho raccomandato di utilizzare solo la combinazione bitrate / frame rate corretta. Quindi utilizzare il comando sopra per ottenere i bitrate e i formati pixel corretti accettati ffmpege fare un riferimento incrociato con l' elenco delle risoluzioni Avid DNxHD o il white paper DNxHD (pagina 9) per le frequenze fotogrammi appropriate.

  • I frame rate elencati nei collegamenti sopra utilizzano approssimazioni arrotondate inaccurate. I valori corretti sono elencati di seguito; il nome abbreviato è a sinistra e il valore corretto è a destra.

    • 29.97 = 30000/1001 (o usa l'alias ntsc)
    • 59.94 = 60000/1001
    • 23.967 = 24000/1001 (o utilizzare l'alias ntsc-film)

Più opzioni

Per ulteriori opzioni specifiche dell'encoder e un elenco di formati di pixel supportati, fare riferimento a:

ffmpeg -h encoder=dnxhd

Errori

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!

Ciò significa che la frequenza dei fotogrammi, la larghezza, l'altezza, il formato dei pixel e / o il bitrate non sono corretti. Fare riferimento ai parametri DNxHD validi sopra per i valori accettati.

pixel format is incompatible with DNxHD profile

Scegli un formato pixel appropriato utilizzando il filtro formato . Vedi l'esempio DNxHD sopra.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.