Định dạng container phương tiện (kiểu tệp)
Media container là một định dạng tệp đóng gói một hoặc nhiều luồng phương tiện, chẳng hạn như âm thanh hoặc video, cùng với siêu dữ liệu, giúp chúng được lưu trữ và phát lại cùng nhau. Định dạng của các tệp âm thanh và video được xác định bởi nhiều thành phần, bao gồm codec âm thanh và/hoặc video được dùng, định dạng media container (hoặc kiểu tệp), và tùy chọn các phần tử khác như codec phụ đề hoặc siêu dữ liệu. Trong hướng dẫn này, chúng ta sẽ xem xét các định dạng container được dùng phổ biến nhất trên web, bao gồm các kiến thức cơ bản về đặc tả của chúng cũng như lợi ích, hạn chế và các trường hợp sử dụng lý tưởng.
WebRTC không dùng container.
Thay vào đó, nó truyền trực tiếp các track âm thanh và video đã mã hóa từ một peer sang peer khác bằng các đối tượng MediaStreamTrack để biểu diễn từng track.
Xem Codec được WebRTC sử dụng để biết thông tin về các codec thường dùng cho cuộc gọi WebRTC, cũng như thông tin tương thích trình duyệt liên quan đến hỗ trợ codec trong WebRTC.
Các định dạng container phổ biến
Mặc dù có rất nhiều định dạng media container, các định dạng được liệt kê bên dưới là những định dạng bạn có khả năng gặp nhất.
Một số chỉ hỗ trợ âm thanh trong khi số khác hỗ trợ cả âm thanh lẫn video.
MIME type và phần mở rộng của từng định dạng được liệt kê. Các container được dùng phổ biến nhất cho media trên web có lẽ là MPEG-4 Part-14 (MP4) và Web Media File (WEBM). Tuy nhiên, bạn cũng có thể gặp Ogg, WAV, AVI, MOV và các định dạng khác.
Không phải tất cả trong số này đều được trình duyệt hỗ trợ rộng rãi; một số kết hợp container và codec đôi khi có phần mở rộng tệp và MIME type riêng cho tiện lợi hoặc vì mức độ phổ biến của chúng.
Ví dụ, một tệp Ogg chỉ có một track âm thanh Opus đôi khi được gọi là tệp Opus, và thậm chí có thể có phần mở rộng .opus.
Nhưng thực ra nó vẫn chỉ là một tệp Ogg.
Trong một số trường hợp, một codec cụ thể trở nên phổ biến đến mức cách dùng của nó được xem như một định dạng riêng biệt. Một ví dụ điển hình là tệp âm thanh MP3, vốn không được lưu trong một container thông thường. Thay vào đó, tệp MP3 về cơ bản là một luồng các frame được mã hóa theo MPEG-1 Audio Layer III, thường đi kèm với siêu dữ liệu như thẻ ID3. Các tệp này dùng MIME type audio/mpeg và phần mở rộng .mp3.
Mục lục các định dạng container phương tiện (kiểu tệp)
Để tìm hiểu thêm về một định dạng container cụ thể, hãy tìm nó trong danh sách này và nhấp qua phần chi tiết, nơi có thông tin về mục đích sử dụng điển hình của container, các codec mà nó hỗ trợ, và trình duyệt nào hỗ trợ nó, cùng với các chi tiết khác.
| Tên codec (viết tắt) | Tên codec đầy đủ | Khả năng tương thích trình duyệt |
|---|---|---|
| 3GP | Third Generation Partnership | Firefox for Android |
| ADTS | Audio Data Transport Stream |
Firefox Chỉ khả dụng nếu framework media của hệ điều hành bên dưới hỗ trợ. |
| FLAC | Free Lossless Audio Codec | Tất cả trình duyệt. |
| MPEG / MPEG-2 | Moving Picture Experts Group (1 and 2) | — |
| MPEG-4 (MP4) | Moving Picture Experts Group 4 | Tất cả trình duyệt. |
| Ogg | Ogg | Tất cả trình duyệt. |
| QuickTime (MOV) | Apple QuickTime movie | Chỉ các phiên bản Safari cũ, cùng các trình duyệt khác từng hỗ trợ plugin QuickTime của Apple |
| WebM | Web Media | Tất cả trình duyệt. |
Trừ khi có ghi chú khác, nếu một trình duyệt được liệt kê ở đây thì mặc định là hỗ trợ cả trên thiết bị di động lẫn máy tính để bàn. Hỗ trợ cũng chỉ được hiểu là dành cho chính container, không phải cho bất kỳ codec cụ thể nào.
3GP
Media container 3GP hoặc 3GPP được dùng để đóng gói âm thanh và/hoặc video được thiết kế riêng cho việc truyền qua mạng di động để phát trên thiết bị di động. Định dạng này được thiết kế cho điện thoại di động 3G, nhưng vẫn có thể dùng trên các điện thoại và mạng hiện đại hơn. Tuy nhiên, băng thông tăng lên và hạn mức dữ liệu lớn hơn trên hầu hết các mạng đã làm giảm nhu cầu đối với 3GP. Dẫu vậy, định dạng này vẫn được dùng cho các mạng chậm hơn và các điện thoại có hiệu năng thấp hơn.
Định dạng media container này được dẫn xuất từ ISO Base Media File Format và MPEG-4, nhưng được tinh gọn đặc biệt cho các tình huống băng thông thấp.
| Âm thanh | Video |
|---|---|
audio/3gpp |
video/3gpp |
audio/3gpp2 |
video/3gpp2 |
audio/3gp2 |
video/3gp2 |
Các MIME type này là các kiểu cơ bản của media container 3GP; các kiểu khác có thể được dùng tùy theo codec cụ thể đang sử dụng.
Ngoài ra, bạn có thể thêm tham số codecs vào chuỗi MIME type để chỉ ra codec nào được dùng cho các track âm thanh và/hoặc video, đồng thời tùy chọn cung cấp chi tiết về profile, level và/hoặc các thông số cấu hình codec khác.
| Codec | Hỗ trợ trình duyệt | |||
|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | |
| AVC (H.264) | ||||
| H.263 | ||||
| MPEG-4 Part 2 (MP4v-es) | ||||
| VP8 | ||||
| Codec | Hỗ trợ trình duyệt | |||
|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | |
| AMR-NB | ||||
| AMR-WB | ||||
| AMR-WB+ | ||||
| AAC-LC | ||||
| HE-AAC v1 | ||||
| HE-AAC v2 | ||||
| MP3 | ||||
ADTS
Audio Data Transport Stream (ADTS) là một định dạng container được MPEG-4 Part 3 quy định cho dữ liệu âm thanh, dùng cho âm thanh phát trực tuyến như radio Internet. Về bản chất, nó gần như là một luồng AAC audio trần, gồm các ADTS frame với header tối giản.
| Âm thanh |
|---|
audio/aac |
audio/mpeg |
MIME type dùng cho ADTS phụ thuộc vào loại audio frame chứa bên trong.
Nếu dùng ADTS frame, nên dùng MIME type audio/aac.
Nếu các audio frame ở định dạng MPEG-1/MPEG-2 Audio Layer I, II, hoặc III, MIME type phải là audio/mpeg.
| Codec | Hỗ trợ trình duyệt | |||
|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | |
| AAC | Yes | |||
| MP3 | Yes | |||
Firefox hỗ trợ AAC dựa trên hạ tầng media của hệ điều hành, nên nó khả dụng miễn là hệ điều hành hỗ trợ.
FLAC
Free Lossless Audio Codec (FLAC) là một codec âm thanh không mất dữ liệu; cũng có một định dạng container đi kèm, cũng tên FLAC, có thể chứa âm thanh này. Định dạng này không bị ràng buộc bởi bất kỳ bằng sáng chế nào, nên việc sử dụng nó không lo vướng mắc bản quyền. Tệp FLAC chỉ có thể chứa dữ liệu âm thanh FLAC.
| Âm thanh |
|---|
audio/flac |
audio/x-flac (không chuẩn) |
| Codec | Hỗ trợ trình duyệt | |||
|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | |
| FLAC | Yes | |||
MPEG/MPEG-2
Định dạng tệp MPEG-1 và MPEG-2 về cơ bản là giống nhau. Được tạo bởi Moving Picture Experts Group (MPEG), các định dạng này được dùng rộng rãi trong phương tiện vật lý, bao gồm cả định dạng video trên đĩa DVD.
Trên Internet, ứng dụng phổ biến nhất của chuẩn MPEG có lẽ là dữ liệu âm thanh MPEG-1 Audio Layer III, thường gọi là MP3. Các tệp MP3 này rất phổ biến trên các thiết bị nghe nhạc số trên toàn thế giới, dù MPEG-1 và MPEG-2, xét toàn bộ, không được dùng rộng rãi trong nội dung web khác.
Khác biệt chính giữa MPEG-1 và MPEG-2 nằm ở các định dạng dữ liệu media chứ không phải ở định dạng container. MPEG-1 được giới thiệu năm 1992; MPEG-2 được giới thiệu năm 1996.
| Âm thanh | Video |
|---|---|
audio/mpeg |
video/mpeg |
| Codec | Hỗ trợ trình duyệt | |||
|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | |
| MPEG-1 Part 2 | No | |||
| MPEG-2 Part 2 | No | |||
| Codec | Hỗ trợ trình duyệt | |||
|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | |
| MPEG-1 Audio Layer I | No | |||
| MPEG-1 Audio Layer II | No | |||
| MPEG-1 Audio Layer III (MP3) | Yes | |||
MPEG-4 (MP4)
MPEG-4 (MP4) là phiên bản mới nhất của định dạng tệp MPEG. Có hai phiên bản của định dạng này, được định nghĩa trong các phần 1 và 14 của đặc tả. MP4 là một container phổ biến hiện nay vì nó hỗ trợ một số codec được dùng nhiều nhất và được hỗ trợ rộng rãi.
Định dạng tệp gốc MPEG-4 Part 1 được giới thiệu năm 1999; phiên bản 2, được định nghĩa trong Part 14, được bổ sung năm 2003. Định dạng tệp MP4 được dẫn xuất từ ISO base media file format, vốn lại được dẫn xuất trực tiếp từ QuickTime file format do Apple phát triển.
Khi chỉ định media type MPEG-4 (audio/mp4 hoặc video/mp4), bạn có thể thêm tham số codecs vào chuỗi MIME type để chỉ ra codec nào được dùng cho các track âm thanh và/hoặc video, đồng thời tùy chọn cung cấp chi tiết về profile, level và/hoặc các thông số cấu hình codec khác.
| Âm thanh | Video |
|---|---|
audio/mp4 |
video/mp4 |
Các MIME type này là các kiểu cơ bản của media container MPEG-4; các MIME type khác có thể được dùng tùy theo codec cụ thể đang nằm trong container.
Ngoài ra, bạn có thể thêm tham số codecs vào chuỗi MIME type để chỉ ra codec nào được dùng cho các track âm thanh và/hoặc video, đồng thời tùy chọn cung cấp chi tiết về profile, level và/hoặc các thông số cấu hình codec khác.
| Codec | Hỗ trợ trình duyệt | |||
|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | |
| AVC (H.264) | Yes Hỗ trợ H.264 của Firefox phụ thuộc vào hạ tầng media tích hợp sẵn của hệ điều hành, nên khả dụng miễn là hệ điều hành hỗ trợ. | |||
| AV1 | Yes Hỗ trợ AV1 của Firefox bị tắt trên Windows on ARM (bật bằng cách đặt tùy chọn | |||
| H.263 | No | |||
| MPEG-4 Part 2 Visual | No | |||
| VP9 | Yes | |||
| Codec | Hỗ trợ trình duyệt | |||
|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | |
| AAC | Yes Hỗ trợ H.264 của Firefox phụ thuộc vào hạ tầng media tích hợp sẵn của hệ điều hành, nên khả dụng miễn là hệ điều hành hỗ trợ. | |||
| FLAC | Yes | |||
| MPEG-1 Audio Layer III (MP3) | Yes | |||
| Opus | Yes | |||
Ogg
Định dạng container Ogg là một định dạng tự do và mở, được duy trì bởi Xiph.org Foundation. Khung Ogg cũng định nghĩa các định dạng dữ liệu media không bị ràng buộc bởi bằng sáng chế, chẳng hạn như codec video Theora và các codec âm thanh Vorbis và Opus. Tài liệu của Xiph.org về định dạng Ogg có sẵn trên trang web của họ.
Mặc dù Ogg đã tồn tại rất lâu, nó chưa bao giờ giành được mức hỗ trợ rộng đến mức trở thành lựa chọn đầu tiên tốt cho media container. Thông thường bạn sẽ tốt hơn nếu dùng WebM, mặc dù đôi khi Ogg vẫn hữu ích, chẳng hạn khi bạn muốn hỗ trợ các phiên bản Firefox và Chrome cũ chưa hỗ trợ WebM. Ví dụ, Firefox 3.5 và 3.6 hỗ trợ Ogg nhưng không hỗ trợ WebM.
Bạn có thể tìm thêm thông tin về Ogg và các codec của nó trong Theora Cookbook.
| Âm thanh | Video |
|---|---|
audio/ogg |
video/ogg |
MIME type application/ogg có thể được dùng khi bạn không nhất thiết biết media có chứa âm thanh hay video.
Nếu có thể, bạn nên dùng một trong các kiểu cụ thể, nhưng hãy rơi về application/ogg nếu bạn không biết định dạng nội dung là gì.
Bạn cũng có thể thêm tham số codecs vào chuỗi MIME type để chỉ ra codec nào được dùng cho các track âm thanh và/hoặc video, đồng thời mô tả thêm định dạng media của track.
| Codec | Hỗ trợ trình duyệt | |||
|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | |
| Theora | Yes | |||
| VP8 | Yes | |||
| VP9 | Yes | |||
| Codec | Hỗ trợ trình duyệt | |||
|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | |
| FLAC | Yes | |||
| Opus | Yes | Yes | Yes | Yes |
| Vorbis | Yes | Yes | ||
Warning: Tệp âm thanh Ogg Opus dài hơn 12h 35m 39s sẽ bị cắt ngắn và có lỗi khi tua trên Firefox Linux 64 bit (Firefox bug 1810378).
Note: Safari 18.4+ (trên macOS 15.4+, iOS 18.4+, iPadOS 18.4+, và visionOS 2.4+) đã bổ sung hỗ trợ codec Opus và Vorbis trong container Ogg.
QuickTime
Định dạng tệp QuickTime (QTFF, QT, hoặc MOV) được Apple tạo ra để dùng cho framework media cùng tên của hãng.
Phần mở rộng của các tệp này, .mov, xuất phát từ việc định dạng ban đầu được dùng cho phim và thường được gọi là định dạng "QuickTime movie".
Mặc dù QTFF là nền tảng cho định dạng tệp MPEG-4, vẫn có những khác biệt và hai định dạng này không hoàn toàn thay thế cho nhau.
Tệp QuickTime hỗ trợ mọi loại dữ liệu theo thời gian, bao gồm âm thanh, video, track văn bản, v.v. Tệp QuickTime chủ yếu được hỗ trợ bởi macOS, nhưng trong nhiều năm, QuickTime cho Windows vẫn có sẵn để truy cập chúng trên Windows. Tuy nhiên, QuickTime cho Windows không còn được Apple hỗ trợ từ đầu năm 2016 và không nên dùng, do đã biết có các lo ngại bảo mật. Tuy vậy, Windows Media Player hiện đã tích hợp hỗ trợ cho các tệp QuickTime phiên bản 2.0 trở về trước; hỗ trợ cho các phiên bản sau cần thêm phần bổ trợ của bên thứ ba.
Trên Mac OS, framework QuickTime không chỉ hỗ trợ các tệp movie và codec định dạng QuickTime, mà còn hỗ trợ một loạt codec âm thanh và video phổ biến cũng như chuyên dụng, cùng các định dạng ảnh tĩnh. Thông qua QuickTime, các ứng dụng Mac (bao gồm cả trình duyệt web, thông qua plugin QuickTime hoặc tích hợp trực tiếp) có thể đọc và ghi các định dạng âm thanh như AAC, AIFF, MP3, PCM và Qualcomm PureVoice; và các định dạng video như AVI, DV, Pixlet, ProRes, FLAC, Cinepak, 3GP, H.261 đến H.265, MJPEG, MPEG-1 và MPEG-4 Part 2, Sorenson, và nhiều định dạng khác.
Ngoài ra còn có một số thành phần bên thứ ba cho QuickTime, trong đó một số bổ sung hỗ trợ codec khác.
Vì hỗ trợ QuickTime, về thực tế, chủ yếu chỉ có trên thiết bị Apple, nên nó không còn được dùng rộng rãi trên Internet nữa. Apple hiện nói chung dùng MP4 cho video. Ngoài ra, framework QuickTime đã bị deprecate trên Mac từ lâu, và hoàn toàn không còn có sẵn начиная từ macOS 10.15 Catalina.
| Video |
|---|
video/quicktime |
MIME type video/quicktime là kiểu cơ bản cho media container QuickTime.
Lưu ý rằng QuickTime (framework media trên hệ điều hành Mac) hỗ trợ rất nhiều container và codec, nên thực tế nó còn hỗ trợ nhiều MIME type khác.
Bạn có thể thêm tham số codecs vào chuỗi MIME type để chỉ ra codec nào được dùng cho các track âm thanh và/hoặc video, đồng thời tùy chọn cung cấp chi tiết về profile, level và/hoặc các thông số cấu hình codec khác.
| Codec | Hỗ trợ trình duyệt | |||
|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | |
| AVC (H.264) | No | |||
| Cinepak | No | |||
| Component Video | No | |||
| DV | No | |||
| H.261 | No | |||
| H.263 | No | |||
| MPEG-2 | No | |||
| MPEG-4 Part 2 Visual | No | |||
| Motion JPEG | No | |||
| Sorenson Video 2 | No | |||
| Sorenson Video 3 | No | |||
| Codec | Hỗ trợ trình duyệt | |||
|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | |
| AAC | No | |||
| ALaw 2:1 | No | |||
| Apple Lossless (ALAC) | No | |||
| HE-AAC | No | |||
| MPEG-1 Audio Layer III (MP3) | No | |||
| Microsoft ADPCM | No | |||
| µ-Law 2:1 (u-Law) | No | |||
WAVE (WAV)
Waveform Audio File Format (WAVE), thường được gọi là WAV do phần mở rộng tệp của nó là .wav, là một định dạng do Microsoft và IBM phát triển để lưu trữ dữ liệu bitstream âm thanh.
Nó được dẫn xuất từ Resource Interchange File Format (RIFF), và vì thế tương tự các định dạng khác như AIFF của Apple. Sổ đăng ký codec WAV có thể tìm thấy tại RFC 2361; tuy nhiên, vì gần như tất cả tệp WAV đều dùng linear PCM, hỗ trợ cho các codec khác rất thưa thớt.
Định dạng WAVE được phát hành lần đầu năm 1991.
| Âm thanh |
|---|
audio/wave |
audio/wav |
audio/x-wav |
audio/x-pn-wav |
MIME type audio/wave là kiểu chuẩn và được ưu tiên; tuy nhiên, các kiểu khác đã được nhiều sản phẩm dùng trong nhiều năm và cũng có thể dùng trong một số môi trường.
| Codec | Hỗ trợ trình duyệt | |||
|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | |
| ADPCM (Adaptive Differential Pulse Code Modulation) | No | |||
| GSM 06.10 | No | |||
| LPCM (Linear Pulse Code Modulation) | Yes | |||
| MPEG-1 Audio Layer III (MP3) | No | |||
| µ-Law (u-Law) | No | |||
WebM
WebM (Web Media) là một định dạng dựa trên Matroska, được thiết kế riêng cho việc sử dụng trong các môi trường web hiện đại. Nó hoàn toàn dựa trên các công nghệ tự do và mở, và chủ yếu dùng các codec cũng tự do và mở, mặc dù một số sản phẩm cũng hỗ trợ codec khác trong container WebM.
WebM lần đầu được giới thiệu năm 2010 và hiện được hỗ trợ rộng rãi. Các triển khai WebM tuân chuẩn phải hỗ trợ video codec VP8 và VP9 cùng audio codec Vorbis và Opus. Định dạng container WebM và các codec bắt buộc của nó đều có sẵn dưới giấy phép mở. Bất kỳ codec nào khác có thể yêu cầu giấy phép để dùng.
| Âm thanh | Video |
|---|---|
audio/webm |
video/webm |
| Codec | Hỗ trợ trình duyệt | |||
|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | |
| AV1 | Yes | Yes |
Yes Hỗ trợ AV1 của Firefox được bổ sung trên macOS trong Firefox 66; trên Windows trong Firefox 67; và trên Linux trong Firefox 68. Firefox for Android hiện chưa hỗ trợ AV1; cách triển khai của Firefox được thiết kế để dùng một tiến trình an toàn, nhưng trên Android hiện chưa được hỗ trợ. | |
| VP8 | Yes | Yes | Yes | Yes |
| VP9 | Yes | Yes | Yes | Yes |
| Codec | Hỗ trợ trình duyệt | |||
|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | |
| Opus | Yes | Yes | Yes | Yes |
| Vorbis | Yes | Yes | Yes | Yes |
Chọn container phù hợp
Có một vài yếu tố cần cân nhắc khi chọn container tốt nhất để dùng cho media của bạn. Tầm quan trọng tương đối của từng yếu tố sẽ phụ thuộc vào nhu cầu của bạn, yêu cầu về giấy phép, và yêu cầu tương thích của đối tượng người dùng mục tiêu.
Nguyên tắc chung
Khi chọn định dạng media phù hợp, quyết định của bạn nên dựa trên cách sử dụng dự định. Phát media khác với ghi hoặc chỉnh sửa media. Với thao tác xử lý, các định dạng chưa nén có thể cải thiện hiệu năng, trong khi nén không mất dữ liệu ngăn việc tích tụ nhiễu do nén lặp lại.
- Nếu đối tượng của bạn có khả năng bao gồm người dùng di động, đặc biệt là trên thiết bị cấu hình thấp hoặc mạng chậm, hãy cân nhắc cung cấp một phiên bản media trong container 3GP với mức nén phù hợp.
- Nếu bạn có yêu cầu mã hóa cụ thể, hãy chắc chắn container bạn chọn hỗ trợ các codec phù hợp.
- Nếu bạn muốn media của mình ở định dạng mở, không độc quyền, hãy cân nhắc dùng một trong các định dạng container mở như FLAC (cho âm thanh) hoặc WebM (cho video).
- Nếu vì lý do nào đó bạn chỉ có thể cung cấp media trong một định dạng duy nhất, hãy chọn định dạng có phạm vi hỗ trợ rộng nhất trên thiết bị và trình duyệt, chẳng hạn MP3 (cho âm thanh) hoặc MP4 (cho video và/hoặc âm thanh).
- Nếu media của bạn chỉ là âm thanh, việc chọn định dạng chỉ dành cho âm thanh thường là hợp lý. Xem bên dưới để so sánh các định dạng chỉ-âm thanh khác nhau.
Lời khuyên khi chọn container
Các bảng dưới đây đưa ra gợi ý container nên dùng trong nhiều tình huống. Đây chỉ là các đề xuất. Hãy cân nhắc nhu cầu của ứng dụng và tổ chức của bạn trước khi chọn một định dạng container.
Tệp chỉ âm thanh
| Nhu cầu | Định dạng | Mô tả |
|---|---|---|
| Tệp nén cho phát lại đa dụng | MP3 (MPEG-1 Audio Layer III) | Tương thích rộng rãi và dễ nhận diện; dùng nén mất dữ liệu để đạt sự cân bằng tốt giữa kích thước tệp và chất lượng âm thanh. |
| Nén không mất dữ liệu | FLAC (Free Lossless Audio Codec) | Cung cấp nén không mất dữ liệu, đảm bảo âm thanh gốc được giữ nguyên trong khi vẫn giảm kích thước tệp. |
| ALAC (Apple Lossless Audio Codec) | Tương tự FLAC nhưng được thiết kế cho thiết bị Apple; đây là lựa chọn dự phòng tốt khi làm việc trong hệ sinh thái Apple. | |
| Tệp không nén | WAV (Waveform Audio File Format) | Chứa âm thanh PCM không nén, cho độ trung thực cao nhất nhưng đổi lại là kích thước tệp lớn hơn. |
| AIFF (Audio Interchange File Format) | Tương đương WAV về chất lượng và kích thước tệp, dù thường được ưa chuộng hơn trên nền tảng Apple. |
Hiện nay khi các bằng sáng chế của MP3 đã hết hiệu lực, việc chọn định dạng âm thanh đã trở nên dễ hơn nhiều. Bạn không còn phải lựa chọn giữa khả năng tương thích rộng của MP3 và việc phải trả tiền bản quyền khi dùng nó.
Đáng tiếc là không có định dạng nén không mất dữ liệu nào trong hai định dạng lớn là FLAC và ALAC được hỗ trợ hoàn toàn ở mọi nơi. FLAC được hỗ trợ rộng hơn trong hai định dạng này, nhưng không được macOS hỗ trợ nếu không cài thêm phần mềm, và không được hỗ trợ trên iOS. Nếu bạn cần cung cấp âm thanh không mất dữ liệu, có thể bạn sẽ phải cung cấp cả FLAC lẫn ALAC để tiến gần hơn đến khả năng tương thích toàn diện.
Tệp video
| Nhu cầu | Định dạng | Mô tả |
|---|---|---|
| Video mục đích chung (ưu tiên định dạng mở) | WebM | Được thiết kế cho việc sử dụng web hiện đại, WebM là một container mở, không thu phí bản quyền, cung cấp khả năng nén hiệu quả và hỗ trợ gốc trong hầu hết trình duyệt. |
| Video mục đích chung | MP4 | MP4 là tiêu chuẩn công nghiệp cho nội dung video, được hỗ trợ rộng rãi trên thiết bị và trình duyệt. |
| Nén cao cho kết nối chậm | 3GP | Được tối ưu cho thiết bị di động và môi trường băng thông thấp, 3GP cho chất lượng video chấp nhận được trong điều kiện hạn chế. |
| Tương thích với thiết bị/trình duyệt cũ | QuickTime | QuickTime là một container cũ vốn phổ biến trên nền tảng Apple. Nó vẫn thường được phần mềm ghi hình video trên macOS tạo ra. |
Những gợi ý này dựa trên một số giả định. Bạn nên cân nhắc kỹ các lựa chọn trước khi đưa ra quyết định cuối cùng, đặc biệt nếu bạn có nhiều media cần mã hóa. Rất thường xuyên, bạn sẽ muốn cung cấp nhiều tùy chọn dự phòng cho các định dạng này, ví dụ MP4 làm dự phòng cho WebM hoặc 3GP, hoặc AVI làm dự phòng cho QuickTime.
Tối đa hóa khả năng tương thích với nhiều container
Để tối ưu khả năng tương thích, bạn nên cân nhắc cung cấp nhiều hơn một phiên bản của tệp media, dùng phần tử <source> để chỉ định từng nguồn trong phần tử <audio> hoặc <video>.
Ví dụ, bạn có thể cung cấp video Ogg hoặc WebM làm lựa chọn đầu tiên, với bản dự phòng ở định dạng MP4.
Bạn thậm chí có thể cung cấp thêm một bản dự phòng kiểu retro như QuickTime hoặc AVI để tăng độ an toàn.
Để làm điều này, bạn tạo một phần tử <video> (hoặc <audio>) không có thuộc tính src.
Sau đó thêm các phần tử con <source> vào bên trong phần tử <video>, mỗi phần tử cho một phiên bản video bạn cung cấp.
Bạn có thể dùng cách này để cung cấp nhiều phiên bản video khác nhau, được chọn tùy theo băng thông sẵn có, nhưng trong trường hợp này chúng ta dùng nó để cung cấp các tùy chọn định dạng.
Trong ví dụ dưới đây, video được cung cấp cho trình duyệt ở hai định dạng: WebM và MP4.
Try it
<video controls width="250" height="200" muted>
<source src="/shared-assets/videos/flower.webm" type="video/webm" />
<source src="/shared-assets/videos/flower.mp4" type="video/mp4" />
Tải xuống video
<a href="/shared-assets/videos/flower.webm">WEBM</a>
hoặc
<a href="/shared-assets/videos/flower.mp4">MP4</a>.
</video>
Video được cung cấp trước ở định dạng WebM (với thuộc tính type đặt là video/webm).
Nếu user agent không phát được định dạng đó, nó sẽ chuyển sang lựa chọn tiếp theo, với type là video/mp4.
Nếu không phát được cả hai, dòng chữ "This browser does not support the HTML video element." sẽ được hiển thị.
Đặc tả
| Đặc tả | Ghi chú |
|---|---|
| ETSI 3GPP | Định nghĩa định dạng container 3GP |
| ISO/IEC 14496-3 (MPEG-4 Part 3 Audio) | Định nghĩa âm thanh MP4 bao gồm ADTS |
| FLAC Format | Đặc tả định dạng FLAC |
| ISO/IEC 11172-1 (MPEG-1 Part 1 Systems) | Định nghĩa định dạng container MPEG-1 |
| ISO/IEC 13818-1 (MPEG-2 Part 1 Systems) | Định nghĩa định dạng container MPEG-2 |
| ISO/IEC 14496-14 (MPEG-4 Part 14: MP4 file format) | Định nghĩa định dạng container MPEG-4 (MP4) phiên bản 2 |
| ISO/IEC 14496-1 (MPEG-4 Part 1 Systems) | Định nghĩa định dạng container MPEG-4 (MP4) gốc |
| RFC 3533 | Định nghĩa định dạng container Ogg |
| RFC 5334 | Định nghĩa media type và phần mở rộng tệp của Ogg |
| QuickTime File Format Specification | Định nghĩa định dạng movie QuickTime (MOV) |
| Multimedia Programming Interface and Data Specifications 1.0 | Thứ gần nhất với một đặc tả WAV chính thức |
| Resource Interchange File Format (used by WAV) | Định nghĩa định dạng RIFF; tệp WAVE là một dạng RIFF |
| WebM Container Guidelines | Hướng dẫn thích nghi Matroska cho WebM |
| Matroska Specifications | Đặc tả của định dạng container Matroska mà WebM dựa trên |
| WebM Byte Stream Format | Định dạng byte stream WebM để dùng với Media Source Extensions |
Khả năng tương thích trình duyệt
| Tên định dạng container | Âm thanh | Video | ||||
|---|---|---|---|---|---|---|
| MIME type | Phần mở rộng | Hỗ trợ trình duyệt | MIME type | Phần mở rộng | Hỗ trợ trình duyệt | |
| 3GP | audio/3gpp | .3gp | Firefox | video/3gpp | .3gp | Firefox |
| ADTS (Audio Data Transport Stream) | audio/aac | .aac | Firefox | — | — | — |
| FLAC | audio/flac | .flac | Firefox | — | — | — |
| MPEG-1 / MPEG-2 (MPG or MPEG) | audio/mpeg | .mpg.mpeg | Firefox | video/mpeg | .mpg.mpeg | Firefox |
audio/mp3 | .mp3 | Firefox | ||||
| MPEG-4 (MP4) | audio/mp4 | .mp4.m4a | Firefox | video/mp4 | .mp4.m4v.m4p | Firefox |
| Ogg | audio/ogg | .oga.ogg | Firefox, Safari | video/ogg | .ogv.ogg | Firefox |
| QuickTime Movie (MOV) | — | — | — | video/quicktime | .mov | Safari |
| WAV (Waveform Audio File) | audio/wav | .wav | Firefox | — | — | — |
| WebM | audio/webm | .webm | Firefox | video/webm | .webm | Firefox |
Xem thêm
- WebRTC API
- MediaStream Recording API
- Các phần tử
<audio>và<video>*** End Patch