FFmpeg CLI รองรับมัลติเธรดดิ้ง
- ฟีเจอร์ที่ทำให้ส่วนติดต่อบรรทัดคำสั่ง (CLI) ของ FFmpeg รองรับมัลติเธรดดิ้ง ได้ถูกรวมเข้ากับ FFmpeg Git แล้ว
- นี่เป็นการเปลี่ยนแปลงที่เกิดขึ้นก่อนการเปิดตัว FFmpeg 7.0 ในช่วงต้นปีหน้า และถือเป็นการปรับปรุงครั้งใหญ่สำหรับโครงการโอเพนซอร์สสำคัญที่ถูกใช้อย่างแพร่หลายในการแปลงรหัสวิดีโอ
- ในยุคที่โปรเซสเซอร์หลายคอร์กลายเป็นเรื่องปกติ การปรับปรุงนี้มีประโยชน์อย่างมาก
งานรีแฟกเตอร์ที่ซับซ้อน
- ในการประกาศทางเทคนิคล่าสุด นักพัฒนา FFmpeg อธิบายงานมัลติเธรดดิ้งนี้ว่าเป็น "หนึ่งในการรีแฟกเตอร์ที่ซับซ้อนที่สุดที่เกิดขึ้นกับ FFmpeg CLI ในรอบหลายทศวรรษ"
- นักพัฒนาได้ขอให้ผู้ใช้ช่วยทดสอบ และเรียกร้องให้รายงานปัญหาที่พบไปยัง FFmpeg Trac
การเปลี่ยนแปลงทางเทคนิคที่นำมาใช้
- แพตช์ที่ถูกรวมเข้าไปมีทั้งการเพิ่มโครงสร้างพื้นฐานสำหรับการจัดตารางทรานส์โค้ดที่รับรู้เธรด การย้ายการเข้ารหัสไปยังเธรดแยกต่างหาก และการเปลี่ยนแปลงระดับล่างอื่น ๆ อีกหลายรายการ
- การเปลี่ยน FFmpeg ไปสู่สถาปัตยกรรมแบบเธรด หมายความว่าแต่ละองค์ประกอบ (demuxer, decoder, filter, encoder, muxer) ซึ่งเดิมทำงานอยู่บนเธรดแยกกันอยู่แล้ว ตอนนี้จะสามารถทำงานแบบขนานได้จริง
ความเห็นของ GN⁺
- การรองรับมัลติเธรดดิ้งของ FFmpeg เป็นพัฒนาการสำคัญที่สามารถเพิ่มประสิทธิภาพของงานแปลงรหัสวิดีโอได้อย่างมาก
- งานรีแฟกเตอร์ที่ซับซ้อนนี้สร้างความท้าทายอย่างมากให้กับนักพัฒนา และแสดงให้เห็นว่า FFmpeg ยังคงปรับตัวและพัฒนาอย่างต่อเนื่องให้เข้ากับสภาพแวดล้อมการประมวลผลสมัยใหม่
- สำหรับทั้งผู้ใช้และนักพัฒนา การเฝ้าดูว่าการเปลี่ยนแปลงนี้จะส่งผลต่อประสิทธิภาพจริงอย่างไรนับเป็นเรื่องที่น่าสนใจ
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ทฤษฎีเกี่ยวกับการเพิ่มประสิทธิภาพมัลติเธรด/มัลติโปรเซสซิง
วิดีโอบันทึกการบรรยายจากงาน VDD@Dublin
ข้อคิดเกี่ยวกับการเพิ่มประสิทธิภาพแบบมัลติคอร์
ความท้าทายของการรีเบสอย่างต่อเนื่อง
คาดหวังการปรับปรุงเวลาเริ่มสตรีมของ virtual display buffer ใน FFmpeg
โปรโมตคอร์สสอน FFmpeg C API
ความสงสัยเกี่ยวกับโค้ดเบสของ FFmpeg
มุมมองของผู้ให้บริการคลาวด์
แชร์ประสบการณ์การประมวลผล thread filter ของ VapourSynth
คำถามเกี่ยวกับการรองรับมัลติคอร์ของ FFmpeg