Chuyển đến nội dung

Trailer Steam là HLS: tệp MP4 được ghép trong trình duyệt của bạn

Một trailer Steam không phải tệp bạn có thể vớ lấy — nó là một danh sách phát gồm các phân đoạn. Trình tải đọc các chất lượng trong danh sách, và trình duyệt của bạn ghép chúng thành một tệp MP4.

Steam từng phát hành trailer dưới dạng tệp MP4 và WebM thông thường, và những trường đó vẫn còn trong API cửa hàng của nó. Giờ chúng luôn trống. Thứ Steam phát hành thay vào đó là một danh sách phát HLS gốc: một tệp văn bản nhỏ mô tả các bản dựng của trailer và trỏ tới những phân đoạn dài vài giây.

Danh sách phát trước, phân đoạn sau

Việc của bộ xử lý kết thúc sớm ở đây. Nó đọc siêu dữ liệu của trang cửa hàng, lấy URL danh sách phát gốc của trailer, đọc nó và trả về một dòng cho mỗi bản dựng kèm độ phân giải, tốc độ bit và tốc độ khung hình. Nó không bao giờ lấy phân đoạn video và không ghép gì — làm vậy sẽ là đưa cả video qua máy chủ mà chẳng vì lý do gì.

Bộ xử lý đọc gìTrình duyệt sau đó làm gì
Danh sách phát gốc: các bản dựng, độ phân giải, tốc độ bit, nhóm âm thanhChọn bản dựng bạn đã chọn
Mẫu phân đoạn bên trong danh sách phátLấy các phân đoạn của bản dựng đó từ CDN của Steam rồi nối lại
Nhóm âm thanh mà danh sách gốc nêu tênGhép luồng video và rãnh âm thanh AAC thành một tệp MP4

Việc ghép diễn ra ngay trong tab đang mở, từ CDN của chính Steam (video.akamai.steamstatic.com). Một trailer dài hai phút có khoảng chín mươi phân đoạn, nên thanh tiến trình đầy trong vài giây với kết nối bình thường.

Đọc danh sách chất lượng

Các phân đoạn được sao chép nguyên từng byte vào tệp MP4 hoàn chỉnh. Hình và tiếng đúng như ứng dụng của chính Steam phát ở độ phân giải đó — việc nối là một thay đổi vỏ chứa, không phải mã hóa lại, nên không có gì bị làm mềm trên đường đi.

Điều gì có thể trục trặc

Hai thứ, đều thuộc về mạng chứ không phải video. Nếu siêu dữ liệu cửa hàng của Steam không trả lời, bộ xử lý thử lại một lần trước khi báo lỗi. Nếu chính danh sách phát không đọc được, cũng thử lại như vậy — và nếu vẫn thất bại, trang nói rõ thay vì đưa ra một bản tải không thể hoàn tất.

Một trang game không có video trả về no_video. Điều này gồm cả những trang chỉ có thư viện ảnh chụp, thường gặp với tựa game chưa phát hành.

Bản tóm tắt ngắn

Câu hỏi

Trailer tải xuống có chất lượng thấp hơn bản Steam phát không?

Không. Các phân đoạn được sao chép nguyên từng byte vào tệp MP4, nên hình và tiếng khớp với bản dựng bạn đã chọn — đúng luồng mà ứng dụng của chính Steam phát ở độ phân giải đó.

Vì sao bản tải Steam có thanh tiến trình còn bản Pinterest thì không?

Vì CDN của Steam cho trình duyệt đọc các phân đoạn, nên trang thực sự đang tải tệp và báo được tiến trình. CDN của Pinterest thì không, nên bản tải đó phải là một lần chuyển hướng đơn thuần.

Một trang game không hiện video — vì sao?

Trang đó không có trailer hay clip gameplay nào. Thư viện ảnh chụp không phải video, và game chưa phát hành thường không có cả hai cho tới gần ngày ra mắt.

Công cụ trong bài viết này

Tất cả bài viết