Lumaktaw sa nilalaman

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 resolverAno ang ginagawa ng browser pagkatapos
Master playlist: rendition, resolution, bitrate, audio groupPinipili ang rendition na iyong pinili
Ang segment template sa loob ng playlistKinukuha ang mga fragment ng rendition na iyon mula sa CDN ng Steam at pinagsasama ang mga ito
Ang audio group na pinapangalanan ng masterPinagsasama 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 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

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.

Mga tool sa artikulong ito

Lahat ng artikulo