FFmpeg, onlarca yılın ardından CLI için "en karmaşık refaktör" ile çoklu iş parçacığı desteği ekledi
(phoronix.com)FFmpeg CLI çoklu iş parçacığı desteği
- FFmpeg komut satırı arayüzüne (CLI) çoklu iş parçacığı desteği getiren özellik, FFmpeg Git'e birleştirildi.
- Bu değişiklik, FFmpeg 7.0'ın gelecek yılın başında yayımlanmasından önce gerçekleşti ve video transcoding için yaygın olarak kullanılan bu önemli açık kaynak projede büyük bir iyileştirme anlamına geliyor.
- Çok çekirdekli işlemcilerin yaygınlaştığı günümüzde bu iyileştirme oldukça faydalı.
Karmaşık refaktör çalışması
- FFmpeg geliştiricileri yakın tarihli bir teknik duyuruda bu çoklu iş parçacığı çalışmasını, "onlarca yıl içinde FFmpeg CLI'de yapılan en karmaşık refaktörlerden biri" olarak tanımladı.
- Geliştiriciler, kullanıcılardan test yapmalarını isterken bulunan sorunların FFmpeg Trac'e bildirilmesini de talep etti.
Gerçekleştirilen teknik değişiklikler
- Birleştirilen yamalar arasında iş parçacığı farkındalığına sahip transcoding zamanlama altyapısının eklenmesi, kodlamanın ayrı bir iş parçacığına taşınması ve bunun yanında çeşitli düşük seviye değişiklikler yer alıyor.
- FFmpeg'i iş parçacığı mimarisine geçirmek; her bileşenin (demuxer, decoder, filter, encoder, muxer) zaten ayrı bir iş parçacığında çalışıyor olmasına rağmen artık gerçekten paralel şekilde çalışabileceği anlamına geliyor.
GN⁺ görüşü
- FFmpeg'in çoklu iş parçacığı desteği, video transcoding işlerinin verimliliğini önemli ölçüde artırabilecek kayda değer bir gelişme.
- Bu kadar karmaşık bir refaktör çalışması geliştiriciler için ciddi zorluklar yarattı ve FFmpeg'in modern bilgi işlem ortamına uyum sağlayarak gelişmeyi sürdürdüğünü gösteriyor.
- Bu değişikliğin gerçek performans üzerindeki etkisinin kullanıcılar ve geliştiriciler tarafından nasıl gözlemleneceğini görmek ilginç olacak.
1 yorum
Hacker News görüşleri
Multithreading/processing optimizasyonu üzerine teori
VDD@Dublin etkinliğindeki konuşmanın kaydı
Çok çekirdekli performans artışı üzerine düşünceler
Sürekli rebase çalışmasının zorlukları
FFmpeg'in sanal display buffer streaming başlangıç süresini iyileştirmesi beklentisi
FFmpeg C API dersi tanıtımı
FFmpeg kod tabanı hakkında merak
Bulut hizmeti işletmecisinin bakış açısı
VapourSynth'in thread tabanlı filtre işleme deneyimi paylaşımı
FFmpeg'in çok çekirdek desteği hakkında soru