วิธีการแปลงวิดีโอด้วย ffmpeg ให้อยู่ในรูปแบบ DNxHD / DNxHR?


12

ฉันกำลังติดตามการสอนเกี่ยวกับวิธีการทำงานกับ cinelerra-cv ในตอนแรกมันถูกกล่าวว่าขั้นตอนแรกในการทำงานกับ cinelerra คือการแปลงวิดีโอคลิปใด ๆ ที่มีในรูปแบบ dnxhd มันเป็นเพียงแค่พูดไม่ได้อธิบายว่าจะทำอย่างไร

หลังจากการวิจัยบางอย่างฉันเจอ ffmpeg แต่ฉันไม่รู้ว่าจะใช้ยังไงกับ dnxhd ด้วยความรู้เล็กน้อยที่ฉันรวบรวมเกี่ยวกับ ffmpeg ฉันเดาว่าจะทำอย่างไร:

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

อย่างไรก็ตามสิ่งนี้ไม่ได้ผลและตัวอย่างที่ฉันเห็นในการแปลงเป็น dnxhd ด้วย ffmpeg ที่ฉันไม่เข้าใจพวกเขาดูเหมือนแต่ละครั้งจะมีแท็กที่แตกต่างกันโดยไม่อธิบายว่าทำไมถึงใช้พวกเขา


1
deb-indus.org/tuto/ffmpeg-howto.htm#Encoding_VC-3ขอแนะนำffmpeg -i <input_file> -vcodec dnxhd -b <bitrate> -an output.mov
Rinzwind

ขอบคุณฉันเคยเห็นอันนี้มาก่อนและฉันชอบ: ฉันต้องระบุบิตเรตและต้องไม่มีเสียง (- หรือ)? .... ฉันหมายถึงสามารถทำงานใน cinelerra กับ dnxhd videoclips ที่ไม่มีเสียงได้หรือไม่?
sharkant

1
-b <int> : Set video bitrate in bit/s ( default = 200k ).ดังนั้นฉันจะสมมติว่าคุณต้องเพิ่มบิตเรตตั้งแต่ 200k ไม่ใช่ตัวเลือกที่ถูกต้อง แต่-anฉันจะปล่อย :)
Rinzwind

อัตราบิตขึ้นอยู่กับไฟล์ต้นฉบับหรือไฟล์ที่ต้องการแปลง? .... ฉันหมายถึงถ้าฉันลองใช้ 200 ใช้งานได้ไหม
sharkant

ไม่คุณต้องระบุบิตเรตสำหรับโปรแกรมเปลี่ยนไฟล์ตัวนี้
llogan

คำตอบ:


18

นี่คือเอนโค้ดเดอร์ที่พิถีพิถันดังนั้นคุณต้องเลือกพารามิเตอร์ที่เหมาะสมรวมถึง:

  • อัตราเฟรม
  • รูปแบบพิกเซล / พื้นที่สี
  • ความกว้าง x ความสูง / ความละเอียด / ขนาดเฟรม
  • บิตเรต

ดูพารามิเตอร์ DNxHD ที่ถูกต้องด้านล่างสำหรับค่าที่ยอมรับได้


ตัวอย่าง DNxHD

ตัวอย่างนี้จะปรับขนาดเป็น 1280x720 เลือกอัตราเฟรมที่ 30000/1001 (aka "29.97") และรูปแบบพิกเซลของภาพถ่ายแบบ 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
  • หากไฟล์อินพุตของคุณสอดคล้องกับพารามิเตอร์ที่ยอมรับแล้วบางส่วนคุณไม่จำเป็นต้องประกาศด้วยตนเอง

  • คอนเทนเนอร์รูปแบบเอาต์พุตสำหรับ DNxHD โดยทั่วไปคือ MXF หรือ MOV


ตัวอย่าง DNxHR

DNxHR ใช้สำหรับความละเอียดที่ใหญ่กว่า 1080p เช่น 2K, 4K และ 8K

หากคุณต้องการ DNxHR แล้วเพิ่มตัวเลือกในการส่งออกเช่น-profile:v-profile:v dnxhr_hq

ค่าที่ยอมรับคือ: dnxhd, dnxhr_444, dnxhr_hqx, dnxhr_hq, ,dnxhr_sqdnxhr_lb

  • DNxHR LB: dnxhr_lb- แบนด์วิดธ์ต่ำ 8 บิต 4: 2: 2 ( yuv422p) คุณภาพออฟไลน์
  • DNxHR SQ: dnxhr_sq- คุณภาพมาตรฐาน 8 บิต 4: 2: 2 ( yuv422p) เหมาะสำหรับรูปแบบการจัดส่ง
  • DNxHR HQ: dnxhr_hq- คุณภาพสูง 8 บิต 4: 2: 2 ( yuv422p)
  • DNxHR HQX: dnxhr_hqx- คุณภาพสูง 10 บิต 4: 2: 2 ( yuv422p10le) การส่งมอบคุณภาพการออกอากาศ UHD / 4K
  • DNxHR 444: dnxhr_444- คุณภาพการตกแต่ง 10 บิต 4: 4: 4 ( yuv444p10le) การส่งมอบคุณภาพระดับโรงภาพยนตร์

รายการด้านบนดัดแปลงมาจากตัวแปลงสัญญาณ DNxHR


พารามิเตอร์ DNxHD ที่ถูกต้อง

ffmpeg จะล้มเหลวหากคุณระบุค่าที่ไม่ถูกต้อง แต่สามารถให้รายการสิ่งที่ยอมรับได้

คุณสามารถแสดงรายการด้วยคำสั่ง "dummy" ต่อไปนี้:

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

หมายเหตุสำคัญเกี่ยวกับ Frame Rate

  • อัตราเฟรมหายไปจากรายการที่สร้างขึ้นจากคำสั่งนี้ ffmpegจะยอมรับอัตราเฟรมใด ๆ สำหรับโปรแกรมเข้ารหัสนี้และซอฟต์แวร์ Avid จะยอมรับอัตราดังกล่าว (ไม่ยืนยัน) แต่อัตราบิต DNxHD ควรจะจับคู่กับอัตราเฟรมเฉพาะเท่านั้น เพื่อความเข้ากันได้สูงสุดฉันแนะนำให้ใช้เฉพาะชุดอัตราบิตเรต / เฟรมที่เหมาะสมเท่านั้น ดังนั้นใช้คำสั่งด้านบนเพื่อรับบิตเรตและรูปแบบพิกเซลที่เหมาะสมและยอมรับffmpegการอ้างอิงไขว้กับความละเอียดList of Avid DNxHDหรือกระดาษขาว DNxHD (หน้า 9) สำหรับอัตราเฟรมที่เหมาะสม

  • อัตราเฟรมที่แสดงในลิงค์ด้านบนใช้การประมาณที่ไม่ถูกต้อง ค่าที่เหมาะสมมีการระบุไว้ด้านล่าง; ชื่อย่อจะอยู่ทางซ้ายและค่าที่เหมาะสมคือทางขวา

    • 29.97 = 30000/1001 (หรือใช้นามแฝงntsc)
    • 59.94 = 60000/1001
    • 23.967 = 24000/1001 (หรือใช้นามแฝงntsc-film)

ตัวเลือกเพิ่มเติม

สำหรับตัวเลือกเฉพาะตัวเข้ารหัสเพิ่มเติมและรายการรูปแบบพิกเซลที่รองรับให้อ้างอิง:

ffmpeg -h encoder=dnxhd

ข้อผิดพลาด

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!

ซึ่งหมายความว่าอัตราเฟรมความกว้างความสูงรูปแบบพิกเซลและ / หรืออัตราบิตของคุณไม่ถูกต้อง อ้างถึงพารามิเตอร์ DNxHD ที่ถูกต้องด้านบนสำหรับค่าที่ยอมรับได้

pixel format is incompatible with DNxHD profile

เลือกรูปแบบพิกเซลที่เหมาะสมโดยใช้ตัวกรองรูปแบบ ดูตัวอย่าง DNxHD ด้านบน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.