[REVIEW] Sự khác nhau giữa Codec, định dạng Container và chuyển mã

Nếu tiêu đề của bài viết này không làm cho bạn đau đầu, thì phần còn lại của nó chắc chắn sẽ làm bạn đau đầu đấy. Hy vọng tôi có thể giải thích nó theo cách dễ hiểu nhất cho người không sành về kỹ thuật. Tôi đang viết bài viết này về codec video/âm thanh bởi vì sẽ có một ngày nào đó tôi thấy mình bối rối khi giải thích nó với một người bạn.

Chính xác thì codec là gì? Tôi cần để phát một bộ phim ở đây và đó, nhưng đây thực sự cái quái gì vậy? Điều làm tôi bối rối là tất cả các thuật ngữ mà tôi đã nghe qua, nhưng chưa bao giờ thực sự hiểu được: H.264, DivX, MP4, AVI, MPEG-2, AVCHD, AAC, OGG, MKV, v.v.

Sau khi đọc và tìm hiểu nhiều, tôi nhận ra rằng thế giới của codec âm thanh và video và các định dạng rất khó hiểu. Trên thực tế, tôi không biết sự khác biệt giữa codec và định dạng container cho đến khi tôi bắt đầu thực hiện nghiên cứu.

Tôi sẽ không giải thích quá nhiều vào chi tiết, chỉ vì chủ đề bắt đầu trở nên rất nhanh. Bạn có thực sự quan tâm nếu 1 giờ RAW không nén 1080p 60 khung hình mỗi giây chiếm hết gần 500 GB dung lượng lưu trữ không? Chắc là không.

Codec là gì?

Vậy Codec là gì và có chức năng gì? Trong các thuật ngữ đơn giản nhất có thể, codec là một bộ mã hóa/giải mã hoặc ở dạng ban đầu của nó là một bộ nén (co) – bộ giải nén (dec).

Vì vậy, đó chính xác là những gì một codec làm: nó lấy một tệp kỹ thuật số và nén nó (hoặc mã hóa nó) để lưu trữ và giải nén nó (hoặc giải mã nó) để xem hoặc chuyển mã. Tôi sẽ giải thích cho bạn sau về chuyển mã là gì, đừng quá bối rối.

Điều quan trọng cần hiểu là codec giống như một đặc điểm kỹ thuật về cách dòng bit. Một dòng bit là gì? Để không quá đi sâu vào chi tiết kĩ thuật, nó sẽ sắp xếp thứ tự các byte cho codec cụ thể đó.

Mỗi codec có một bộ hướng dẫn cụ thể. Ví dụ: nó có thể chỉ định chiều rộng, chiều cao, tỷ lệ khung hình, v.v. Hãy xem trang này, nhưng đừng đọc quá nhiều nếu không đầu của bạn sẽ bị tổn thương:

http://www.cs.cf.ac.uk/Dave/Multimedia/node262.html

Bởi vì nó là một đặc điểm kỹ thuật, giúp tôi có nhiều cách để chuyển đổi dữ liệu sang định dạng đó. Do đó, có thể có nhiều bộ mã hóa cho một codec. Tôi sẽ giải thích thêm về các bộ mã hóa trong phần Codecs phổ biến bên dưới.

Vậy tại sao chúng ta lại cần tất cả sự nén và giải nén này? Cũng giống như tôi đã đề cập ở trên, một tệp 1080p không nén RAW gần như là một con số khổng lồ 500GB chỉ trong một giờ.

Bạn sẽ cần trung tâm dữ liệu của riêng mình để lưu trữ tất cả các video gia đình nếu mọi thứ được ghi ở định dạng đó. Đó là nơi mà quá trình nén tham gia vào. Có nhiều kiểu nén khác nhau, chuyển thành các loại codec khác nhau. Vì vậy, một số codec phổ biến là những cái nào?

Các Codec phổ biến

H.264 (MPEG-4 Phần 10 AVC) – Đây còn được gọi chính thức là MPEG-4 Phần 10, nhưng H.264 là những gì bạn thường nghe. Vâng, cũng có nhiều tên cho cùng một loại. H.264 là định dạng phổ biến nhất để mã hóa video. H.264 cung cấp chất lượng tốt nhất thế giới: kích thước tệp nhỏ hơn với chất lượng cao hơn.

Một lần nữa, H.264 chỉ là codec, bạn sẽ không tìm bất kỳ tập tin nào có phần mở rộng .h264. Đó là những định dạng container nào dành cho, mà tôi sẽ giải thích trong phần bên dưới. Bộ giải mã này được sử dụng ở mọi nơi từ điện thoại thông minh đến máy quay kỹ thuật số đến đĩa Blu-ray.

Hôm nay, nó cũng được sử dụng để cung cấp rất nhiều video trên web vì nó có khả năng cung cấp cho bạn chất lượng hình ảnh tuyệt vời với tỷ lệ nén cao và tốc độ bit thấp lại ít gây căng thẳng hơn cho các máy chủ phát trực tuyến.

Nó cũng được hỗ trợ rất cao và là codec phổ biến nhất trong một thời gian dài sắp tới. Nó hỗ trợ bởi Apple, YouTube, HTML 5 và thậm chí trong Adobe Flash.

Nhược điểm duy nhất của H.264 là thuật toán nén của nó rất tốt, nó chậm hơn rất nhiều để mã hóa video thành định dạng này. Bạn sẽ tìm hiểu thêm về điều đó khi chúng tôi nói về việc chuyển mã bên dưới.

Như tôi đã đề cập ở trên, có nhiều bộ mã hóa cho một codec. Đối với codec H.264, một trong những bộ mã hóa phổ biến nhất là x264 từ Videolan, cùng những người tạo VLC Media Player. x264 là mã nguồn mở miễn phí, nhưng cũng có nhiều bộ mã hóa H.264 mang tính thương mại.

Không quan trọng bằng cách nào luồng video được chuyển đổi sang định dạng này, mọi bộ giải mã H.264 (như VLC) có thể xem tệp.

MPEG-2 – Vẫn có bộ sưu tập DVD lớn? Đó là tất cả được thực hiện bằng cách sử dụng codec MPEG-2. Nó khá cũ, nhưng rất phổ biến. Một nơi khác mà bạn tìm thấy nén MPEG-2 là khi bạn xem các kênh HD đó phát sóng không dây. Đó là tất cả các nén MPEG-2. Đây là những điều thú vị nên biết, đúng không?

Do thuật toán nén bằng MPEG-2 kém hơn so với H.264, nên nó có ưu điểm là mã hóa nhanh hơn rất nhiều. Tuy nhiên, nó chưa hoạt động cho phát trực tuyến web vì ở tốc độ bit thấp hơn, chất lượng sẽ nhanh chóng được ghi nhận và bạn phải kết thúc với video pixel. Đó là lý do tại sao họ đưa ra MPEG-4 Phần 2.

MPEG-4 Phần 2 – Bạn có thể nhớ những ngày mà mọi thứ nói về DivX và Xvid phải không? Đó là những bộ mã hóa cho định dạng MPEG-4 Phần 2, hay còn gọi là H.263. Rất nhiều bộ phim mà bạn đã tải xuống trong ngày đã được nén bằng cách sử dụng codec này vì nó cho bạn kích thước tệp tốt và duy trì chất lượng hợp lý.

Tuy nhiên, vấn đề lớn là nội dung độ phân giải cao vẫn bị ảnh hưởng về chất lượng hình ảnh và đó là thứ về H.264 mà tôi đã đề cập ở trên.

Windows Media Video – Về cơ bản, đây là phiên bản Microsoft của bộ giải mã MPEG-4. WMV 7 được giới thiệu vào năm 1999 và là bản sao của MPEG-4 Phần 2. Sau đó, WMV 8 và 9 xuất hiện, tiếp theo là VC-1, một codec chủ yếu sao chép MPEG-4 Phần 10 và hiện đang được sử dụng trong đĩa Blu-ray cũng vậy.

Những nơi khác mà bạn thấy WMV và VC-1 chủ yếu trong các sản phẩm liên quan đến Microsoft như Windows Movie Maker, Silverlight, HD DVD và Microsoft Expression Encoder, v.v.

Đây là các codec video phổ biến, bạn cũng có codec âm thanh của mình, chúng sẽ phát huy tác dụng khi chúng ta nói về các container bên dưới. Các codec âm thanh phổ biến bao gồm FLAC, AC3, Dolby Digital Plus, DTS-HD, ALAC, v.v … Cũng như video, codec âm thanh có các định dạng chứa riêng như AIFF, WAV, v.v.

Đây không phải là tất cả các codec ngoài kia, nó chỉ là một danh sách của một số những cái phổ biến nhất. Bây giờ hãy để nói chuyện về các định dạng container.

Định dạng container

File formats

Khi bạn phát một tệp trong Windows Media Player hoặc VLC hoặc Quicktime hoặc bất cứ thứ gì bạn chọn trong media player, bạn sẽ thường mở một định dạng chứa. Về cơ bản, một định dạng chứa hoặc trình bao bọc là gói của một hoặc nhiều codec, video hoặc âm thanh hoặc cả hai.

Một thùng chứa được sử dụng để thêm âm thanh cùng với video để đảm bảo âm thanh và video được đồng bộ hóa hoàn hảo. Container cũng sẽ chứa thông tin khác cần thiết bởi một máy chủ phát trực tuyến hoặc bởi trình phát phương tiện. Các luồng bit video và âm thanh chỉ được bọc trong một luồng bit khác.

Các định dạng vùng chứa là nơi bạn thấy các phần mở rộng tệp phổ biến mà tất cả chúng ta đều sử dụng như MP4, MOV, WMV, AVI, v.v. Hãy để Lướt qua một số các thùng chứa phổ biến nhất:

MP4 – Bạn có thể đã tải một bài hát có phần mở rộng .MP4, đây là một trình bao bọc cho nhiều codec video và âm thanh. Thông thường, nó được sử dụng để bọc video H.264 và âm thanh được mã hóa AAC. Nó cũng hỗ trợ codec video MPEG-4 Phần 2 và MPEG-2. Ngoài ra, âm thanh có thể được mã hóa bằng các codec khác ngoài AAC.

AVI – Đây là định dạng chứa của Microsoft từ năm 1992. Nó đã trở nên rất phổ biến vào thời của tôi và nó vẫn còn đến bây giơg. Nếu bạn thực hiện bất kỳ mã hóa nào, bạn không nên sử dụng định dạng bộ chứa AVI nữa. Đầu tiên, nó không hỗ trợ các codec mới hơn như H.264. Nó cũng có một vài vấn đề lớn khác, đó là lý do nó không được sử dụng nữa.

ASF – Định dạng hệ thống nâng cao của Microsoft thường không sử dụng phần mở rộng tệp .ASF. Thay vào đó, bạn sẽ thấy hầu hết các container ASF được sử dụng .WMA hoặc .WMV. Bạn sẽ thấy các tệp này nếu bạn sử dụng tất cả các sản phẩm của Microsoft. Khi bạn rời khỏi thế giới Microsoft, bạn sẽ gặp phải các sự cố khi phát lại các tệp, đặc biệt nếu bạn sử dụng codec H.264.

AVCHD – AVCHD là định dạng chứa phổ biến nhất cho máy quay HD. Video thường là H.264 với âm thanh AC3 (Dolby Digital) hoặc PCM tuyến tính.

MKV – Tải phim gần đây? Nó có thể ở định dạng container MKV, chứa các tệp video H.264. Khá nhiều công cụ hỗ trợ MKV như Boxee, PS3 Media Server, XMBC, VLC, v.v., nhưng nó không được hỗ trợ rộng rãi như các định dạng chứa khác.

FLV – Đây là Adobe Flash, hỗ trợ nhiều codec khác nhau, phổ biến nhất là H.264 và AAC. Flash video là một trong những cách phổ biến nhất mà video được truyền phát qua Internet. Nó bị mất điểm vì HTML 5 và thực tế là Apple sẽ không để flash chạy trên bất kỳ thứ gì trong iDevice, nhưng nó vẫn rất phổ biến.

Có các định dạng chứa khác như Định dạng tệp QuickTime, OGG, WebM, v.v.,

Chuyển mã

Điều cuối cùng cần hiểu về tất cả những điều này là bạn có thể sẽ phải chuyển đổi video AVCHD mà bạn đã tải xuống từ máy quay sang định dạng khác mà sau đó bạn có thể nhập vào iTunes và phát trên iPhone.

Vì có rất nhiều codec và định dạng chứa, mỗi định dạng chứa có thể có các kết hợp codec video và âm thanh khác nhau, bạn cần một bộ chuyển mã để có được loại tệp bạn muốn cho thiết bị cụ thể của mình.

Handbrake

Có rất nhiều bộ chuyển mã hay còn gọi là bộ chuyển đổi video khác: HandBrake, FFmpeg, SUPER, VirtualDub, v.v. Một số được trả tiền và một số là các công cụ nguồn mở miễn phí.

Một số công cụ, như HandBrake, cung cấp cho bạn các cài đặt trước để bạn có thể chỉ cần chọn tệp nguồn của mình và chọn định dạng đầu ra như iPod hoặc iPhone và nhấp vào Start.

Nó sẽ chọn tất cả các cài đặt, thùng chứa, codec, vv cho bạn. Tuy nhiên, hy vọng sau khi đọc bài đăng này bán hiểu thêm một chút và có thể chuyển đổi video giữa các định dạng và hiểu quy trình cơ bản tốt hơn một chút. Trải nghiệm nhé!

Viết một bình luận