Skip to content

SegmentTimeline trong DASH hỗ trợ biểu diễn thời gian ra sao?

admin
Tóm tắt

Trong DASH, SegmentTimeline giúp mô tả ranh giới thời gian của từng segment thay vì giả định mọi đoạn đều có cùng độ dài. Đọc đúng timeline giúp hiểu cách MPD tham chiếu các đoạn; nhưng bản thân một dòng timeline không xác nhận nội dung đang phát trực tiếp hay tình trạng hiện tại của máy chủ.

Điểm chính

  1. MPD là manifest mô tả cách tìm các thành phần của nội dung DASH; SegmentTimeline đặt các mốc thời gian cho segment trong một biểu diễn cụ thể. [1]
  2. Các giá trị thời gian phải được đọc cùng timescale và ngữ cảnh của phần tử chứa chúng, không nên coi con số thô là giây.
  3. Timeline có thể dùng thời điểm bắt đầu và thời lượng, đồng thời có thể mô tả các đoạn lặp theo quy tắc; mẫu không đều không đồng nghĩa với lỗi.
  4. Đường dẫn segment, cấu hình adaptation set và cách trình phát diễn giải MPD đều quan trọng khi kiểm tra một phiên phát.

Timeline giải quyết vấn đề gì?

DASH chia nội dung media thành nhiều segment có thể được yêu cầu riêng. Manifest MPD cung cấp thông tin để trình phát xác định những biểu diễn có sẵn và cách truy cập các đoạn đó. Nếu chỉ dựa vào một thời lượng mặc định, người đọc có thể hiểu sai khi một đoạn dài hơn, ngắn hơn hoặc khi ranh giới không đều. SegmentTimeline cho phép mô tả các điểm thời gian cụ thể thay vì ép toàn bộ nội dung vào một khuôn độ dài duy nhất. MDN trình bày manifest và cấu trúc adaptive streaming trong hướng dẫn về cách thiết lập nguồn phát DASH/HLS. [1]

Illustration: Timeline giải quyết vấn đề Decorative illustration for the section "Timeline giải quyết vấn đề"; visual only, carries no data.

Điều này đặc biệt hữu ích khi phân tích MPD chứ không phải để đoán nội dung từ tên tệp. Một bản ghi timeline cho biết cách manifest biểu diễn một phần thời gian media; nó không tự chứng minh đoạn đã được tải thành công, đã được giải mã hay đang hiển thị trên màn hình. Cần tách dữ liệu mô tả khỏi quan sát thực tế của trình phát.

Đọc mốc thời gian cùng ngữ cảnh

Khi mở MPD, trước hết hãy xác định vị trí SegmentTimeline nằm trong cấu trúc biểu diễn nào và phần tử SegmentTemplate hoặc cấu trúc liên quan đang dùng. Sau đó mới xem các trường chỉ thời điểm và thời lượng. Giá trị thời gian thường cần được diễn giải theo timescale được khai báo ở cấp tương ứng; nếu bỏ qua tỷ lệ này, một con số như 90000 rất dễ bị nhầm là số giây thay vì đơn vị của đồng hồ media. Vì vậy, không nên chép một giá trị riêng lẻ rồi kết luận về thời điểm phát.

Số thứ tự segment và thời điểm media cũng là hai ý khác nhau. Một mẫu URL có thể chứa biến số thứ tự, trong khi timeline mô tả vị trí theo trục media. Nếu đoạn đầu bắt đầu ở mốc khác không hoặc có khoảng nối, số thứ tự tăng đều không nhất thiết có nghĩa mọi khoảng thời gian đều giống nhau. Khi đối chiếu, ghi rõ giá trị gốc, timescale, mẫu URL và phần tử cha để người khác có thể tái kiểm tra.

Độ dài không đều và quy tắc lặp

Có những nội dung được chia thành đoạn tương đối đồng nhất; cũng có trường hợp ranh giới đoạn thay đổi theo cấu trúc nội dung hoặc quy trình đóng gói. SegmentTimeline có thể biểu đạt các khoảng thời gian bằng các mục riêng, hoặc dùng quy tắc lặp khi nhiều đoạn liên tiếp theo cùng một mẫu. Khi nhìn thấy quy tắc lặp, hãy đọc nó trong phạm vi phần tử và ngữ cảnh của MPD, không tự kéo dài quy tắc ra ngoài phần được mô tả.

Illustration: Độ dài không đều và quy tắc Decorative illustration for the section "Độ dài không đều và quy tắc"; visual only, carries no data.

Mẫu độ dài không đều tự nó không phải bằng chứng cho lỗi phát. Nó có thể là cách manifest mô tả một cấu trúc cụ thể. Ngược lại, một timeline trông đều cũng không đảm bảo mọi yêu cầu mạng thành công. Nếu cần chẩn đoán, so sánh các mốc, thời lượng và URL segment với thông tin tải thực tế; kiểm tra xem điểm bắt đầu có liên tục hay có khoảng trống được mô tả. Tránh suy diễn nguyên nhân từ một khác biệt đơn lẻ.

Quy trình kiểm tra có thể tái lập

Bắt đầu bằng cách lưu bản MPD quan sát được và ghi thời điểm lấy mẫu, vì manifest động có thể thay đổi giữa các lần truy cập. Xác định adaptation set và representation đang xem, tìm timescale cùng timeline liên quan, rồi chuyển đổi đơn vị một cách tường minh. Nếu URL dùng mẫu có biến, ghi lại cách biến đó tương ứng với từng segment thay vì chỉ dựa vào tên tệp. Đây là quy trình đọc cấu trúc, không phải kiểm thử trực tiếp dịch vụ.

Tiếp theo, kiểm tra một vài mục liền kề: mốc bắt đầu, thời lượng, quan hệ với mục kế tiếp và đường dẫn được tạo ra. Nếu có hiện tượng giật hoặc thiếu đoạn, đối chiếu thêm nhật ký yêu cầu, phản hồi máy chủ và trạng thái buffer của trình phát. Không dùng riêng SegmentTimeline để kết luận nguyên nhân mạng, codec hay trạng thái trực tiếp. Khi giới thiệu dịch vụ thể thao, bạn có thể Theo dõi thêm trận đấu nổi bật trong ngày cùng KLIVE; thông tin hiển thị cần được hiểu theo nội dung thực tế tại thời điểm truy cập.

Nguồn tham khảo

  1. MDN — Setting up adaptive streaming media sources

Câu hỏi thường gặp

SegmentTimeline có nghĩa mọi segment dài bằng nhau không?

Không. Timeline có thể mô tả các khoảng thời gian khác nhau hoặc quy tắc lặp. Cần đọc các mốc và thời lượng trong đúng ngữ cảnh của MPD.

Có thể đọc giá trị thời gian trực tiếp như giây không?

Không nên. Hãy kiểm tra timescale được khai báo và chuyển đổi đơn vị trước khi diễn giải con số.

Timeline có xác nhận video đang phát trực tiếp không?

Không. Nó mô tả cấu trúc thời gian của manifest được quan sát; muốn xác định trạng thái phát cần kiểm tra thêm yêu cầu, phản hồi và trình phát.

Continue the conversation

A matter of this consequence deserves a partner, not a process.

Thirty minutes with a senior partner is enough to test fit. Discreet, no obligation, no follow-up mailing list.

Request a partner consultation →