Flutter'da FFmpeg olmadan video downloader yapmak

Vidkap adlı bir video indirici uygulamasının arkasında yatan teknik çözümü merak ediyorsan, burada ilginç bir yaklaşım var: Flutter'da FFmpeg kütüphanesini paketlemeden video indirme işini tamamlamak.

Çoğu web videosunun arkasında basit bir MP4 linki yoktur. Bunun yerine HLS ya da DASH formatında yüzlerce küçük segmenti işaret eden bir oynatma listesi bulunur. Bazıları şifrelenmiş, bazılarında ses ve görüntü ayrı akışlardadır. Kullanıcıya tek, oynatılabilir bir dosya sunmak için tüm segmentleri indirip birleştirmen gerekir.

Geleneksel Flutter çözümü FFmpeg kütüphanesini (genellikle FFmpegKit üzerinden) uygulamaya dahil etmektir. Ancak bu yaklaşımın sorunları var: uygulamaya onlarca megabayt ekler, FFmpegKit 2025'te devre dışı bırakıldı ve ilerleme takibi, iptal etme, devam ettirme üzerinde tam kontrol sağlamaz.

Yazarın çözümü daha ilginç: Chrome uzantısında zaten JavaScript ile yazılmış bir motor vardı. Bunu Dart'a taşıdı., hiçbir yerel medya kütüphanesi olmadan, oynatma listesinden oynatılabilir MP4'e kadar giden yaklaşık 13.000 satır kod ortaya çıktı.

Bu yaklaşımın en şaşırtıcı yanı, segment indirme sırasında ağ kesintilerini ele alma, şifrelenmiş akışları çözme ve MP4 konteynerini sıfırdan oluşturma gibi detayların tamamen Dart'ta yapılabilmesidir. Uygulamaya ek bağımlılık eklemeden, daha hafif bir paket ve daha iyi kullanıcı kontrolü elde etmek mümkün olduğunu gösteriyor.

konu hakkında tepkinizi verebilirsiniz