2013-12-03 26 views
9

Birkaç kişi örneğin AVPlayer veya MPMoviePlayerController kullanarak önceden yüklenmiş video verilerini önbelleğe çalıştıkGömülü HTTP proxy'si ile video akışı önbellekleme?

en basit yaklaşım oyuncunun currentItem üzerinde AVExportSession kullanıyor gibi görünüyor ama kimse işe yaramayacak gibi gözüküyor.

Soruma şu soru var: aygıtın video isteklerini, disk tabanlı bir önbellek tarafından desteklenen katıştırılmış bir HTTP sunucusu ile şeffaf bir şekilde proxy yapmak mümkün mü? benim sorum

  1. Will önbelleğe mümkün olan en yüksek bant genişliğine sahip akışını belirlemeye çalışır AVPlayer 'ın bant genişliği optimizasyonu kodu berbat yani

    Ben, gömülü bir web sunucusu (GCDWebServer) çalıştırabilir? Bu bir sorunsa, akışı yalnızca bir seçenek sunacak şekilde kontrol edebilirim.

  2. Ağ performansı, ağ üzerinde iyileştirme sağlamak için yeterli mi? Açıkçası öyle görünebilirdi, ancak web'de iOS’ta ne kadar yavaş disk I/O’nun bulunduğu hakkında çeşitli makaleler gördüm.

Teşekkürler!

HTTP Canlı Streaming için
+0

, sorunuzdan ve hedefinizin tam olarak burada ne anlama geldiği ile ilgili sorulardan net değildir. Oynatılan videonun bir kopyasını yerel olarak kaydetmeye mi çalışıyorsunuz (ref, AVExportSession'a) veya oynatmayı iyileştirmek için kendi önbelleğinizi uygulamaya çalışıyor musunuz? – MDB983

+0

Çizim yapmaya çalıştığınız farkı göremiyorum. "Oynatılan videonun yerel olarak bir kopyasını kaydetme" ve "oynatmayı iyileştirmek için önbellek uygulama" arasındaki fark nedir? Bunlar aynı şey değil mi? Videoyu yerel olarak kaydetmeyen önbelleğe alma yöntemlerinden haberdar değilim. – bcattle

+0

Bu ayrım uygulamada. İşaret ettiğin gibi, indirilmekte olanı ("oyuncular" bakış açısıyla) yakalamak için bir proxy mekanizması kullanabilir veya daha önce indirilmiş/çalınan verileri esasen yakalayan bir AVExportSession'ı kullanabilirsiniz. – MDB983

cevap

0

:

gömülü web sunucusu HTTP canlı akışı beslemeyi oluşturan medya segmenti dosyaları barındırmak için ise, o dosyaları yeniden sürece, zaten cihaza indirilebilir gerekir web sunucusu bir proxy gibi davranacak.

Her iki durumda da, medya segmenti dosyalarının listesini almak için dizin dosyasını (genellikle prog_index.m3u8) indirmek ve ayrıştırmak daha basit bir yol gibi görünüyor ve daha sonra her birinin yalnızca indirme işlemini başlatıyor.

+1

İçgörü için teşekkürler. Şeffaf bir proxy hayal ediyordum. Yani açık ve ".m3u8" dosyasını okuyorsunuz, sonra orada her bir akışı şeffaf bir şekilde proxy ediyorsunuz? – bcattle