2017-04-17 16 views
6

JavaScript'te bir MPEG-DASH oynatıcısı oluşturma. Ancak, aramayı gerçekleştirmekte sorun yaşıyorum ve MSE ile ilgili Kaynak Arabellek nesnesinin nasıl ele alınacağı konusunda orada çok fazla referans malzeme görünmüyor.MPEG-DASH Segmentlerini Sıralı Olmayan Arama için Yükle

Anlattığım kadarıyla, bölümlerin düzgün bir şekilde kodlanmış olması koşuluyla (bayt aralıkları değil, bir SegmentTemplate aracılığıyla münferit m4s dosyaları kullanıyorum), sadece segmenti istenen, isteğe bağlı noktaya eklemeliyiz (10 saniye işareti) ve daha sonra VideoElement'in currentTime parametresini de işarete ayarlayın. Tüm bu çalışmalar, segment arabelleklerini hatasız olarak doğrulayabilirim ve segmentin ilk karesi VideoElement öğesinde görsel olarak bile yüklenir. Ancak, oynamaz ve fırçalama mümkün değildir. Hata da yok. Sadece daha fazla veri bekliyor gibi davranıyor.

Bu, önceki bölümlerin tümünü rasgele noktaya ekleyerek giderilir, ancak bu yalnızca pratik değildir. Örneğin, dash.js bunu yapmaz (ancak doğru aramaya izin vermek için tam olarak ne yaptığını tam olarak reddedemiyorum). Sanırım tarayıcıyı parçalara sıralı olarak yüklediğime inandırmak için tarayıcıyı kandırabilmek için sidx, mfhd ve/veya tfdt kutularını dinamik olarak değiştirmem gerekiyor - ama bu böyle bir standardın üstesinden geliyor.

Parçalanmış MP4 segmentlerini MSE Kaynak Tamponuna beslerken rastgele bir noktaya nasıl atlanacağını ve oynatmaya devam edeceğini bilen var mı?

cevap

0

Çözüldü. I-çerçeveleri doğru hizalanmış

A):

bu sürece, otomatik olarak çalışır ortaya çıktı. (Onlar, ancak, bazen, bu durumda, kişinin kodlaması veya uygulanmasından dolayı bir hata verilirse söylenmesi zor bir iştir.)

B) Segmentler, arama noktasında (ve sonrasında) yüklenir. Yani, eğer 10s işareti arıyorsa, segment yüklemesi 10s işareti ile başlamalı ve devam etmelidir.

Garip bir şekilde, bu (oldukça bariz) kurulumunu daha önce birkaç kez yapmıştım, ancak düzgün bir şekilde çalmayı başaramadı ya da bir dizi render hıçkırık oluşturdu. Anlayabildiğim kadarıyla, bunlar, ithalat/tampon rutinleri segmentinde küçük bir uygulama hatasından kaynaklanıyordu.