หลังจากสิบเดือนของการพัฒนา แพ็คเกจมัลติมีเดีย FFmpeg 5.0 ก็พร้อมใช้งาน ซึ่งรวมถึงชุดแอปพลิเคชันและคอลเลกชันของไลบรารีสำหรับการทำงานกับรูปแบบมัลติมีเดียต่างๆ (การบันทึก การแปลง และการถอดรหัสรูปแบบเสียงและวิดีโอ) แพ็คเกจนี้เผยแพร่ภายใต้ลิขสิทธิ์ LGPL และ GPL การพัฒนา FFmpeg ดำเนินการติดกับโครงการ MPlayer การเปลี่ยนแปลงที่สำคัญในหมายเลขเวอร์ชันนั้นเกิดจากการเปลี่ยนแปลงที่สำคัญใน API และการเปลี่ยนไปใช้แผนการสร้างรีลีสใหม่ ซึ่งจะมีการสร้างรีลีสสำคัญใหม่ปีละครั้ง และรีลีสที่มีเวลาการสนับสนุนเพิ่มเติม - ทุกๆ สองปี FFmpeg 5.0 จะเป็น LTS รุ่นแรกของโปรเจ็กต์
การเปลี่ยนแปลงที่เพิ่มเข้ามาใน FFmpeg 5.0 ได้แก่:
- มีการล้างข้อมูล API เก่าที่สำคัญสำหรับการเข้ารหัสและถอดรหัสแล้ว และมีการเปลี่ยนแปลงไปเป็น N:M API ใหม่ ซึ่งมีอินเทอร์เฟซซอฟต์แวร์เดียวสำหรับเสียงและวิดีโอ เช่นเดียวกับการแยกตัวแปลงสัญญาณสำหรับสตรีมอินพุตและเอาต์พุต . ลบ API เก่าทั้งหมดที่ทำเครื่องหมายไว้ก่อนหน้านี้ว่าเลิกใช้งานแล้ว เพิ่ม API ใหม่สำหรับตัวกรอง bitstream รูปแบบและตัวแปลงสัญญาณที่แยกจากกัน - ตัวขยายการบีบอัดคอนเทนเนอร์สื่อจะไม่ฝังบริบททั้งหมดของตัวถอดรหัสอีกต่อไป API สำหรับการลงทะเบียนตัวแปลงสัญญาณและรูปแบบได้ถูกลบออกแล้ว - ขณะนี้รูปแบบทั้งหมดได้รับการลงทะเบียนอยู่เสมอ
- ไลบรารี libavresample ถูกลบออกแล้ว
- มีการเพิ่ม API ที่ใช้ AVFrame ที่ง่ายกว่าลงในไลบรารี libswscale
- การสนับสนุนที่ดีขึ้นอย่างมากสำหรับ Vulkan Graphics API
- เพิ่มการรองรับการเร่งด้วยฮาร์ดแวร์ในการถอดรหัสและการเข้ารหัสรูปแบบ VP9 และ ProRes โดยใช้ VideoToolbox API
- เพิ่มการรองรับสถาปัตยกรรม LoongArch ที่ใช้ในโปรเซสเซอร์ Loongson รวมถึงการรองรับส่วนขยาย LSX และ LASX SIMD ที่มีอยู่ใน LoongArch มีการเพิ่มประสิทธิภาพเฉพาะ LoongArch สำหรับตัวแปลงสัญญาณ H.264, VP8 และ VP9
- เพิ่มการรองรับโปรโตคอล Concatf ซึ่งกำหนดรูปแบบสำหรับการถ่ายโอนรายการทรัพยากร (“ffplay concatf:split.txt”)
- เพิ่มตัวถอดรหัสใหม่: Speex, MSN Siren, ADPCM IMA Acorn Replay, GEM (ภาพแรสเตอร์)
- มีการเพิ่มตัวเข้ารหัสใหม่: bitpacked, Apple Graphics (SMC), ADPCM IMA Westwood, VideoToolbox ProRes การตั้งค่าตัวเข้ารหัส AAC มีการเปลี่ยนแปลงเพื่อให้ได้คุณภาพที่สูงขึ้น
- เพิ่มคอนเทนเนอร์คอนเทนเนอร์สื่อ (muxer): Westwood AUD, Argonaut Games CVG, AV1 (บิตสตรีมโอเวอร์เฮดต่ำ)
- เพิ่มตัวแยกคอนเทนเนอร์สื่อ (demuxer): IMF, Argonaut Games CVG
- เพิ่มตัวแยกวิเคราะห์ใหม่สำหรับตัวแปลงสัญญาณเสียง AMR (Adaptive Multi-Rate)
- เพิ่มตัวบรรจุข้อมูล payload (packetizer) สำหรับการส่งวิดีโอที่ไม่มีการบีบอัดโดยใช้โปรโตคอล RTP (RFC 4175)
- ตัวกรองวิดีโอใหม่:
- เซ็กเมนต์และเซ็กเมนต์ - การแบ่งสตรีมหนึ่งรายการพร้อมวิดีโอหรือเสียงออกเป็นหลายสตรีม คั่นด้วยเวลาหรือเฟรม
- hsvkey และ hsvhold - แทนที่ช่วงสี HSV บางส่วนในวิดีโอด้วยค่าระดับสีเทา
- greyworld - การแก้ไขสีวิดีโอโดยใช้อัลกอริทึมตามสมมติฐานโลกสีเทา
- scharr — แอปพลิเคชันของตัวดำเนินการ Schar (ตัวแปรของตัวดำเนินการ Sobel ที่มีค่าสัมประสิทธิ์ต่างกัน) กับอินพุตวิดีโอ
- morpho - อนุญาตให้คุณใช้การเปลี่ยนแปลงทางสัณฐานวิทยาต่าง ๆ กับวิดีโอ
- เวลาแฝงและความหน่วง - วัดความล่าช้าในการกรองขั้นต่ำและสูงสุดสำหรับตัวกรองที่ใช้ก่อนหน้านี้
- Limitdiff - กำหนดความแตกต่างระหว่างสตรีมวิดีโอสองหรือสามรายการ
- xcorrelate - คำนวณความสัมพันธ์ข้ามระหว่างสตรีมวิดีโอ
- varblur - การเบลอวิดีโอแบบแปรผันพร้อมคำจำกัดความของรัศมีการเบลอจากวิดีโอที่สอง
- ความอิ่มตัวของสี - ใช้การปรับเฉดสี ความอิ่มตัว หรือความเข้มของวิดีโอ
- colorspectrum — การสร้างสตรีมวิดีโอด้วยสเปกตรัมสีที่กำหนด
- libplacebo - แอปพลิเคชันสำหรับประมวลผลเชเดอร์ HDR จากไลบรารี libplacebo
- vflip_vulkan, hflip_vulkan และ flip_vulkan เป็นตัวแปรของตัวกรองการพลิกวิดีโอแนวตั้งหรือแนวนอน (vflip, hflip และ flip) ใช้งานโดยใช้ Vulkan Graphics API
- yadif_videotoolbox เป็นตัวแปรหนึ่งของตัวกรอง yadif deinterlacing ที่อิงตามกรอบงาน VideoToolbox
- ฟิลเตอร์เสียงใหม่:
- apsyclip - การประยุกต์ใช้ปัตตาเลี่ยนทางจิตกับสตรีมเสียง
- afwtdn - ลดสัญญาณรบกวนบรอดแบนด์
- adecorrelate - การใช้อัลกอริธึมการตกแต่งสัมพันธ์กับอินพุตสตรีม
- atilt - ใช้การเปลี่ยนสเปกตรัมสำหรับช่วงความถี่ที่กำหนด
- asdr - การกำหนดความผิดเพี้ยนของสัญญาณระหว่างสตรีมเสียงสองสตรีม
- spectralstats - สถิติเอาต์พุตพร้อมคุณสมบัติสเปกตรัมของแต่ละช่องเสียง
- adynamicsmooth - การปรับกระแสเสียงให้เรียบแบบไดนามิก
- adynamicequalizer - การปรับสมดุลแบบไดนามิกของสตรีมเสียง
- anlmf - ใช้อัลกอริธึมกำลังสองเฉลี่ยน้อยที่สุดกับสตรีมเสียง
ที่มา: opennet.ru