Migracja HLS do odtwarzacza Shaka

Przegląd

Pakiet Cast Web Receiver SDK obsługuje odtwarzanie treści za pomocą kilku internetowych protokołów przesyłania strumieniowego. W zależności od użytego protokołu pakiet SDK wczytuje odtwarzacz, który obsługuje odtwarzanie treści. W przypadku treści HLS wczytywana jest biblioteka odtwarzacza multimediów (MPL). W przypadku treści DASH ładowany jest Shaka Player.

W przyszłości zespoły inżynierów pracujące nad pakietem Cast SDK i odtwarzaczem Shaka Player będą wspólnie pracować nad zwiększeniem obsługi odtwarzania treści HLS w odtwarzaczu Shaka Player. MPL nie będzie już otrzymywać krytycznych aktualizacji. Zalecamy włączenie odtwarzacza Shaka Player w przypadku odtwarzania treści HLS w aplikacji.

Korzyści z Shaka Player

Zmiana odtwarzaczy przynosi aplikacjom te korzyści:

  • Bardziej stabilne sesje przesyłania strumieniowego dla użytkowników dzięki poprawie czasu wczytywania, liczby błędów i opóźnień.
  • Dalsze wdrażanie najnowszych funkcji HLS.
  • Większa przejrzystość analizy głównej przyczyny problemów z kompatybilnością treści gracza dzięki otwartemu kodowi źródłowemu odtwarzacza Shaka Player.
  • Kod źródłowy odtwarzacza open source umożliwia partnerom współtworzenie projektu Shaka Player.
  • Znaczne skrócenie czasu wdrażania funkcji i poprawek błędów w wersji produkcyjnej, ponieważ częstotliwość wydań odtwarzacza Shaka Player jest wysoka i niezależna od wydań pakietu Web Receiver SDK.
  • Większa kontrola nad środowiskiem odtwarzania zapewniana przez interfejs shakaVersion API.
  • Większa pomoc w zakresie odtwarzania ze strony Google dzięki zasobom inżynieryjnym skupionym na odtwarzaniu HLS w Shaka Player, co widać na mapie drogowej.

Oś czasu

Pakiet Web Receiver SDK zacznie używać Shaka Playera jako domyślnego odtwarzacza treści HLS. Będziemy to robić stopniowo, aby przeprowadzić partnerów przez proces migracji.

Faza Data rozpoczęcia Przegląd
1 Paź 2022 Pakiet Cast Web Receiver SDK wprowadza interfejsy API, które umożliwiają włączenie odtwarzania treści HLS w odtwarzaczu Shaka Player.
2 XI 25 Pakiet Cast Web Receiver SDK zmienia domyślny odtwarzacz na Shaka Player w przypadku odtwarzania treści HLS.

Zespoły inżynierów pracujące nad pakietem Web Receiver SDK stosują podejście oparte na wydajności i przejdą do następnego etapu dopiero wtedy, gdy wydajność odtwarzacza Shaka Player będzie porównywalna z wydajnością podstawową MPL. O tych zmianach będziemy informować w grupie dyskusyjnej cast-sdk-announcements, a także będziemy je uwzględniać w tym przewodniku.

Włącz

Od wersji 3.0.0105 CAF dostępna jest konfiguracja na poziomie aplikacji, która umożliwia włączenie odtwarzania HLS za pomocą odtwarzacza Shaka Player. Ta wersja wprowadza też interfejs API, który umożliwia wybór obsługiwanego zakresu wersji odtwarzacza Shaka Player do wczytania. Te flagi są udostępniane w klasie CastReceiverOptions za pomocą właściwości useShakaForHlsshakaVersion i są oceniane po uruchomieniu CastReceiverContext. Każda aplikacja, która korzysta z Shaka Player do odtwarzania HLS, powinna ustawić wersję Shaka Player co najmniej 4.15.12, aby korzystać z najnowszych ulepszeń HLS. Aby wyrazić zgodę, użyj tego fragmentu kodu:

const context = cast.framework.CastReceiverContext.getInstance();

let castReceiverOptions = new cast.framework.CastReceiverOptions();
castReceiverOptions.useShakaForHls = true;

context.start(castReceiverOptions);

Sprawdzanie poprawności treści

Zanim partnerzy zdecydują się na używanie Shaka Playera w aplikacji produkcyjnej, powinni sprawdzić odtwarzanie treści w tym odtwarzaczu. Zalecamy przetestowanie każdej z wymienionych poniżej odmian treści:

  • Typy strumieni: LIVE lub VOD
  • Formaty kontenerów: TS, MP4 lub strumienie elementarne
  • Treści z przerwami lub umieszczonymi reklamami
  • Odtwarzanie na tych urządzeniach: inteligentne wyświetlacze, klucze sprzętowe Google Cast, urządzenia z Androidem TV, telewizory z Google Cast, inteligentne głośniki.

Jeśli zauważysz jakieś błędy lub nieoczekiwane działanie, zgłoś błąd. Gdy upewnisz się, że w Twoich treściach nie występują krytyczne błędy odtwarzania, przenieś zmiany do środowiska produkcyjnego.

Zrezygnuj

Zgodnie z harmonogramem pakiet Web Receiver SDK przejdzie na model rezygnacji w przypadku odtwarzania treści HLS w odtwarzaczu Shaka. Właściwość useShakaForHls zmieni wartość domyślną z false na true. W tym czasie aplikacje mogą używać MPL do odtwarzania HLS, ręcznie ustawiając tę właściwość na false. Po uruchomieniu CastReceiverContext pakiet Web Receiver SDK przywróci wczytywanie MPL zamiast Shaka Player. Poniżej znajdziesz przykład, jak zrezygnować:

const context = cast.framework.CastReceiverContext.getInstance();

let castReceiverOptions = new cast.framework.CastReceiverOptions();
castReceiverOptions.useShakaForHls = false;

context.start(castReceiverOptions);

Zgłaszanie problemów

Zachęcamy partnerów do zgłaszania wszelkich problemów, które napotkają podczas odtwarzania treści HLS. Jak wspomnieliśmy, MPL nie będzie już otrzymywać ważnych aktualizacji. Jeśli wystąpią jakiekolwiek problemy z MPL, postępuj zgodnie z instrukcjami w sekcji Włączanie przewodnika, aby sprawdzić, czy przejście na Shaka Player rozwiąże problem. Jeśli problem nadal występuje lub podczas przełączania odtwarzaczy napotkasz inny problem, wykonaj poniższe czynności.

  1. Aby rozwiązać problem, spróbuj ustawić shakaVersion na inną wersję gałęzi. Jeśli na przykład problem występuje w gałęzi 4.15, spróbuj ustawić najnowszą wersję w innej gałęzi. Aby znaleźć wersje z najbardziej istotnymi aktualizacjami, zapoznaj się z informacjami o wersji odtwarzacza Shaka. Pamiętaj, że interfejs API shakaVersion ma minimalną i maksymalną obsługiwaną wersję, co zostało szczegółowo opisane w dokumentacji referencyjnej. Jeśli zauważysz regresję, zgłoś problem w narzędziu do śledzenia problemów Shaka Player.
  2. Spróbuj zmienić parametry konfiguracji odtwarzacza. Odtwarzacz Shaka Player można skonfigurować za pomocą obiektu PlayerConfiguration. Pakiet Web Receiver SDK definiuje zestaw wartości domyślnych i umożliwia aplikacjom modyfikowanie tej konfiguracji za pomocą właściwości shakaConfig w obiekcie PlaybackConfig. Jest ona sprawdzana w momencie wczytywania, gdy tworzona jest instancja odtwarzacza. Więcej informacji znajdziesz w sekcji konfiguracja aplikacji i opcje. Wartości domyślne ustawione przez pakiet Web Receiver SDK są zalecanymi wartościami.
  3. Sprawdź, czy problem został zgłoszony w narzędziu do śledzenia problemów z Shaka Playerem lub w narzędziu do śledzenia problemów z Cast. Skomentuj błąd i dodaj wszelkie istotne informacje, jeśli opisuje on również Twój problem.
  4. Przetestuj treści w witrynie demonstracyjnej odtwarzacza Shaka Player. Jeśli problem występuje w witrynie demonstracyjnej Twoich treści, zgłoś błąd w projekcie Shaka Player.
  5. Zgłoś błąd w narzędziu Cast Issue Tracker, jeśli problem występuje tylko w przypadku odtwarzacza Shaka na urządzeniach Cast.

Najczęstsze pytania

Zmiana zawodników może wywołać wiele pytań. Poniżej znajdziesz odpowiedzi na najczęstsze pytania, które pomogą Ci w procesie migracji.

Czy muszę przejść na Shaka Player?

Zachęcamy partnerów korzystających z treści HLS do jak najszybszego rozpoczęcia procesu migracji. Dzięki temu aplikacja będzie zapewniać użytkownikom lepsze wrażenia podczas przesyłania strumieniowego. Więcej korzyści znajdziesz w sekcji Korzyści Shaka Playera w tym przewodniku. Aby zapewnić płynne przejście, partnerzy powinni sprawdzić, czy ich aplikacje działają prawidłowo w Shaka Player. Niektóre aplikacje mogą być zagrożone w momencie przejścia pakietu Web Receiver SDK na model rezygnacji, jeśli partnerzy nie sprawdzą wcześniej, czy ich treści są prawidłowo odtwarzane w Shaka Playerze.

Jakiego nakładu pracy wymaga zmiana graczy?

Partnerzy będą musieli przetestować swoją aplikację i treści w środowisku testowym, aby upewnić się, że komfort użytkowników jest podobny lub lepszy w porównaniu z HLS. Aby to zrobić, partnerzy muszą włączyć tę funkcję w środowisku wewnętrznym i dokładnie sprawdzić, czy ich treści mogą być odtwarzane za pomocą odtwarzacza Shaka Player. Więcej informacji o tym, na jakie aspekty treści należy zwrócić uwagę, znajdziesz w artykule Weryfikowanie treści. Po weryfikacji partnerzy będą musieli dodać flagę, aby włączyć tę funkcję w środowisku aplikacji produkcyjnej i zacząć korzystać z zalet odtwarzacza Shaka Player. W przypadku naszych partnerów migracja wymaga minimalnych zmian w oprogramowaniu i głównie testów jakości.

Moja aplikacja wkrótce zacznie używać HLS do przesyłania strumieniowego treści. Co mam zrobić?

W przypadku nowych integracji należy włączyć odtwarzanie za pomocą Shaka Playera. Twoja aplikacja będzie lepiej obsługiwana w dłuższej perspektywie, a także będzie korzystać z nowych funkcji HLS i ulepszeń wydajności. Jeśli nowa integracja sprawia problemy, jak najszybciej zgłoś błąd, aby zespół inżynierów miał wystarczająco dużo czasu na jego rozwiązanie. Jeśli Twoja aplikacja ma krótki termin, podaj tę informację w raporcie o błędzie, a także wpływ, jaki ma to na priorytety. Nasz zespół inżynierów postara się znaleźć rozwiązanie, które będzie odpowiednie dla Twoich użytkowników.

Moje treści lub aplikacja nie działają z odtwarzaczem Shaka Player. Co mam zrobić?

Zgłoś błąd w projekcie Shaka Player lub Cast (patrz Zgłaszanie problemów). Zespół inżynierów Cast SDK aktywnie monitoruje te narzędzia do śledzenia i będzie współpracować z Tobą w celu rozwiązania wszelkich problemów. Im wcześniej wykryjemy te problemy, tym więcej czasu będą mieć na ich rozwiązanie.

MPL nie otrzymuje już ważnych aktualizacji. Co to dokładnie oznacza?

W przeszłości MPL wprowadzało nowe funkcje HLS i naprawiało poważne błędy za pomocą aktualizacji krytycznych. MPL nie będzie już otrzymywać nowych funkcji HLS, więc nie będą one dodawane do odtwarzacza. Podobnie żadne zgłoszone problemy z odtwarzaniem HLS w MPL nie zostaną w niej rozwiązane. Te problemy powinny zostać rozwiązane przez przejście na odtwarzanie za pomocą Shaka Player. Jeśli problemy nadal występują, należy zgłosić błąd, podając odpowiednie problemy, które występują w Shaka Player. Partnerzy powinni zrezygnować z używania MPL.

Moje treści korzystają z protokołu Smooth Streaming. Jak to wpłynie na moją aplikację?

Pliki binarne MPL będą nadal hostowane i dostępne dla aplikacji odbiorcy. Nie będziemy jednak obsługiwać żadnych próśb o dodanie funkcji związanych ze Smooth Streaming ani poprawek błędów, ponieważ specyfikacja Smooth Streaming nie była aktualizowana od ponad 4 lat. Aby nadal otrzymywać aktualizacje dotyczące skuteczności i wsparcie dla swoich treści, zalecamy przeniesienie ich do protokołu przesyłania strumieniowego DASH lub HLS.

Moje treści nie korzystają z protokołów HLS ani Smooth Stream. Jak ta zmiana wpłynie na moją aplikację?

Jeśli Twoja biblioteka treści nie korzysta z żadnego z tych protokołów przesyłania strumieniowego, migracja nie będzie miała na nią wpływu. Nie musisz wprowadzać żadnych zmian w aplikacji.