ทำไมการเข้ารหัส VP8 / 9 จึงช้าเมื่อเทียบกับ H.264


10

เมื่อเร็ว ๆ นี้ฉันต้องการลองใช้ตัวแปลงสัญญาณ Webm VP8 และ VP9 แต่เมื่อฉันวิ่งffmpegไปเข้ารหัสไฟล์ H.264 MP4 เป็นหนึ่งในอีกสองตัวแปลงสัญญาณฉันรู้ว่าการเข้ารหัสนั้นช้ากว่ามาก

วิดีโอ 1080p30 จาก H.264 ถึง VP9 ที่ 3 MBit / s กำลังถูกเข้ารหัสที่ประมาณ 6-7 fps ในขณะที่วิดีโอเดียวกันเข้ารหัสที่ประมาณ 40 fps ถึง H.264 ฉันใช้libvpx-vp9ตัวแปลงสัญญาณในffmpegรูปแบบ VP9 ฉันได้รับผลลัพธ์เดียวกันสำหรับ VP8 และ Theora ด้วย

บางคนสามารถอธิบายให้ฉันฟังได้ว่าทำไม VP9 จึงช้ากว่านี้มาก? ฉันลองใช้เครื่องอื่นซึ่งให้ resullts ที่คล้ายกันโดยใช้ Handbrake


คำตอบ:


10

libvpx-vp9เป็นตัวเข้ารหัสที่ช้ากว่ามากlibx264แต่การตั้งค่าเริ่มต้นของเธรดใน ffmpeg (0 = auto) นั้นไม่มีประสิทธิภาพสำหรับ libvpx การตั้งค่าด้วยตนเองจะช่วยให้ความเร็วของการชน เช่น

ffmpeg -i in.mp4 -c:v libvpx-vp9 -threads 4 out.mp4

บนเครื่อง 4-core เมื่อการเข้ารหัส H.264 กระแส 1080-30p ฉันได้รับชนจากไป3.8 fps10 fps


หนึ่งควรพูดถึงว่ามีที่ตั้งไว้ล่วงหน้าความเร็วที่แตกต่างกันกล่าวคือ-presetสำหรับlibx264และสำหรับ-speed ดูlibvpx-vp9 ffmpeg -h fullสิ่งเหล่านี้สามารถสร้างความแตกต่างได้ แต่ก็มีผลต่อคุณภาพหรือประสิทธิภาพการบีบอัด
slhck

1
ฉันลองใช้กับเครื่องค่อนข้างเก่า แต่ฉันใช้ 4 เธรดเนื่องจากทั้งสองเครื่องเป็นแบบ quad-core -speedตัวเลือกที่ไม่ได้สร้างความแตกต่างอย่างมากสำหรับฉัน
comfreak

@comfreak ดูเพิ่มเติม: developers.google.com/media/vp9/the-basics
slhck

3

VP9 เป็นตัวแปลงสัญญาณที่ซับซ้อนมากขึ้นให้การบีบอัดที่ดีขึ้น อัตราส่วนการบีบอัดวิดีโอ / ประสิทธิภาพมีแนวโน้มที่จะชี้แจง คุณควรคาดหวังว่าการเปลี่ยน VP9 (AV1) จะช้าลง


1
ดังนั้นในคำอื่น ๆ ถึงแม้ว่าตัวแปลงสัญญาณ "เท่านั้น" สร้างการปรับปรุงขนาดที่ค่อนข้างเล็ก แต่อาจช้ากว่ามาก? ผลลัพธ์ที่ฉันได้รับเป็นตัวแทนหรือไม่?
comfreak

1
VP9 สามารถมีประสิทธิภาพมากขึ้นถึง 50% ในแง่ของคุณภาพ @comfreak ฉันจะไม่เรียกมันว่าเล็ก คุณไม่สามารถเปรียบเทียบขนาดไฟล์ที่ได้
slhck

@slhck: ดังนั้นคุณกำลังบอกว่า 3MBit / s สามารถเข้ารหัสข้อมูลต้นฉบับได้มากกว่า H.264 และดังนั้นอัตราบิตที่ต่ำกว่าแหล่งข้อมูลใน H.264 อาจเป็นตัวเลือกในการเพิ่มความเร็วของสิ่งต่างๆ
comfreak

1
@comfreak การใช้บิตเรตที่ต่ำกว่าจะไม่เพิ่มความเร็วของกระบวนการเข้ารหัสโดยอัตโนมัติ ฉันแค่บอกว่ามีข้อเสียระหว่างประสิทธิภาพในการบีบอัดและความเร็วและผู้ให้บริการสตรีมมิ่งจำนวนมากเช่นจะลงทุนเวลา CPU เพื่อสร้างสตรีมคุณภาพสูงที่บิตเรตโดยรวมที่ต่ำกว่าเพื่อประหยัดพื้นที่และแบนด์วิดท์ การใช้ตัวแปลงสัญญาณที่มีประสิทธิภาพมากขึ้น (เช่น VP9 หรือ HEVC มากกว่า H.264) ก็ช่วยได้เช่นกัน
slhck

แต่ถ้าหากความเร็วเป็นปัจจัยที่สำคัญที่สุดสำหรับคุณคุณควรติดตั้ง codecs รุ่นเก่า (เช่น H.264), ค่าการบีบอัดที่มีประสิทธิภาพน้อยกว่าและอาจดูการเข้ารหัสด้วย GPU เช่น NVENC
slhck
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.