Cache streaming video dengan proxy HTTP tertanam?

Beberapa orang telah mencoba melakukan cache data video yang dimuat sebelumnya menggunakan AVPlayer atau MPMoviePlayerController, misalnya

Pendekatan yang paling mudah tampaknya adalah menggunakan AVExportSession pada currentItem pemain, tetapi sepertinya tidak ada yang bisa membuatnya berfungsi.

Pertanyaan saya adalah: apakah mungkin untuk mem-proxy permintaan video pada perangkat secara transparan, dengan server HTTP tertanam yang didukung oleh cache berbasis disk?

Saya dapat menjalankan server web tertanam (GCDWebServer), jadi pertanyaan saya adalah

  1. Akankah caching mengacaukan kode optimasi bandwidth AVPlayer yang mencoba memilih aliran bandwidth tertinggi? Jika ini merupakan masalah, saya dapat mengontrol streaming sehingga hanya menyediakan satu opsi.

  2. Apakah kinerja disk cukup untuk memberikan peningkatan pada jaringan? Tampaknya memang demikian, tetapi saya telah melihat berbagai artikel di web yang membicarakan betapa lambatnya I/O disk di iOS.

Terima kasih!


person bcattle    schedule 03.12.2013    source sumber
comment
tidak jelas dari pertanyaan Anda dan pertanyaan yang Anda rujuk tentang apa tujuan Anda di sini. Apakah Anda mencoba menyimpan salinan video yang diputar secara lokal (referensi Anda ke AVExportSession) atau Anda mencoba menerapkan cache Anda sendiri untuk meningkatkan pemutaran?   -  person MDB983    schedule 16.05.2014
comment
Saya tidak melihat perbedaan yang ingin Anda gambar. Apa perbedaan antara menyimpan salinan video yang diputar secara lokal dan menerapkan cache untuk meningkatkan pemutaran? Bukankah ini hal yang sama? Saya tidak mengetahui metode caching yang tidak akan menyimpan video secara lokal.   -  person bcattle    schedule 16.05.2014
comment
Perbedaannya terletak pada implementasinya. Seperti yang Anda tunjukkan, Anda dapat menggunakan mekanisme proxy untuk menangkap apa yang sedang dalam proses diunduh (dari sudut pandang pemain), atau AVExportSession yang pada dasarnya menangkap data yang sudah diunduh/sedang diputar.   -  person MDB983    schedule 16.05.2014
comment
Benar. Jadi tujuan dari pertanyaan ini adalah untuk menanyakan kepada masyarakat apakah penerapan tersebut dapat dilakukan. Pertanyaan pertama yang ditautkan di atas menunjukkan keraguan seputar pendekatan AVExportSession. Seperti yang saya sebutkan di badan pertanyaan, ada alasan mengapa proksi AVPlayer secara transparan juga mungkin tidak berfungsi.   -  person bcattle    schedule 17.05.2014
comment
Hai @bcattle - Saya sedang mengatasi masalah yang persis sama - Saya ingin menyimpan video saya dalam cache di iOS, tetapi sejauh ini semua upaya saya gagal dengan NSURLProtocol dan resourceLoader khusus. Saya akan menerapkan proxy transparan sekarang, jadi ingin bertanya apakah Anda membuat kemajuan dalam hal ini?   -  person ndbroadbent    schedule 01.06.2015


Jawaban (1)


Untuk Streaming Langsung HTTP:

Jika server web tertanam akan menghosting file segmen media yang terdiri dari umpan streaming langsung HTTP, maka file tersebut harus sudah diunduh ke perangkat, kecuali Anda mengkonfigurasi ulang server web untuk bertindak sebagai proxy.

Dalam kedua kasus tersebut, tampaknya cara yang lebih sederhana adalah mengunduh dan mengurai file indeks (biasanya prog_index.m3u8) untuk mendapatkan daftar file segmen media dan kemudian mulai mengunduh masing-masing file.

person augustzf    schedule 19.05.2014
comment
Terima kasih atas wawasannya. Saya telah membayangkan proxy yang transparan. Jadi maksud Anda buka dan baca file .m3u8, lalu proksi secara transparan setiap aliran di dalamnya? - person bcattle; 19.05.2014