Trong bài viết này, bạn sẽ tìm hiểu các khái niệm cơ bản về tệp nội dung nghe nhìn, chẳng hạn như khái niệm về vùng chứa và một số định dạng codec có sẵn mà bạn có thể sử dụng trong luồng. Ngoài ra, chúng ta có thể tìm hiểu sơ qua về các chủ đề như phát trực tuyến thích ứng, tốc độ bit và độ phân giải, nhưng chúng ta sẽ tìm hiểu kỹ hơn về tất cả các chủ đề này trong các phần sau.
Phân phát tệp video
Bạn có thể cho rằng mình có thể lấy tệp thô từ máy quay video rồi chỉ cần tải tệp đó lên web. Thật vậy, các trang web phát trực tuyến video như YouTube hoặc Vimeo cho phép bạn làm việc đó và thậm chí cung cấp tính năng phát trực tiếp – thường bằng cách kết nối với cổng HDMI của máy ảnh rồi xử lý tệp đó thông qua thẻ ghi. Các dịch vụ này đơn giản hoá đáng kể quá trình xử lý và tải video lên, trong đó có việc tạo nhiều tệp và tệp kê khai cần thiết để phát trực tuyến thích ứng cũng như nhiều độ phân giải. Cùng với nhiều yêu cầu phức tạp và tinh vi khác khiến việc tự tổ chức trở nên khó khăn. Việc chuẩn bị và phân phát video từ trang web của riêng bạn và có thể là một máy chủ phương tiện riêng biệt sẽ phức tạp hơn một chút so với việc tải tệp máy ảnh thô lên nếu bạn quan tâm đến cách người dùng trải nghiệm trang web của mình.
Các tệp video có nhiều định dạng. Định dạng xuất hiện trên máy ảnh của bạn thường là tệp .mov
hoặc .mp4
nếu bạn có một chiếc máy ảnh không gương lật hiện đại tốt.
Tuy nhiên, mặc dù .mov
phù hợp để ghi lại, chỉnh sửa cũng như các quy trình hậu sản xuất sớm khác, nhưng kích thước tệp không phù hợp để phát trực tuyến qua web. Ngoài ra, kích thước tệp của .mp4
thô ở độ phân giải 4K sẽ khiến việc phát tệp đó trên thiết bị di động trở nên rất nghiêm ngặt. Vì các trình duyệt hỗ trợ nhiều định dạng tệp, nên bạn cần tạo nhiều tệp được tối ưu hoá và có thể là một tệp kê khai nếu bạn định hỗ trợ tính năng truyền trực tuyến thích ứng. Trước khi chuyển đổi tệp, bạn cần tìm hiểu một số thông tin cơ bản về tệp và đặc điểm của tệp.
Vùng chứa, bộ mã hoá và giải mã (codec) và luồng (stream) là gì?
Tệp mà bạn thấy trong giao diện hệ điều hành là một vùng chứa, được xác định bằng đuôi tệp (.mp4
, .webm
, .ogg
, v.v.). Vùng chứa chứa một hoặc nhiều luồng. Một tệp nội dung nghe nhìn có thể có số lượng luồng bất kỳ, với nhiều định dạng hơn so với những định dạng chúng tôi sẽ trình bày ở đây.
Các tệp mẫu dùng sau này trong phần này chứa tối đa 2 luồng: một luồng âm thanh và một luồng video. Trong số các loại khác, bạn có thể gặp là phụ đề và dữ liệu, cả hai đều nằm ngoài phạm vi của bài viết này. Có những trường hợp luồng âm thanh và video được xử lý riêng biệt. Hầu hết tệp bạn sẽ gặp sẽ chỉ chứa một luồng âm thanh và một luồng video duy nhất.
Trong luồng âm thanh và video, dữ liệu thực tế sẽ được nén bằng một bộ mã hoá và giải mã. Bộ mã hoá và giải mã (codec) là một định dạng nén dành cho dữ liệu video hoặc âm thanh. Sự khác biệt giữa vùng chứa và bộ mã hoá và giải mã rất quan trọng vì các tệp trong cùng một vùng chứa có thể có nội dung được mã hoá bằng các bộ mã hoá và giải mã khác nhau.
Hình ảnh dưới đây minh hoạ cấu trúc này. Bên trái là cấu trúc vùng chứa cơ bản với hai luồng. Ở bên phải là thông tin cụ thể của cấu trúc đó dành cho một tệp WebM duy nhất.
![So sánh cấu trúc tệp nội dung nghe nhìn với tệp nội dung đa phương tiện giả định.](https://web.dev/static/articles/media-file-basics/image/comparing-media-file-stru-58d7e1713333f.png?authuser=5&hl=vi)
Các tệp trong vùng chứa WebM có thể có đơn đặt hàng nhỏ hơn các định dạng khác, nên đây là lựa chọn hay để phát trực tuyến trên trang web dành cho thiết bị di động. Rất tiếc, không phải trình duyệt nào cũng hỗ trợ vùng chứa và codec đã cập nhật. Ví dụ: WebM được tạo riêng cho web dưới dạng tùy chọn nguồn mở và chất lượng cao, nhưng khả năng hỗ trợ này chưa phổ biến. Cụ thể, Safari, theo phần Tôi có thể sử dụng tại thời điểm viết bài này, không hỗ trợ WebM cho video được nhúng. Tuy nhiên, WebM hỗ trợ một phần với bộ mã hoá và giải mã VP8 và VP9 được dùng trong WebRTC. Vì vậy, lựa chọn tốt nhất của bạn là cung cấp video dự phòng.
Định dạng codec
Nhiều loại tệp hỗ trợ nhiều codec trong cùng một vùng chứa. Một danh sách đầy đủ các bộ mã hoá và giải mã video và bộ mã hoá và giải mã âm thanh có sẵn sẽ là một trang web hoàn chỉnh. Những đường liên kết vừa cung cấp là dành cho danh sách thực tế của MDN về những nội dung có thể sử dụng được trên web. Dưới đây là các loại tệp được ưu tiên và những bộ mã hoá và giải mã có thể sử dụng. Theo các liên kết loại tệp để xem các trình duyệt hỗ trợ tệp.
Loại tệp | Bộ mã hoá và giải mã video | Bộ mã hoá và giải mã âm thanh |
---|---|---|
MP4 | AV1, AVC (H.264)*, VP9 | AAC |
WebM | AV1, VP9* | Vorbis, Opus |
* Cho biết bộ mã hoá và giải mã video ưu tiên.
Tốc độ bit và độ phân giải
Tốc độ bit là số bit tối đa dùng để mã hóa một giây của luồng. Càng nhiều bit được dùng để mã hoá một giây của chương trình phát trực tiếp, thì độ chi tiết và độ chân thực tiềm năng càng cao. Chúng tôi cung cấp thêm thông tin về khái niệm này trong Bitrate.
Độ phân giải là lượng thông tin trong một khung hình video, được tính dưới dạng số pixel logic trong mỗi chiều. Chúng tôi cung cấp thêm thông tin về khái niệm này trong mục Độ phân giải.
Tiếp theo, trong phần Kiến thức cơ bản về ứng dụng nội dung đa phương tiện, chúng tôi sẽ hướng dẫn bạn cách kiểm tra các đặc điểm này bằng hai công cụ dòng lệnh: Shaka Packager và FFmpeg.