gram HTTP Live Streaming na rodzinę urządzeń z iOS, korzystając AVPlayer bibliotekę Apple iOS 5 i 6.HTTP Live Streaming: tag EXT-X-nieciągłość sprawia, że wszystkie segmenty potem tylko dźwięk
Ponieważ gram w reklamach w trakcie filmu, między klipami treści, używam tagów # EXT-X-DISCONTINUITY, zgodnie z sugestią osoby, która pomogła w udzieleniu odpowiedzi na poprzednie pytanie.
To działa dla pojedynczej przepływności, ale dostaję problemy tylko podczas korzystania z wariantowej listy odtwarzania z potomnymi listami odtwarzania dla wielu bitrate. Dostaję czarny ekran z dźwiękiem dopiero po pierwszym tagu nieciągłości i nigdy go nie odzyska, nawet po zakończeniu reklamy. (Słyszę reklamę).
Zostało to przetestowane i odtworzone na iPhone 4, 4S, 5 i iPod Touch 4. gen. IPhone 4 jest na iOS 5, reszta to iOS 6. Zdarza się przez większość czasu, ale nie za każdym razem. Ale na pewno chcę podkreślić, że dzieje się tak tylko wtedy, gdy moja lista odtwarzania zawiera więcej niż jedną bitrate playlistę potomną.
Oto przykład z listy odtwarzania, które używam (jest to wersja 400kbps, a mam 200 i 800kbps wersję z odpowiednich list odtwarzania, które wyglądają dokładnie tak, jak poniżej, ale wymienić wszystkich „400-tych z«200» . i „800” (Dobrze, rzeczywista lista odtwarzania jest dłuższy, ale jest to przykład)
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10,
400-clipA-0.ts
#EXTINF:10,
400-clipA-1.ts
#EXTINF:5,
400-clipA-2.ts
#EXT-X-DISCONTINUITY
#EXTINF:10,
400-advert0.ts
#EXTINF:3,
400-advert1.ts
#EXT-X-DISCONTINUITY
#EXTINF:10,
400-clipB-0.ts
#EXTINF:10,
400-clipB-1.ts
#EXTINF:5,
400-clipB-2.ts
#EXT-X-ENDLIST
i mam playlistę wariant, który wybiera pomiędzy odtwarzania potomnych.
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=240000
clips-200.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=440000
clips-400.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=840000
clips-800.m3u8
pamiętać, że to, co dzieje się (~ 75% o w tym czasie), kiedy to odtwarzam, wideo przejdzie w stan czarny po pierwszym tagu nieciągłości (tuż przed reklamą) i nigdy nie wróci do normy, mimo że słyszę dźwięk reklamy. Na przykład, jeśli utworzyłem moją listę odtwarzania z tylko jedną wersją bitrate:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=280000
clips-200.m3u8
W takim razie nie dostaję tego problemu! Bardzo dziwny. Dodatkowo, jeśli usunę wszystkie znaczniki nieciągłości i zachowam pozostałe bitraty w wariancie listy odtwarzania, to działa dobrze (zwykle), ale czasami z jakiegoś powodu pominie cały plik .ts, prawdopodobnie dlatego, że potrzebuje tych znaczników nieciągłości.
Co więcej, dzieje się tak częściej, gdy odtwarzam pliki bezpośrednio w usłudze Amazon Cloudfront, w porównaniu do zasobnika Amazon S3, w którym początkowo znajdowały się.
Kilka innych informacji, które mogą pomóc: Moje oryginalne pliki (klipy i reklamy) to wszystkie pliki .mov pobrane z iPhone'a 4, o tej samej rozdzielczości na każdym z nich. Moje wyjścia (pliki .ts) zostały wtedy wygenerowane z nich - dla każdej klasy bitrate mam takie same ustawienia kodowania dla klipów i reklam. Sygnały wyjściowe mają tę samą rozdzielczość i nie działają w inny sposób.
Jedna ostatnia rzecz, mediasegmentvalidator dostarczona przez Apple nie daje żadnych ostrzeżeń, kiedy używam go do sprawdzenia.
Naprawdę doceniam każdą pomoc, którą możecie zaoferować! Jest to dla mnie zagadkowy problem :-(
Mam problem z tym plikiem. Czy kiedykolwiek znalazłeś obejście/rozwiązanie? – Bryan