Bagaimana cara mengkonversi video dengan ffmpeg ke dalam format DNxHD / DNxHR?

12

Saya mengikuti tutorial tentang cara bekerja dengan cinelerra-cv, pada awalnya dikatakan, bahwa langkah pertama dalam bekerja dengan cinelerra, adalah untuk mengkonversi klip video apa pun yang ada dalam format dnxhd. Itu hanya dikatakan, tidak dijelaskan bagaimana melakukannya.

Setelah beberapa penelitian, saya menemukan ffmpeg, tapi saya tidak tahu bagaimana menggunakannya sehubungan dengan dnxhd, dengan sedikit pengetahuan yang saya kumpulkan tentang ffmpeg, tebakan saya bagaimana melakukannya adalah:

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

Namun, ini tidak bekerja, dan contoh yang saya lihat tentang konversi ke dnxhd dengan ffmpeg Saya tidak mengerti, mereka sepertinya setiap kali memiliki beberapa tag berbeda tanpa menjelaskan mengapa harus menggunakannya.

sharkant
sumber
1
deb-indus.org/tuto/ffmpeg-howto.htm # akan menyarankanffmpeg -i <input_file> -vcodec dnxhd -b <bitrate> -an output.mov
Rinzwind
terima kasih, saya telah melihat yang ini sebelumnya dan saya seperti: Apakah saya harus menentukan bitrate dan apakah itu harus tidak memiliki suara (-an)? .... maksud saya dapat satu hanya bekerja di cinelerra dengan video klip dnxhd yang tidak memiliki suara?
sharkant
1
-b <int> : Set video bitrate in bit/s ( default = 200k ).jadi saya akan menganggap Anda harus menambahkan bitrate karena 200k bukan opsi yang valid. Tapi -ansaya akan turun :)
Rinzwind
apakah bitrate bergantung pada file sumber atau file yang ingin dikonversi? .... maksud saya jika saya hanya mencoba menggunakan 200, bisakah itu berhasil?
sharkant
Tidak. Anda perlu menentukan bitrate untuk pembuat enkode khusus ini.
Logan

Jawaban:

18

Ini adalah pemilih enkode sehingga Anda harus memilih parameter yang tepat termasuk:

  • frame rate
  • format piksel / ruang warna
  • lebar x tinggi / resolusi / ukuran bingkai
  • bitrate

Lihat parameter DNxHD yang valid di bawah ini untuk nilai yang diterima.


Contoh DNxHD

Contoh ini akan skala hingga 1280x720, pilih frame rate 30000/1001 (alias "29,97"), dan format piksel YUV planar 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
  • Jika file input Anda sudah sesuai dengan beberapa parameter yang diterima maka Anda tidak perlu mendeklarasikannya secara manual.

  • Wadah format output untuk DNxHD biasanya MXF atau MOV.


Contoh DNxHR

DNxHR adalah untuk resolusi yang lebih besar dari 1080p seperti 2K, 4K, dan 8K.

Jika Anda menginginkan DNxHR maka tambahkan -profile:vopsi output, seperti -profile:v dnxhr_hq.

Nilai-nilai yang diterima adalah: dnxhd, dnxhr_444, dnxhr_hqx, dnxhr_hq, dnxhr_sq, dnxhr_lb.

  • DNxHR LB: dnxhr_lb- Bandwidth Rendah. 8-bit 4: 2: 2 ( yuv422p). Kualitas Offline.
  • DNxHR SQ: dnxhr_sq- Kualitas Standar. 8-bit 4: 2: 2 ( yuv422p). Cocok untuk format pengiriman.
  • DNxHR HQ: dnxhr_hq- Kualitas Tinggi. 8-bit 4: 2: 2 ( yuv422p).
  • DNxHR HQX: dnxhr_hqx- Kualitas Tinggi. 10-bit 4: 2: 2 ( yuv422p10le). Pengiriman berkualitas siaran UHD / 4K.
  • DNxHR 444: dnxhr_444- Kualitas Akhir . 10-bit 4: 4: 4 ( yuv444p10le). Pengiriman berkualitas bioskop.

Daftar di atas diadaptasi dari DNxHR codec .


Parameter DNxHD yang valid

ffmpeg akan gagal jika Anda memberikan nilai yang salah, tetapi dapat memberikan daftar apa yang diterima.

Anda dapat menampilkan daftar dengan perintah "dummy" berikut:

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

Catatan Penting tentang Frame Rate

  • Frame rate tidak ada dari daftar yang dihasilkan dari perintah ini. ffmpegakan secara buta menerima frame rate untuk encoder ini, dan perangkat lunak Avid dilaporkan akan menerimanya (tidak dikonfirmasi), tetapi bitrate DNxHD seharusnya hanya dicocokkan dengan frame rate spesifik saja. Untuk kompatibilitas maksimum saya sarankan hanya menggunakan kombinasi bitrate / frame rate yang tepat. Jadi gunakan perintah di atas untuk mendapatkan format bitrate dan pixel yang tepat yang diterima oleh ffmpeg, dan referensi silang dengan Daftar resolusi Avid DNxHD atau White Paper DNxHD (halaman 9) untuk frame rate yang tepat.

  • Frame rate yang tercantum dalam tautan di atas menggunakan perkiraan bulat yang tidak akurat. Nilai yang tepat tercantum di bawah ini; nama yang disingkat adalah ke kiri dan nilai yang tepat adalah ke kanan.

    • 29,97 = 30000/1001 (atau gunakan alias ntsc)
    • 59.94 = 60000/1001
    • 23.967 = 24000/1001 (atau gunakan alias ntsc-film)

Lebih banyak pilihan

Untuk opsi spesifik pembuat enkode tambahan, dan daftar format piksel yang didukung, lihat:

ffmpeg -h encoder=dnxhd

Kesalahan

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!

Ini berarti bahwa laju bingkai, lebar, tinggi, format piksel, dan / atau bitrate Anda salah. Lihat parameter DNxHD yang valid di atas untuk nilai yang diterima.

pixel format is incompatible with DNxHD profile

Pilih format piksel yang tepat menggunakan filter format . Lihat contoh DNxHD di atas.

llogan
sumber