Education·7 min

Bởi Shamir

Tệp .TS là gì và tại sao luồng phát của bạn được tạo từ chúng

Nếu từng xem bên trong tệp kê khai của một luồng phát, bạn hẳn đã thấy danh sách các tệp có đuôi .ts. Nếu từng lấy video từ một thiết bị ghi hoặc card capture, có thể bạn cũng đã nhận được một tệp như vậy. Và nếu từng thử mở nó bằng cách nhấp đúp, rất có thể chẳng có gì xảy ra.

.ts là viết tắt của MPEG Transport Stream, một trong những định dạng quan trọng nhưng ít được nhắc đến nhất trong lĩnh vực video. Định dạng này được thiết kế cho truyền hình vệ tinh và truyền hình mặt đất vào những năm 1990, rồi ba thập kỷ sau trở thành phương tiện truyền tải phần lớn nội dung phát trực tuyến trên internet — vì một lý do thực sự tinh tế mà bạn sẽ thấy rõ ngay sau đây.

Transport Stream thực chất là gì

Hầu hết các định dạng video bạn biết đều là tệp: một vùng chứa có phần tiêu đề ở đầu, chỉ mục cho biết vị trí của mọi thành phần và điểm kết thúc rõ ràng. MP4 hoạt động theo cách này. Nó được thiết kế để lưu trên ổ đĩa và cho phép tua đến các vị trí khác nhau.

Transport stream không có cấu trúc như vậy. Đây là luồng liên tục gồm các gói tin nhỏ, có kích thước cố định — mỗi gói 188 byte — có thể được tiếp nhận tại bất kỳ thời điểm nào.

Thiết kế đó bắt nguồn từ truyền hình phát sóng. Khi chuyển TV sang một kênh, bạn không bắt đầu từ đầu của bất kỳ nội dung nào. Bạn tham gia vào một tín hiệu đang phát, và hình ảnh phải xuất hiện trong vòng một hoặc hai giây. Một định dạng có phần tiêu đề ở đầu và chỉ mục sẽ vô dụng: bởi không có phần đầu.

Vì vậy, transport stream liên tục lặp lại mọi thông tin cần thiết. Cứ sau một khoảng thời gian, nó lại gửi các bảng mô tả những luồng đang có bên trong, đồng thời thường xuyên đưa vào một keyframe hoàn chỉnh để bắt đầu giải mã. Tham gia ở bất kỳ thời điểm nào, bạn cũng có thể bắt đầu phát trong vòng một giây.

Đó là toàn bộ ý tưởng, và nó giải thích cho mọi đặc điểm còn lại.

Tại sao phát trực tuyến trên internet lại sử dụng định dạng này

HLS — phương thức phát trực tuyến đứng sau phần lớn video trực tiếp bạn xem — hoạt động bằng cách chia nội dung thành các phân đoạn ngắn, thường dài từ hai đến mười giây, rồi liệt kê chúng trong tệp kê khai. Trình phát của bạn lần lượt tải từng phân đoạn; nếu kết nối yếu đi, nó sẽ âm thầm yêu cầu phiên bản chất lượng thấp hơn thay vì bị đứng hình.

Để hoạt động như vậy, mỗi phân đoạn phải có thể tự giải mã độc lập. Không thể để phân đoạn 47 phụ thuộc vào phần tiêu đề chỉ tồn tại trong phân đoạn 1, vì trình phát có thể tham gia từ phân đoạn 47 hoặc chuyển chất lượng giữa phân đoạn 46 và 47.

Transport stream vốn đã chính xác là định dạng đó: tự mô tả, có thể bắt đầu ở bất kỳ đâu và chịu được mất dữ liệu. HLS không cần phát minh ra định dạng phân đoạn; nó kế thừa một định dạng phát sóng đã giải quyết cùng vấn đề từ trước khi web có video.

Vì vậy, khi xem bên trong tệp kê khai .m3u8 và thấy:

#EXTINF:6.000,
segment000.ts
#EXTINF:6.000,
segment001.ts

đó là các phần transport stream dài sáu giây. Luồng phát của bạn không phải một video duy nhất. Đó là hàng nghìn video nhỏ được yêu cầu lần lượt. (Vì sao bạn không thể đơn giản "chuyển đổi" một luồng phát sang MP4.)

.TS và .MP4

.ts (MPEG-TS).mp4
Cấu trúcLuồng gói tin liên tụcTệp có chỉ mục và phần tiêu đề
Có thể bắt đầu ở bất kỳ đâu?Không — cần phần tiêu đề
Có chịu được mất dữ liệu không?, đồng bộ lại từ gói tin tiếp theoHư hỏng có thể khiến toàn bộ tệp không dùng được
Tua đến vị trí khácChậm, không có chỉ mụcNhanh, có chỉ mục
Dữ liệu phụ trợCao hơn (phần tiêu đề liên tục được lặp lại)Thấp hơn
Được thiết kế choTruyền hình phát sóng và phát trực tiếpLưu trữ và phát các tệp hoàn chỉnh

Không định dạng nào tốt hơn. Chúng giải quyết hai vấn đề trái ngược nhau. .ts được tối ưu cho việc đến nơi; .mp4 được tối ưu cho việc nằm yên.

Đây cũng là lý do việc chuyển đổi giữa hai định dạng về nguyên tắc là thao tác thông thường và không làm giảm chất lượng — phần video và âm thanh bên trong có thể giống hệt nhau, chỉ có lớp vỏ chứa là thay đổi.

Bạn thường gặp tệp .TS ở đâu

  • Bên trong các luồng phát HLS. Như đã nói ở trên, đó là các phân đoạn. Bạn không bao giờ nhìn thấy chúng riêng lẻ; trình phát sẽ tải rồi loại bỏ chúng.
  • Từ nguồn kiểu Xtream có output=ts. Tham số đó yêu cầu máy chủ gửi transport stream thô thay vì HLS được chia thành các phân đoạn. (Cách tạo các URL đó.)
  • Từ phần cứng thu tín hiệu phát sóng. Bộ dò kênh, card capture và thiết bị ghi thường ghi trực tiếp thành .ts vì đó là dữ liệu nhận được qua sóng.
  • Trên đĩa Blu-ray, dưới dạng .m2ts — một định dạng họ hàng gần.
  • Từ máy quay, đặc biệt là các mẫu AVCHD, vốn cũng sử dụng .m2ts.

Khi tệp .TS không phát được

Trường hợp này khá phổ biến và thường do một trong năm nguyên nhân.

1. Chưa liên kết định dạng tệp. Windows và macOS không tích hợp trình xử lý cho .ts. Nhấp đúp sẽ không có tác dụng hoặc mở một ứng dụng không phù hợp. Đây không phải lỗi hỏng tệp; tệp hoàn toàn không có vấn đề gì. Hãy mở tệp từ bên trong một trình phát.

Tệ hơn nữa: trên một số hệ thống, .ts được liên kết với trình soạn thảo mã vì đây cũng là phần mở rộng của các tệp mã nguồn TypeScript. Video mở trong trình soạn thảo văn bản trông khó hiểu nhưng không gây hại.

2. Vấn đề nằm ở codec bên trong, không phải vùng chứa. .ts chỉ là lớp vỏ chứa. Nội dung bên trong có thể là MPEG-2 (truyền hình phát sóng đời cũ), H.264 hoặc HEVC. Nếu thiết bị không giải mã được codec, vùng chứa không còn quan trọng. Dấu hiệu điển hình là âm thanh phát được nhưng hình ảnh bị đen. (Màn hình đen nhưng vẫn có tiếng.)

MPEG-2 thường là thủ phạm trong trường hợp này: đây là codec rất cũ, và một số thiết bị hiện đại không còn tích hợp bộ giải mã vì không ai nghĩ rằng mình vẫn cần đến nó.

3. Âm thanh không phổ biến. Transport stream phát sóng thường chứa âm thanh AC-3, E-AC-3 hoặc DTS. Video phát được nhưng không có tiếng. Đây là vấn đề về codec âm thanh hoặc chế độ passthrough, không phải vấn đề của vùng chứa. (Cách khắc phục lỗi không có tiếng.)

4. Dữ liệu thu bị cắt cụt. Việc ghi bị gián đoạn giữa chừng sẽ tạo ra một tệp không hoàn chỉnh. Transport stream có khả năng xuống cấp khá uyển chuyển — thường vẫn phát được đến vị trí bị gián đoạn — và đây là một ưu điểm thực sự so với MP4, vì tệp bị cắt cụt có thể hoàn toàn không mở được.

5. Tua đến vị trí khác chậm, khiến bạn tưởng tệp bị lỗi. Vì không có chỉ mục, trình phát phải quét khi bạn tua trong một tệp .ts lớn. Tua chậm trên một tệp transport stream dung lượng lớn là hành vi bình thường, không phải lỗi.

Phần mềm nào có thể mở tệp này

Đối với tệp .ts trên máy tính, các trình phát đa năng xử lý rất tốt. VLCmpv là những lựa chọn tiêu chuẩn, cả hai đều có thể mở trực tiếp transport stream, kể cả các tệp khó xử lý. Đó thực sự là điểm mạnh của chúng.

Đối với các luồng phát được truyền qua mạng dưới dạng transport stream — nguồn Xtream có output=ts, danh sách phát HLS gồm các phân đoạn .ts, hoặc một thiết bị trong mạng LAN — đó chính là nhiệm vụ cốt lõi của trình phát, và Tuneline có thể xử lý trên macOS, Windows, Linux, iPhone, iPad, Android, Android TV, Google TV và Apple TV.

Để nói chính xác về ranh giới này, vì nó rất quan trọng: Tuneline mở danh sách phát và luồng phát, không mở các tệp video cục bộ. Nếu có một tệp .ts nằm trên ổ cứng, hãy dùng VLC hoặc mpv. Nếu transport stream đang được truyền đến qua mạng, đó mới là trường hợp Tuneline được thiết kế để xử lý.

Câu hỏi về output=tsoutput=m3u8

Nếu nguồn của bạn cho phép lựa chọn — và các nguồn kiểu Xtream có — bạn nên hiểu rõ điều này, vì chuyển đổi có thể khắc phục nhiều vấn đề phát.

output=ts cung cấp luồng liên tục thô. Khả năng tương thích rộng nhất, hầu như hoạt động ở mọi nơi, nhưng không có bitrate thích ứng. Khi kết nối yếu, luồng sẽ bị đứng thay vì tự giảm chất lượng.

output=m3u8 cung cấp HLS được chia thành các phân đoạn. Hoạt động ổn định hơn trên các kết nối không đáng tin cậy vì trình phát có thể chuyển xuống chất lượng thấp hơn giữa chừng, đồng thời nhìn chung phù hợp hơn với mạng di động.

Lời khuyên thực tế: hãy thử m3u8 trước trên điện thoại và mạng Wi-Fi chập chờn; thử ts khi một nội dung hoàn toàn không chịu phát. Đổi tham số chỉ cần sửa một ký tự và có thể giải quyết đáng kể các báo cáo kiểu "không phát được". (Vì sao luồng phát bị giật và cách khắc phục hiệu quả.)

Tóm lại

  • .tsMPEG Transport Stream, được xây dựng cho truyền hình phát sóng: một luồng gói tin liên tục mà bạn có thể tham gia ở bất kỳ thời điểm nào.
  • HLS sử dụng định dạng này vì phát trực tuyến cần các phân đoạn có thể giải mã độc lập, và đó chính xác là đặc tính vốn có của nó.
  • Luồng phát trực tiếp của bạn là hàng nghìn phân đoạn .ts ngắn, không phải một tệp duy nhất.
  • .ts có thể bắt đầu ở bất kỳ đâu và chịu được hư hỏng; .mp4 tua nhanh và lưu trữ hiệu quả. Mỗi định dạng phục vụ một mục đích khác nhau.
  • Lỗi phát thường nằm ở codec bên trong (MPEG-2, HEVC, AC-3), chứ không phải container.
  • Tua đến vị trí mong muốn chậm trên .ts có dung lượng lớn là điều bình thường — vì tệp không có chỉ mục.

Bạn có luồng truyền tải đang được truyền qua mạng? Tải xuống Tuneline — miễn phí, không kèm nội dung, trên mọi nền tảng bạn sở hữu.

Chia sẻ bài viết

The fast fix

Get Tuneline free

A clean, no-account media player for macOS, Windows, Linux, Android, TV, and iOS. Bring your own playlist.

Download free

The cross-platform media player behind these answers — new platforms, sync updates, the honest build story. No spam, unsubscribe anytime.

Đọc bài viết này bằng ngôn ngữ khác

Tuneline là một ứng dụng trình phát đa phương tiện. Ứng dụng không cung cấp, không lưu trữ và không phân phối bất kỳ nội dung nào. Bạn tự mang danh sách phát của mình, giống hệt như với VLC.