FFmpeg 9.0 "Lei" нээлтээ хийлээ: 20 жилийн түүхтэй хөдөлгүүрийн томоохон шинэчлэл ба Vulkan GPU хурдасгуур
Оршил: Нээлттэй эхийн медиа экосистемийн шинэ эрин үе
Дэлхийн видео болон аудиогоор ажилладаг бараг бүх систем — тухайлбал VLC, Chromium браузерууд, стриминг платформууд, тэр байтугай Mars Perseverance ровер хүртэл цаанаа ашигладаг FFmpeg фрэймворк томоохон шинэчлэлтээ зарлалаа. 2026 оны 8-р сарын 4-ний өдөр FFmpeg 9.0 "Lei" хувилбар албан ёсоор нээлтээ хийлээ.
Өмнөх 8.1 хувилбараас хойш 4 сар хагасын хугацаанд 160 гаруй хөгжүүлэгчийн хийсэн 2200 гаруй коммит (commit)-ийг багтаасан энэхүү хувилбар нь 85,000 гаруй мөр код шинээр нэмж, 33,000 гаруй мөр хуучин кодыг цэвэрлэжээ. Энэхүү шинэчлэлтийн хамгийн чухал ач холбогдол нь бүх үндсэн 7 сангийн (libavutil, libavcodec, libavformat, libavdevice, libavfilter, libswscale, libswresample) мажор хувилбарыг ахиулж, ABI (Application Binary Interface) салгалт болон архитектурын томоохон цэвэрлэгээ хийсэнд оршино.
Swscale-ийн дахин бичилт: 20 жилийн түүхтэй кодын шинэчлэл
FFmpeg 9.0-ийн хамгийн чухал, алсын хараатай өөрчлөлт бол видео форматын хөрвүүлэлт болон хэмжээ өөрчлөх үүрэгтэй libswscale сангийн шинэчлэл юм. Сүүлийн 20 гаруй жил ашиглагдаж ирсэн хуучин swscale систем нь формат тус бүрд зориулсан тусгай гар хөрвүүлэлтийн кодууд дээр суурилдаг байсан.
Шинэ архитектур нь видео хөрвүүлэлтийг бага түвшний энгийн операцуудад (унших, swizzle, шугаман трансформ, масштаблалт, савлах) хуваан задалдаг болжээ. Оновчлогч алгоритм нь эдгээр операцуудын жагсаалтыг хялбарчилж, сүүлчийн компиляцийн бэкенд рүү дамжуулна.
Нийтэд нээлттэй API дээр SwsBackend сонгогч олгогдсон бөгөөд дараах бэкендүүд багтсан байна:
- C reference: Стандарт C хэл дээрх темплейт бэкенд
- Fast memcpy path: Түргэн санах ой хуулах зам
- x86 SIMD & AArch64 NEON: Процессорын аппарат хурдасгуурт зориулсан сүлжээ
- Vulkan SPIR-V compute shader: Яг ижил хөрвүүлэлтийн графыг CPU дээр ч, GPU дээр ч шууд ажиллуулах боломж
Мөн SwsScaler enum шинээр нэмэгдсэнээр масштаблалтын алгоритмыг тодорхой сонгох боломжтой болж, хуучин хүндрэлтэй флагуудын цуглуулгыг халав.
Vulkan болон GPU аппарат хурдасгуур
Орчин үеийн медиа системүүдэд графикийн процессор (GPU) дээрх тооцоолол чухал байр суурь эзэлдэг. FFmpeg 9.0 нь Vulkan API дээр суурилсан GPU хурдасгуурыг дараах чиглэлүүдээр өргөтгөлөө:
- APV (Advanced Professional Video) Vulkan хурдасгуур: Samsung-ийн APV видео кодект зориулсан Vulkan декодчилдог болон энкодчилдог аппарат хурдасгуурыг нэмэв.
- v360_vulkan шүүлтүүр: 360 градусын болон панорама видео боловсруулалтыг GPU дээр гүйцэтгэх шинэ шүүлтүүр нэмэгдэв.
- transpose_cuda шүүлтүүр (NVIDIA): Видео фрэймийг эргүүлэх, хөрвүүлэхэд видео өгөгдлийг систем санах ой руу (CPU) буцааж таталгүйгээр зөвхөн GPU санах ойд шууд гүйцэтгэдэг болов.
- AMD AMF өргөтгөлүүд:
vf_vpp_amfшүүлтүүрийн HDR боловсруулах чадварыг нэмэгдүүлж, аппарат хурдасгууртай фрэймийн давтамж хөрвүүлэгчvf_frc_amfшүүлтүүрийг шинээр багтаав. - FFV1 Vulkan GPU хурдасгуур: Дижитал архив, камерийн raw өгөгдөл хадгалахад өргөн ашиглагддаг FFV1 кодект зориулсан Vulkan GPU хурдасгууртай энкодер ба декодер орж ирлээ.
Анимейшнтэй WebP ба шинэ медиа стандартууд
Вэб болон гар утасны аппликейшн хөгжүүлэгчдэд зориулсан чухал боломжуудын нэг бол анимийтэд WebP (Animated WebP) форматын декодер болон демуксер (demuxer)-ийг анх удаа шууд дэмждэг болсон явдал юм. Энэ нь GIF форматыг орлох өндөр нягтралтай, бага хэмжээтэй анимейшнуудыг FFmpeg-ээр дамжуулан шууд боловсруулах боломж олгоно.
Мөн дараах стандартууд шинээр нэмэгдэв:
- LCEVC (Low Complexity Enhancement Video Coding) трекийг MP4 контейнерт мукс хийх (muxing) дэмжлэг.
- Apple Hardware ProRes RAW: Apple системүүдийн VideoToolbox аппарат хурдасгуураар ProRes RAW декодчлох боломж.
- HE-AAC 960 (DAB+): Дижитал радио болон тусгай өргөн нэвтрүүлгүүдэд хэрэглэгддэг 960-сампл фрэйм тохиргоотой HE-AAC декодчилол.
- SMPTE 2094-50 динамик метаөгөгдөл: Шинэ үеийн HDR видео урсгалд зориулсан метаөгөгдлийн дэмжлэг.
Хуучин функцүүдийн цэвэрлэгээ ба аюулгүй байдал
FFmpeg 9.0 нь зөвхөн шинэ боломж нэмээд зогсохгүй, сүүлийн хэдэн хувилбарын турш deprecate болоод байсан хуучин функцүүдийг бүрэн устгасан байна. Хөгжүүлэгчид кодоо шинэчлэхдээ дараах өөрчлөлтүүдийг анхаарах шаардлагатай:
-vsyncпараметр устгагдсан бөгөөд оронд нь-fps_modeашиглана.- NVIDIA libnpp суурилтай шүүлтүүрүүд (
scalenpp,transposenppгэх мэт) устгагдаж, CUDA / Vulkan шүүлтүүрүүдээр солигдов. - OpenMAX энкодеруудын дэмжлэг бүрэн зогссон.
- TLS peer сертификатыг анхны тохиргоогоор заавал шалгадаг (verify) болсон. Баталгаагүй эсвэл сертификат нь эвдэрсэн серверүүдтэй харилцдаг системүүд шууд алдаа мэдээлэх тул TLS тохиргоогоо нягтлах хэрэгтэй.
Дүгнэлт ба хөгжүүлэгчид өгөх зөвлөмж
FFmpeg 9.0 "Lei" хувилбар нь орчин үеийн GPU тооцоолол болон хуваарилагдсан архитектурт нийцсэн томоохон үсрэлт болж чадлаа. Ялангуяа видео боловсруулалт, стриминг сервер, AI медиа pipeline болон вэб аппликейшн хөгжүүлж буй багууд дараах алхмуудыг хийхийг зөвлөж байна:
- Библиотек болон API шинэчлэл: ABI өөрчлөгдсөн тул
libavcodec 63,libavformat 63зэрэг шинэ сангуудад тохируулан төслөө дахин компил хийх. - GPU Pipeline оновчлол: Vulkan ба CUDA дээр суурилсан шинэ шүүлтүүрүүдийг ашиглан видео боловсруулалтын процессорын (CPU) ачааллыг бууруулах.
- TLS Тохиргоо: Сүлжээний дуудлагуудын TLS сертификатын аюулгүй байдлыг шалгах.
Эх сурвалж: FFmpeg Official Release 9.0 "Lei", Jean-Baptiste Kempf Blog, Phoronix
Сэтгэгдэл
Ачаалж байна...