Chuyển đến nội dung
Convertube

Tệp MP4: bên trong có gì, và nên chuyển sang định dạng nào

MP4 chứa gì, vì sao cùng đuôi tệp lại chứa các codec khác hẳn nhau, chuyển đổi nào không mất dữ liệu. Chuyển đổi MP4 ngay trên trình duyệt, không tải lên.

Tóm tắt nhanh

Loại
Video
Định dạng chứa (container)
Có
Đuôi tệp
.mp4
Kiểu MIME
video/mp4
Codec phổ biến
h264, h265, av1, aac
Tên gọi khác
MPEG-4 Part 14

MP4 là định dạng chứa (container), không phải codec — và gần như mọi điều gây khó hiểu về định dạng này đều bắt nguồn từ đúng một sự thật đó. Tệp là một cây gồm các hộp lồng nhau (đặc tả gọi là box, công cụ đời cũ gọi là atom) được định nghĩa bởi ISO/IEC 14496-14, bản thân nó là một cấu hình của ISO Base Media File Format mà Apple đóng góp từ QuickTime. Trên thực tế có hai hộp quan trọng: moov, mục lục mô tả mọi rãnh, và mdat, khối dữ liệu chứa các khung hình đã nén thực sự.

Đọc thêm

Vì định dạng chứa chỉ mô tả các rãnh, hai tệp có thể đều là MP4 hợp lệ mà không có điểm chung nào khác. Một tệp có thể mang video H.264 với âm thanh AAC, tệp kế tiếp là H.265, tệp sau nữa là AV1, và một trình phát xử lý được tệp đầu có thể thất bại với tệp thứ ba dù cùng phần mở rộng .mp4 và cùng kiểu MIME video/mp4. Đó là lý do câu hỏi “MP4 có chạy được ở đây chứ?” chẳng có câu trả lời chung, và vì sao chuyển giữa MP4 với MOV hay MKV thường xong tức thì còn chuyển sang WebM thì không: cặp đầu chỉ là đóng gói lại, cặp sau phải mã hoá lại từng khung hình.

Mục lục moov cũng giải thích -movflags +faststart, thứ mà trang này áp dụng cho mọi tệp MP4 nó tạo ra. Bộ mã hoá thường đặt moov ở cuối tệp, vì thời lượng các rãnh chỉ biết được khi mã hoá xong. Khi đó trình phát truyền qua HTTP không thể bắt đầu cho đến khi byte cuối cùng tới nơi. Faststart ghi lại tệp với mục lục ở đầu, tốn thêm một lượt khi xuất nhưng đổi lại việc phát bắt đầu ngay lập tức.

Cách đặt tên chỉ là quy ước chứ không phải quy tắc. .m4a là tệp MP4 chỉ chứa âm thanh, .m4v là biến thể video của Apple, còn .mp4 là trường hợp chung — cả ba là cùng một định dạng chứa, và đổi tên không phải là chuyển đổi. Việc đổi tên cũng không phải lối tắt: tách âm thanh sang M4A ở đây là mã hoá lại chứ không lấy nguyên rãnh AAC sẵn có, nên đó là một thế hệ nén có mất dữ liệu thứ hai y như MP3, chỉ là trong cùng họ codec.

Chuyển MP4 sang định dạng khác

Chuyển định dạng khác sang MP4

Câu hỏi thường gặp về MP4

MP4 nén có mất dữ liệu hay không mất dữ liệu?

Không phải cả hai — định dạng chứa không quyết định điều đó. Các rãnh bên trong mới quyết định. Thực tế MP4 gần như luôn chứa video H.264 hoặc H.265 và âm thanh AAC, đều nén có mất dữ liệu, nên tệp bạn có gần như chắc chắn là nén có mất dữ liệu, nhưng đó là đặc tính của codec chứ không phải của bản thân MP4.

Vì sao tệp MP4 của tôi không phát được trên một số thiết bị?

Phần mở rộng không cho trình phát biết gì về codec. Tệp dùng video H.265 hoặc AV1 sẽ không mở được trên phần cứng chỉ giải mã H.264, dù cả hai đều là MP4 hợp lệ. Chuyển sang MP4 với video H.264 và âm thanh AAC là lựa chọn tương thích rộng nhất, và là thứ trang này tạo ra.

Chuyển đổi MP4 nào không mất dữ liệu?

MP4 sang MOV, MKV và M4V, khi codec bên trong đã hợp lệ với định dạng chứa đích. Những chuyển đổi đó chạy bằng cách sao chép luồng: các khung hình đã nén được chuyển sang nguyên vẹn và video kết quả giống hệt đến từng bit. Bạn sẽ thấy dòng “Sao chép không cần mã hoá lại” khi điều đó xảy ra. Mọi thứ làm thay đổi codec — MP4 sang WebM, MP4 sang MP3 — đều buộc phải mã hoá lại.

MP4, M4A và M4V khác nhau thế nào?

Cùng một định dạng chứa với nội dung theo quy ước khác nhau: M4A chỉ chứa âm thanh, M4V là biến thể video của Apple, MP4 là trường hợp chung. Đổi phần mở rộng không làm thay đổi dữ liệu, nên không chuyển đổi được gì — dù nó có thể khiến trình phát đoán sai.

Trang này xử lý được tệp MP4 lớn đến mức nào?

Tuỳ vào việc bạn chuyển sang gì, vì giới hạn liên quan đến lượng dữ liệu phải giữ trong lúc làm việc chứ không phải đầu vào. Tách âm thanh cho phép tới 2 GB trên máy tính, vì đầu ra chỉ bằng một phần nhỏ của nguồn; đổi định dạng chứa cho phép khoảng 667 MB, vì đầu ra lớn ngang đầu vào; còn trên điện thoại giới hạn chung là 512 MB. Trên 64 MB, tệp được đọc ngay tại chỗ thay vì sao chép vào bộ nhớ làm việc của trình chuyển đổi, đó là điều khiến đầu vào nhiều gigabyte xử lý được. Mỗi ô tải tệp đều ghi con số thực cho cặp định dạng đó.

Chuyển đổi MP4 ở đây có tải video của tôi lên không?

Không. Cả việc tách luồng lẫn mã hoá đều chạy trong một luồng nền của trình duyệt bằng bản ffmpeg biên dịch sang WebAssembly. Hãy mở bảng Network trước khi bắt đầu: không có yêu cầu nào mang theo tệp.

Vì sao chuyển MP4 sang WebM chậm hơn nhiều so với MP4 sang MKV?

MKV nhận H.264, nên rãnh video được sao chép và công việc về cơ bản chỉ là ghi lại tệp. WebM không nhận H.264 lẫn AAC, nên từng khung hình phải được giải mã và mã hoá lại sang VP8 hoặc VP9 — công việc nén thực sự, chạy trên CPU của bạn.

Có thể lấy một ảnh tĩnh từ tệp MP4 không?

Có, và nên biết rõ bạn nhận được gì: một khung hình đã giải mã được mã hoá lại thành PNG hoặc JPG. Vì khung hình gốc vốn đã nén có mất dữ liệu, ảnh PNG của nó chỉ không mất dữ liệu so với chính khung hình đó, chứ không phải so với cảnh thật ban đầu.