HLS ang mga trailer ng Steam: tinatahi ang MP4 sa browser mo
Ang trailer ng Steam ay hindi file na basta makukuha — playlist ito ng mga fragment. Binabasa ng downloader ang mga quality ng playlist, at ang browser mo ang bumubuo sa kanila tungo sa isang MP4.
Dati nang naglalathala ang Steam ng mga trailer bilang plain MP4 at WebM file, at naroon pa rin ang mga field na iyon sa store API nito. Wala na silang laman ngayon. Ang inilalathala ng Steam sa halip ay HLS master playlist: maliit na text file na naglalarawan sa mga rendition ng trailer at tumuturo sa mga fragment na ilang segundo ang haba.
Playlist muna, fragment pagkatapos
Maaga nang natatapos ang trabaho ng resolver dito. Binabasa nito ang metadata ng store page, kinukuha ang URL ng master playlist ng trailer, ini-parse ito, at nagbabalik ng isang row kada rendition kasama ang resolution, bitrate at frame rate nito. Hindi ito kailanman kumukuha ng video fragment at walang tintipon — ibig sabihin kasi noon, idadaan ang buong video sa server nang walang dahilan.
| Ano ang binabasa ng resolver | Ano ang ginagawa ng browser pagkatapos |
|---|---|
| Master playlist: rendition, resolution, bitrate, audio group | Pinipili ang rendition na iyong pinili |
| Ang segment template sa loob ng playlist | Kinukuha ang mga fragment ng rendition na iyon mula sa CDN ng Steam at pinagsasama ang mga ito |
| Ang audio group na pinapangalanan ng master | Pinagsasama ang video at ang AAC audio track tungo sa isang MP4 |
Sa tab na bukas na mismo nangyayari ang pagtatahi, mula sa sariling CDN ng Steam (video.akamai.steamstatic.com). Ang dalawang-minutong trailer ay tinatayang siyamnapung fragment, kaya napupuno ang progress bar sa loob ng ilang segundo sa normal na koneksyon.
Pagbasa ng quality list
- Ang bawat row ay isang rendition na aktwal na taglay ng trailer, pinakamataas na resolution muna.
- Ipinapakita ng mga row ang resolution at ang bitrate, dahil maaaring pareho ang resolution ng dalawang rendition at magkaiba ang dami ng data na bumubuo rito.
- Madalas umabot sa 1920×1080 ang mga trailer ng Steam, pero ang maliit na indie trailer ay maaaring huminto nang mas mababa.
- Ang mga trailer at gameplay clip ay magkasamang nakalista; may poster image ang bawat isa para makilala mo ang mga ito bago mag-download.
Ang mga fragment ay kinokopya nang byte for byte papasok sa tapos na MP4. Ang larawan at tunog ay eksaktong pina-play ng sariling client ng Steam sa resolution na iyon — ang pagsasama ay pagbabago ng container, hindi re-encode, kaya walang lumalambot sa daan.
Ano ang maaaring magkamali
Dalawang bagay, pareho tungkol sa network kaysa sa video. Kung hindi sumagot ang store metadata ng Steam, muling susubukan ng resolver nang isang beses bago mag-ulat ng kabiguan. Kung hindi ma-parse ang playlist mismo, ganoon din ang retry — at kung mabigo pa rin, sinasabi ito ng page kaysa mag-alok ng download na hindi matatapos.
Ang game page na walang video ay nagbabalik ng no_video. Kasama dito ang mga page kung saan screenshot gallery lang ang tanging media, na karaniwan para sa mga hindi pa nailalabas na titulo.
Ang maikling bersyon
- Hindi na nagbibigay ang Steam ng plain trailer file; HLS na ang tanging ruta.
- Binabasa ng resolver ang playlist; kinukuha ng browser mo ang mga fragment at pinagsasama ang mga ito.
- Ang tapos na MP4 ay kopya ng stream, hindi re-encode.
- Walang dumadaan sa site na ito, at walang nakaimbak.
Mga tanong
Mas mababa ba ang quality ng na-download na trailer kaysa sa pina-play ng Steam?
Hindi. Ang mga fragment ay kinokopya sa MP4 nang byte for byte, kaya tugma ang larawan at audio sa rendition na pinili mo — kaparehong stream na pina-play ng sariling client ng Steam sa resolution na iyon.
Bakit may progress bar ang Steam download gayong wala ang sa Pinterest?
Dahil pinapayagan ng CDN ng Steam na basahin ng browser ang mga fragment, kaya talagang nagda-download ang page ng file at nakakapag-ulat ng progress. Hindi ito pinapayagan ng CDN ng Pinterest, kaya kailangang plain navigation ang download na iyon.
Walang video sa isang game page — bakit?
Walang nakakabit na trailer o gameplay clip sa page na iyon. Ang mga screenshot gallery ay hindi video, at ang mga hindi pa nailalabas na laro ay madalas wala ang alinman hanggang malapit na sa launch.