แปลงวิดีโอ YouTube HDR (vp9.2) เป็น HEVC HDR ด้วย ffmpeg


2

คำถามของฉันเรียบง่าย: ฉันจะแปลงวิดีโอ HDR vp9.2 ที่ดาวน์โหลดจาก YouTube เป็น HEVC ได้อย่างไร (ดีกว่าถ้า 10 บิต) วิดีโอ HDR

เมื่อวานฉันลองคำสั่งนี้ซึ่งเป็นคำเดียวที่ฉันพบใน Google:

ffmpeg  -i ../4K-HDR\ Videos/The\ World\ in\ HDR\ in\ 4K\ \(ULTRA\ HD\)-2160p\ 60fps.mkv -c:v libx265 -x265-params "colorprim=bt2020:transfer=smpte-st-2084:colormatrix=bt2020nc:master-display=G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,10):max-cll=0,0"  output.mkv

มันแปลงเป็น HEVC (ไม่แน่ใจเกี่ยวกับ 10 บิต) แต่ฉันปล่อย HDR แบบหลวม นอกจากนี้ยังอาจจะซับซ้อนเกินไปเพื่ออะไร ffmpeg params ง่าย ๆ ที่แปลงจาก HDR เป็น HDR? ขอบคุณ

คำตอบ:


2

ฉันได้รับคำตอบจากผู้ใช้ priivt8 ใน โพสต์นี้ ใน macrumors คนแรกต้องการ ffmpeg รุ่นล่าสุดซึ่งรองรับการเข้ารหัส HEVC ระดับลึก v3.4.1 ที่นี่ .

นี่คือคำสั่ง:

ffmpeg -i <infile> \
-c:a copy \
-c:v libx265 \
-tag:v hvc1 \
-crf 22 \
-pix_fmt yuv420p10le \
-x265-params "colorprim=bt2020:transfer=smpte2084:colormatrix=bt2020nc" \
<outfile>.mkv

ที่ไหน

"-i <infile>" <infile> must be replace with the full file name of the video in input
"\-c:a copy" copies the audio
"-c:v libx265" tells ffmpeg to convert to HEVC
"-tag:v hvc1" seems mandatory for Apple devices using quickTime and the like
"-crf 22" is the compression. Lower the value, better the picture and higher the size
"-pix_fmt yuv420p10le" for YCrCB 4:2:0 10-bits HDR
"-x265-params" are the HEVC parameters for color range etc
"<outfile>.mkv" is the file in output. Replace <outfile> with the name you like. The extensions (.mkv) tells ffmpeg to which container convert the video.

ฉันแปลงเป็นไฟล์ mkv ดังนั้นจะไม่มีปัญหาในการเพิ่มเสียงใด ๆ จากวิดีโอ YouTube ดั้งเดิม หนึ่งอาจใช้ ".m4v" สำหรับวิดีโอที่อุปกรณ์ Apple รู้จัก

ตอนนี้วิดีโอที่แปลงแล้วเล่นได้ดีด้วย HDR BT.2020 ทั้งใน Apple TV 4K (ใช้ Infuse Pro) และวิดีโอของ Sony ใน Bravia ของฉันกับ Android TV 7.0

หนึ่งอาจเพิ่ม ffmpeg ตัวเลือก

-r 30

เพื่อลดอัตราเฟรมจาก 60fps เป็น 30fps (ดังนั้น iTunes จึงสามารถเล่นได้ใน Apple TV 4K)


1
โปรดสังเกตว่า FFmpeg ไม่ได้ทำ gob ที่มีเศษส่วนดีดังนั้นสำหรับ 29.97 fps คุณควรใช้ 3000/1001, 23.976 ใช้ 24000/1001 และ 59.94, 60000/1001
Rodrigo Polo

อาโอเค. ฉันจะทดสอบมัน ขอบคุณ
Michele Dall'Agata

1

นี่คือรุ่น "เข้าใจผิด" ของฉัน:

ffmpeg -i source.webm -c:v libx265 -x265-params "level=5.2:colorprim=bt2020:colormatrix=bt2020nc:transfer=smpte2084" -crf 12 -preset medium -c:a copy output.mkv

ใช้งานได้กับวิดีโอ YouTube HDR ทั้งหมด (ดาวน์โหลดโดยใช้ youtube-dl -f 337+bestaudio )

นี้ ( -crf 12 ) จะให้บิตเรตวิดีโอประมาณ 18,000-28,000k สำหรับวิดีโอ 4K ฉันมักจะใช้ -preset ultrafast เมื่อรีบร้อน :)

ฉันไม่จำเป็นต้องตั้งค่า -pix_fmt yuv420p10leฯลฯ เนื่องจากจะเป็นการสืบทอดการตั้งค่าจากไฟล์ต้นฉบับ VP9

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