Aktualizacje dźwięku i wideo w Chrome 70

François Beaufort
François Beaufort

Oglądanie filmu przy użyciu funkcji obraz w obrazie

Funkcja obraz w obrazie umożliwia użytkownikom oglądanie filmów w pływającym oknie (zawsze nad innymi oknami), dzięki czemu mogą mieć podgląd tego, co oglądają podczas korzystania z innych witryn lub aplikacji. Dzięki nowemu interfejsowi internetowemu obraz w obrazie możesz inicjować tę funkcję i kontrolować ją w filmach na swojej stronie internetowej.

Przeczytaj nasz artykuł, aby dowiedzieć się więcej na ten temat.

Dekoder AV1

AV1 to kodek nowej generacji stworzony przez Alliance for Open Media. AV1 poprawia wydajność kompresji o ponad 30% w porównaniu z najnowocześniejszym kodekiem wideo – VP9. Chrome 70 dodaje dekoder AV1 do Chrome Desktop x86-64 zgodnie z oficjalną specyfikacją strumienia transmisji bitów. Obecnie obsługa jest ograniczona do „Głównego” profilu 0 i nie obejmuje możliwości kodowania. Obsługiwanym kontenerem jest MP4 (ISO-BMFF) (krótkie omówienie kontenerów znajdziesz w artykule Od surowego filmu do pliku internetowego).

Aby wypróbować AV1:

  • Wejdź na stronę YouTube TestTube.
  • Wybierz „Preferuj AV1 dla SD” lub „Zawsze preferuj AV1”, aby uzyskać żądaną rozdzielczość AV1. Pamiętaj, że przy wyższych rozdzielczościach na niektórych urządzeniach w przypadku AV1 mogą wystąpić problemy z odtwarzaniem.
  • Spróbuj odtworzyć klipy z YouTube z playlisty wprowadzonej w wersji beta.
  • Potwierdź kodek av01 w sekcji „Statystyki dla nerdów”.
Statystyki dla nerdów korzystających z AV1 w YouTube.
Rysunek 1. Statystyki dla nerdów korzystających z AV1 w YouTube.

Obsługa przełączania kodeków i kontenerów w MSE

W Chrome dodamy obsługę odtwarzania między kodekami i strumieniami bajtowymi w rozszerzeniach źródeł multimediów za pomocą nowej metody changeType() w SourceBuffer. Pozwala na późniejszą zmianę typu bajtów multimediów dołączanych do obiektu SourceBuffer.

Obecna wersja MSE obsługuje adaptacyjne odtwarzanie multimediów. Jednak adaptacja wymaga, aby wszystkie multimedia dołączone do SourceBuffer muszą być zgodne z typem MIME podanym podczas początkowego tworzenia pliku SourceBuffer za pomocą MediaSource.addSourceBuffer(type). Kodeki tego typu oraz wszystkie wcześniej przeanalizowane segmenty inicjowania muszą pozostać takie same. Oznacza to, że witryna musi podjąć wyraźne działania w celu dokonania przełączania kodeka lub strumienia bajtów (za pomocą wielu elementów multimedialnych lub ścieżek SourceBuffer i przełączania się między nimi), co zwiększa złożoność aplikacji i widoczność dla użytkownika. Takie przejścia wymagają wykonania przez aplikację internetową działania synchronicznego w wątku głównym mechanizmu renderowania. Takie opóźnienie przejścia zmniejsza płynność odtwarzania multimediów między przejściami.

Dzięki nowej metodzie changeType() SourceBuffer może buforować i obsługiwać odtwarzanie w różnych formatach bajtowych strumieni danych i kodekach. Ta nowa metoda zachowuje wcześniej buforowane multimedia oraz umożliwia w przyszłości usuwanie lub usuwanie ramek zakodowanych w kodzie MSE oraz wykorzystuje logikę splotowania i buforowania w istniejącym algorytmie przetwarzania ramek zakodowanym przez MSE.

Aby użyć metody changeType():

    const sourceBuffer = myMediaSource.addSourceBuffer('video/webm; codecs="opus, vp09.00.10.08"');
    sourceBuffer.appendBuffer(someWebmOpusVP9Data);

    // Later on...
    if ('changeType' in sourceBuffer) {
      // Change source buffer type and append new data.
      sourceBuffer.changeType('video/mp4; codecs="mp4a.40.5, avc1.4d001e"');
      sourceBuffer.appendBuffer(someMp4AacAvcData);
    }

Zgodnie z oczekiwaniami, jeśli przekazywany typ nie jest obsługiwany przez przeglądarkę, ta metoda zgłasza NotSupportedError wyjątek.

Zapoznaj się z tą przykładem, która zawiera informacje na temat buforowania i odtwarzania elementu audio w ramach kodowania krzyżowego i międzybajtowego oraz odtwarzania tych elementów.

Prośba o wysyłkę | Narzędzie do śledzenia stanu Chrome | Błąd Chromium

Opus w formacie MP4 dla MSE

Otwarty i bardzo uniwersalny kodek audio Opus jest obsługiwany w elementach <audio> i <video> od wersji Chrome 33. Później dodano obsługę Opus in ISO-BMFF (w MP4). Teraz w Chrome 70 dostępna jest wersja Opus w formacie MP4 – rozszerzenia źródła multimediów.

Oto jak możesz sprawdzić, czy Opus w formacie MP4 obsługuje MSE:

if (MediaSource.isTypeSupported('audio/mp4; codecs="opus"')) {
  // TODO: Fetch data and feed it to a media source.
}

Jeśli chcesz zobaczyć pełny przykład, zajrzyj do oficjalnego przykładu.

Ze względu na brak narzędzi do powielania Opus w formacie MP4 z prawidłowym przycinaniem i pominięciem wartości na końcu filmu, jeśli taka precyzja jest dla Ciebie ważna, musisz używać SourceBuffer.appendWindow{Start,End} i SourceBuffer.timestampOffset w Chrome, aby uzyskać dokładne odtwarzanie próbki.

Prośba o wysyłkę | Narzędzie do śledzenia stanu Chrome | Błąd Chromium

Domyślne zezwalanie na odtwarzanie treści chronionych na urządzeniach z Androidem

W Chrome 70 na Androida domyślna wartość ustawienia witryny „Treść chroniona” zmienia się z „Najpierw zapytaj” na „Dozwolone”, co zmniejsza problemy związane z odtwarzaniem takich multimediów. Zmiana jest możliwa między innymi w związku z dodatkowymi czynnościami, które mają na celu usunięcie plików cookie oraz danych witryn z licencji na multimedia oraz plików cookie. Dzięki temu witryny nie używają licencji na multimedia do śledzenia użytkowników, którzy wyczyścili dane przeglądania.

Ustawienie treści chronionych w Androidzie.
Rysunek 2. Ustawienie treści chronionych w Androidzie.