2013-04-04 20 views
5

Bir html5 video oynatıcım var (video-etiket). Sayfa yüklendiğinde, video dosyasına istek gönderir.HTML5 videosu: http aralığı istek başlıklarını değiştir

http isteği üstbilgileri Aralık alanını değiştirmek mümkün müdür? 0- videonun tamamını indirir = bayt ve bunu için sınırlamak istiyorum:

Aralığı (2 kırmızı çizgiler arasındaki, resme bakınız): Örneğin "Menzil = 0-1000000 bayt"

Screenshot

Video dosyası CDN'de barındırılıyor, bu yüzden sunucularda hiçbir şey yapamıyorum.

+0

Çoğu mevcut tarayıcı uygulamasının bu konuda oldukça akıllı olduğunu düşünüyorum. Video etiketi ilk çıktığında, bir etiketin tüm dosyayı olabildiğince hızlı indirmeye çalışacağını hatırlıyorum. Daha yeni versiyonlar sadece birkaç saniyelik ön tampon gibi görünüyor. Tüm dosyayı sayfa yüklemesinde indirmeye çalışan bir tarayıcı görüyor musunuz? –

+0

Sorun, videoyu duraklattığınız zamandır. Daha sonra, tarayıcılar dosyayı olabildiğince hızlı indirmeye başlayacaktır. – Hese

+0

Tarayıcı, oynatmanın gerektirdiği kadar önceliğe sahip olduğunda bağlantıyı otomatik olarak sıfırlamalı (aktarımı iptal etmeli) ve daha sonra ihtiyaç duyulduğunda ve son bayttan başlayarak daha fazla talepte bulunmalıdır. Daha. – mark4o

cevap

1

XMLHttpRequest ile bir aralık isteği gönderebilirsiniz! ve server 'Accept-Range: Bytes' ise, window.URL.createObjectURL dosyasında bir blob dosyası alın. Video etiketi size birçok etkinlik ve özellik sunar, böylece arabelleğin ne olduğunu ve nerede olduğunuzu her zaman bilirsiniz. Kullanıcı ilerleme çubuğunu tıklatsa da, duraklat veya durdur düğmesi. Video özellikleri bayt aralığına göre zamana dayalı olduğundan, video meta verileri adı verilen video dosyasından bazı ek bilgilere ihtiyacınız vardır. Dosya arama konum oranına bir xml dosyası almak ve meta verisini bir .flv için başlangıçta ayarlamak için Yamdi ile oynadım.

Sunucu tarafında aralık üstbilgisini (bayt = sayı1 - sayı2 ...) okuyun, video dosyasını açın, numara1, yazdır (sayı2-sayı1 + 1) bayt arayın ve belirli bazı üstbilgileri gönderin: Content-Type, Content-Disposition, HTTP/1.1 206 Kısmi İçerik, İçerik Aralığı.

Arama pozisyonunu takip etmelisiniz. Uzunluk size kalmış.

+0

Tüm videoyu bir bloğa yüklediniz, video.src'yi bloğa ayarlayın. Chrome/Android hala çalışmıyor. Ayrıca, Chrome/Android istek başlıklarının gzip için istek göndermesi olarak blogu bir gzip göndermeye çalışıldı – matthewbaskey

İlgili konular