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 resolver | Co potem robi przeglądarka |
|---|---|
| Główna playlista: wersje, rozdzielczości, przepływności, grupa audio | Wybiera wersję, którą wybrałeś |
| Szablon segmentów wewnątrz playlisty | Pobiera fragmenty tej wersji z CDN Steam i je łączy |
| Grupa audio, którą wymienia playlista główna | Scala 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
- Każdy wiersz to jedna wersja, którą zwiastun faktycznie niesie, od najwyższej rozdzielczości.
- Wiersze pokazują rozdzielczość i przepływność, bo dwie wersje mogą mieć tę samą rozdzielczość i różnić się ilością danych, która za nią stoi.
- Zwiastuny Steam często sięgają 1920×1080, ale mały zwiastun indy może zatrzymać się znacznie niżej.
- Zwiastuny i klipy z rozgrywki są wymienione razem; każdy ma obrazek okładki, żebyś odróżnił je przed pobraniem.
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
- Steam nie serwuje już zwykłych plików zwiastunów; HLS to jedyna droga.
- Resolver czyta playlistę; Twoja przeglądarka pobiera fragmenty i je scala.
- Gotowy MP4 to kopia strumienia, a nie ponowne kodowanie.
- Nic nie przechodzi przez tę stronę i nic nie jest przechowywane.
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.