Budowanie odtwarzacza MPEG-DASH w JavaScript. Mam jednak problem z zaimplementowaniem funkcji wyszukiwania i nie wydaje się, aby istniało wiele materiałów referencyjnych dotyczących sposobu obsługi tego programu z MSE i odpowiednim obiektem bufora źródłowego.Załaduj segmenty MPEG-DASH niesekwencyjnie w celu wyszukiwania
O ile mi wiadomo, pod warunkiem, że segmenty są poprawnie zakodowane (używam indywidualnych plików m4s za pośrednictwem segmentu SegmentTemplate, a nie bajtów), należy po prostu dodać segment dla pożądanego, dowolnego punktu (np. 10 sekundowy znacznik), a następnie ustaw parametr currentTime VideoElement również na znak. Wszystko to działa, mogę potwierdzić bufory segmentów bez błędu, a pierwsza klatka segmentu będzie nawet wizualnie ładować w ramach VideoElement. Jednak nie będzie on odtwarzany, a szorowanie nie jest możliwe. Bez błędów. Działa tylko tak, jakby oczekiwał na więcej danych.
Jest to naprawiane przez dodanie wszystkich poprzednich segmentów, aż do dowolnego punktu, ale to po prostu nie jest praktyczne. Na przykład dash.js tego nie robi (ale nie mogę dokładnie określić, co robi inaczej, aby umożliwić prawidłowe wyszukiwanie). Zgaduję, że muszę jakoś dynamicznie modyfikować pola sidx, mfhd i/lub tfdt, aby oszukać przeglądarkę, aby uwierzyła, że ładuję segmenty sekwencyjnie - ale wydaje się to zbyt wysokie dla takiego standardu.
Ktoś wie, jak przeskoczyć do dowolnego punktu i kontynuować odtwarzanie, w przypadku podawania podzielonych segmentów MP4 do bufora źródłowego MSE?