นี่คือเอนโค้ดเดอร์ที่พิถีพิถันดังนั้นคุณต้องเลือกพารามิเตอร์ที่เหมาะสมรวมถึง:
- อัตราเฟรม
- รูปแบบพิกเซล / พื้นที่สี
- ความกว้าง 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
ตัวอย่าง DNxHR
DNxHR ใช้สำหรับความละเอียดที่ใหญ่กว่า 1080p เช่น 2K, 4K และ 8K
หากคุณต้องการ DNxHR แล้วเพิ่มตัวเลือกในการส่งออกเช่น-profile:v
-profile:v dnxhr_hq
ค่าที่ยอมรับคือ: dnxhd
, dnxhr_444
, dnxhr_hqx
, dnxhr_hq
, ,dnxhr_sq
dnxhr_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 ด้านบน
ffmpeg -i <input_file> -vcodec dnxhd -b <bitrate> -an output.mov