Container và codec, và vì sao tốc độ chuyển đổi chênh lệch đến vậy
Cùng một thao tác “chuyển sang MP4” có thể mất ba giây hoặc bốn mươi phút, và có thể không mất gì hoặc mất một thế hệ chất lượng thấy rõ. Một khác biệt duy nhất giải thích cả hai, và giúp bạn đoán trước mình sắp nhận được kết quả nào.
Xem xét lần cuối
Sự khác biệt
Container là chiếc hộp. MP4, MKV, MOV, WebM và AVI là các container: chúng quy định cách sắp xếp các thành phần trong file, cách trình phát tìm điểm bắt đầu của từng thành phần, cách ghi mốc thời gian, và những phần bổ sung nào được phép — track phụ đề, chương, nhiều ngôn ngữ, ảnh bìa.
Codec là cách hình ảnh và âm thanh bên trong được nén. H.264, H.265, VP9, AV1 cho video; AAC, MP3, Opus, Vorbis, AC-3 cho âm thanh.
Phần mở rộng của file chỉ cho biết container, và đây là nguồn gốc của gần như mọi sự nhầm lẫn. Hai file .mkv có thể chẳng có gì chung bên trong, còn một file .mp4 và một file .mkv chứa cùng một video H.264 thì, ở cấp độ quan trọng, là cùng một video trong hai chiếc hộp khác nhau. Phần mở rộng gần như không cho bạn biết gì về độ khó của một lần chuyển đổi.
Remux hay chuyển mã: toàn bộ vấn đề nằm ở đây
Khi bạn chuyển đổi một video, một trong hai việc rất khác nhau sẽ xảy ra.
Remux chuyển các luồng đã nén sẵn sang một container mới mà không giải mã chúng. Không có gì bị nén lại, nên hình ảnh giống hệt từng bit như trước, dung lượng file gần như không đổi, và một bộ phim dài hai tiếng xong trong vài giây. Cách này làm được bất cứ khi nào các codec bên trong là loại mà container đích chấp nhận.
Chuyển mã giải mã từng khung hình rồi mã hóa lại. Thời gian tỷ lệ với độ dài video, và nó tốn một thế hệ chất lượng — bộ mã hóa mới không phân biệt được lỗi nén của bộ cũ với chi tiết thật, nên nó tốn bit để giữ lại chúng. Việc này là không thể tránh khi các codec không tương thích với định dạng đích.
Nếu một lần chuyển đổi xong gần như ngay lập tức, đó là kết quả tốt. Đôi khi mọi người tưởng có gì trục trặc vì nó quá nhanh. Sự thật thì ngược lại.
Chuyển đổi nào thuộc loại nào
**Chuyển MKV sang MP4: thường là remux.** Hầu hết file MKV chứa H.264 với AAC, đúng thứ mà MP4 cần. Vài giây, không mất gì.
**Chuyển MOV sang MP4: thường là remux, và gần như chẳng phải là chuyển đổi.** Đặc tả MP4 được xây dựng từ định dạng file của QuickTime, nên chúng có chung cấu trúc bên trong. File .mov của iPhone chứa H.264 hoặc H.265 và được chuyển thẳng sang. Ngoại lệ là video chuyên nghiệp — ProRes hoặc DNxHD — phải chuyển mã và sẽ nhỏ đi rất nhiều.
**Chuyển WEBM sang MP4: luôn là chuyển mã. WebM chứa VP8, VP9 hoặc AV1 với Vorbis hoặc Opus, và không codec nào trong số đó nằm trong MP4 theo cách mà các thiết bị phát được ổn định. Hãy chuẩn bị mất thời gian thực, và file sẽ nặng hơn**, vì các codec mới hiệu quả hơn H.264.
**Chuyển AVI sang MP4: luôn là chuyển mã. AVI ra đời từ năm 1992 và chứa DivX, Xvid hoặc motion JPEG. Ở đây file thường nhẹ đi**, vì H.264 hiệu quả gấp khoảng hai lần so với codec bên trong — một lợi ích thực sự đổi lấy một thế hệ mất mát.
Những gì container này chứa được mà container kia không
Đây là nửa còn lại của những gì bị mất khi chuyển đổi, và nó chẳng liên quan gì đến chất lượng. MKV là container rộng rãi nhất trong số những loại thông dụng: nhiều track âm thanh cho các ngôn ngữ khác nhau, hàng loạt track phụ đề, dấu chương, ảnh bìa, thậm chí cả file phông chữ cần để hiển thị phụ đề có định dạng. MP4 trên thực tế chứa thoải mái một track video và một track âm thanh, còn với những thứ khác thì khá lúng túng.
Vì vậy chuyển MKV sang MP4 thường giữ lại track đầu tiên của mỗi loại và bỏ lại phần còn lại — đó là cách mọi người nhận về một bộ phim sai ngôn ngữ, hoặc thiếu đúng phần phụ đề mà họ chuyển đổi để có. Phụ đề đặc biệt không giữ lại được: SRT và định dạng ASS có kiểu dáng mà các nhóm fansub hay dùng đều không có chỗ đúng nghĩa trong MP4. Hãy tách chúng ra trước và giữ thành một file .srt riêng bên cạnh video, loại file mà mọi trình phát và TV đều tải được.
MOV chứa timecode và metadata máy quay mà người dựng phim dùng để đồng bộ các cảnh quay; những thứ đó cũng không được chuyển sang. Và ProRes có thể mang kênh alpha cho nền trong suốt, điều mà H.264 trong MP4 không làm được — nên một clip tiêu đề hay logo sẽ được chuyển thành một video hoàn toàn hợp lệ với nền đen ở chỗ từng là nền trong suốt, và chẳng có gì cảnh báo bạn ngoài chính đôi mắt của bạn.
Hệ quả thực tế
Kiểm tra xem bạn có thực sự cần chuyển đổi không. VLC, MPV và hầu hết TV thông minh hiện nay phát trực tiếp được MKV và WebM. Chuyển đổi một file mà trình phát của bạn đã xử lý được chỉ tốn thời gian, dung lượng và chất lượng mà chẳng được gì. Những lý do chính đáng là thiết bị Apple, máy chơi game đời cũ, phần mềm dựng video không nhận định dạng đó, hoặc ứng dụng nhắn tin.
Cắt video cũng tận dụng cùng ý tưởng này. Cắt một clip có thể sao chép phần video đã mã hóa thay vì mã hóa lại, nhanh tức thì và không mất chất lượng — nhưng điểm cắt phải rơi vào một khung hình chính (keyframe), và các khung hình này cách nhau từ một đến mười giây. Đó là lý do một đoạn cắt kiểu sao chép bắt đầu sớm hơn một chút, còn một đoạn cắt chính xác thì lâu hơn và tốn chất lượng: nó mã hóa lại phần mở đầu để bắt đầu đúng khung hình bạn chọn.
Khi buộc phải chuyển mã, hãy làm một lần và làm cho tốt. Mỗi lần mã hóa lại là vĩnh viễn, nên hãy chuyển từ nguồn tốt nhất bạn có, ở mức chất lượng khiến thế hệ thứ hai không thể nhận ra, và giữ bản gốc cho đến khi đã kiểm tra kết quả.
Công cụ cho việc này
Câu hỏi thường gặp
Làm sao biết codec nào nằm trong file của tôi?
VLC hiển thị thông tin này ở mục Tools rồi Codec Information (Công cụ > Thông tin codec), còn MediaInfo là một công cụ miễn phí chỉ chuyên làm việc đó. Nên kiểm tra trước một lần chuyển đổi dài — nếu codec đã tương thích với MP4, bạn sắp mất cả tiếng cho một việc lẽ ra chỉ cần vài giây.
MKV có tốt hơn MP4 không?
Xét về container thì có — nó chứa được nhiều hơn và ít hạn chế hơn. MP4 thắng về khả năng tương thích, và đó thường là lý do mọi người chuyển đổi. Cả hai đều hoàn toàn không ảnh hưởng đến chất lượng hình ảnh; điều đó hoàn toàn phụ thuộc vào codec và các cài đặt của nó.
Vì sao file WebM của tôi lại nặng hơn khi chuyển sang MP4?
Vì VP9 và AV1 hiệu quả hơn H.264, và từ bỏ chúng thì mất đi phần dung lượng chúng từng tiết kiệm được. Bạn đang đổi lấy khả năng tương thích, không phải dung lượng — MP4 phát được trên gần như mọi thứ, còn WebM thì không.
Tôi có thể chuyển đổi mà không mất chất lượng không?
Có, bất cứ khi nào codec cho phép remux — MKV sang MP4 và MOV sang MP4 thường là như vậy. Khi không tránh được chuyển mã, mức chất lượng cao sẽ khiến phần mất mát gần như không thể nhận ra, nhưng không bao giờ thực sự bằng không.
Vì sao đổi phần mở rộng file đôi khi lại có tác dụng?
Vì thỉnh thoảng container bên dưới thực sự là một — ví dụ, file .f4v chính là MP4 với tên khác. Với mọi trường hợp khác thì không được, và một file bị đổi tên mà không mở được còn gây rối hơn một file bị từ chối thẳng thắn. Cứ thử, nhưng đừng trông cậy vào nó.
Bài viết đáng đọc khác
File PDF quá nặng để gửi email
Ba nguyên nhân khiến file PDF nặng, và cách xử lý hợp với file của bạn.
Nên dùng định dạng ảnh nào?
Một câu hỏi quyết định tất cả. So sánh thẳng thắn JPG, PNG, WebP và AVIF.
PDF scan và OCR
Vì sao bản scan không chứa chữ, OCR bổ sung những gì, và cài đặt quyết định độ chính xác.