Przejdź do treści

Zwiastuny Steam to HLS: MP4 jest składany w Twojej przeglądarce

Zwiastun ze Steam to nie plik, który chwycisz — to playlista fragmentów. Downloader odczytuje jakości z playlisty, a Twoja przeglądarka składa je w jeden MP4.

Steam publikował kiedyś zwiastuny jako zwykłe pliki MP4 i WebM, a te pola wciąż istnieją w jego API sklepu. Teraz są zawsze puste. Zamiast tego Steam publikuje główną playlistę HLS: mały plik tekstowy opisujący wersje zwiastuna i wskazujący fragmenty po kilka sekund każdy.

Najpierw playlista, potem fragmenty

Praca resolvera kończy się tu wcześnie. Czyta metadane strony sklepu, bierze adres głównej playlisty zwiastuna, przetwarza go i zwraca jeden wiersz na wersję wraz z jej rozdzielczością, przepływnością i liczbą klatek. Nigdy nie pobiera fragmentów wideo i niczego nie składa — oznaczałoby to przepuszczanie całego wideo przez serwer bez powodu.

Co czyta resolverCo potem robi przeglądarka
Główna playlista: wersje, rozdzielczości, przepływności, grupa audioWybiera wersję, którą wybrałeś
Szablon segmentów wewnątrz playlistyPobiera fragmenty tej wersji z CDN Steam i je łączy
Grupa audio, którą wymienia playlista głównaScala wideo i ścieżkę dźwiękową AAC w jeden MP4

Składanie odbywa się w karcie, która jest już otwarta, z własnego CDN Steam (video.akamai.steamstatic.com). Dwuminutowy zwiastun to około dziewięćdziesięciu fragmentów, więc pasek postępu zapełnia się w kilka sekund przy normalnym połączeniu.

Jak czytać listę jakości

Fragmenty są kopiowane bajt w bajt do gotowego MP4. Obraz i dźwięk są dokładnie tym, co odtwarza własny klient Steam w tej rozdzielczości — łączenie to zmiana kontenera, a nie ponowne kodowanie, więc nic nie zostaje po drodze zmiękczone.

Co może pójść nie tak

Dwie rzeczy, obie dotyczą sieci, a nie wideo. Jeśli metadane sklepu Steam nie odpowiedzą, resolver ponawia próbę raz, zanim zgłosi porażkę. Jeśli nie da się przetworzyć samej playlisty, obowiązuje to samo ponowienie — a jeśli i ono zawiedzie, strona to mówi, zamiast oferować pobieranie, które by się nie skończyło.

Strona gry bez wideo zwraca no_video. Obejmuje to strony, na których jedynymi materiałami jest galeria zrzutów ekranu, co jest częste przy nie wydanych tytułach.

W skrócie

Pytania

Czy pobrany zwiastun ma niższą jakość niż ten odtwarzany przez Steam?

Nie. Fragmenty są kopiowane do MP4 bajt w bajt, więc obraz i dźwięk odpowiadają wybranej wersji — temu samemu strumieniowi, który odtwarza własny klient Steam w tej rozdzielczości.

Dlaczego pobieranie ze Steam pokazuje pasek postępu, a z Pinteresta nie?

Bo CDN Steam pozwala przeglądarce odczytać fragmenty, więc strona naprawdę pobiera plik i może pokazać postęp. CDN Pinteresta nie pozwala, dlatego tamto pobieranie musi być zwykłym przejściem pod link.

Strona gry nie pokazuje żadnych wideo — dlaczego?

Ta strona nie ma dołączonych zwiastunów ani klipów z rozgrywki. Galerie zrzutów ekranu nie są wideo, a nie wydane gry często nie mają ich aż do premiery.

Narzędzia w tym artykule

Wszystkie artykuły