Định dạng tệp MP4-AT hỗ trợ lưu trữ các kênh phụ hữu ích cho việc chỉnh sửa và kết hợp sau khi quay (ví dụ: kênh video bản đồ độ sâu) cùng với dữ liệu phương tiện có thể phát trong cấu trúc ISOBMFF/MP4.
Mục tiêu của định dạng này là lưu trữ các kênh phụ sao cho các kênh đó bị ẩn khỏi những ứng dụng không triển khai thông số kỹ thuật này. Điều này giúp ứng dụng không diễn giải các kênh phụ là dữ liệu có thể phát.
Phần phụ thuộc
Sau đây là các tài liệu tham khảo quy phạm cho quy cách này:
- Từ khoá chính để sử dụng trong RFC nhằm cho biết cấp độ yêu cầu
- Định dạng tệp phương tiện ISO Box theo tiêu chuẩn ISO/IEC 14496-12:2022 (ISOBMFF/MP4)
- ISO/IEC 14496-10:2022 Mã hoá đối tượng nghe nhìn Phần 10: Mã hoá video nâng cao (AVC)
- ISO/IEC 23008-2:2023 Mã hoá hiệu quả cao và phân phối nội dung đa phương tiện trong môi trường không đồng nhất Phần 2: Mã hoá video hiệu quả cao (HEVC)
- Bộ mã hoá và giải mã video VP9 (VP9)
- Quy cách quy trình giải mã và luồng bit AV1 (AV1)
- Quy cách độ sâu động 1.0
Giới thiệu
Việc sử dụng các từ "PHẢI", "KHÔNG ĐƯỢC", "BẮT BUỘC", "NÊN", "KHÔNG NÊN", "NÊN DÙNG", "CÓ THỂ" và "KHÔNG BẮT BUỘC" là theo tiêu chuẩn IETF được xác định trong RFC2119.
Định dạng tệp MP4-AT
Định dạng tệp MP4-AT bao gồm các kênh chính và kênh phụ để hỗ trợ nhiều thao tác chỉnh sửa. Các kênh chính (ví dụ: kênh video đã áp dụng hiệu ứng bokeh) được ghi trong tệp MP4 như bình thường, trong khi các kênh phụ được ghi trong Auxiliary Tracks MP4 (Tệp MP4 kênh phụ).
Auxiliary Tracks MP4 (MP4 kênh phụ) là một vùng chứa tuân thủ MP4 khác và được đặt trong hộp axte
(Auxiliary Tracks Extension) (Tiện ích kênh phụ). Bạn nên đặt hộp axte
là hộp cuối cùng trong tệp để thuận tiện cho việc xoá dữ liệu phụ bằng cách cắt bớt tệp.
Định dạng này có khả năng tương thích ngược: những trình phát không hỗ trợ phần còn lại của định dạng này sẽ đọc và phát các kênh video chính khi tải tệp.
Tệp này có một hộp moov.meta
với trình xử lý mdta
chứa siêu dữ liệu sau. Siêu dữ liệu có thể xuất hiện theo thứ tự bất kỳ.
Khoá siêu dữ liệu |
Chỉ báo loại |
Giá trị |
|
78 (số nguyên 64 bit big endian chưa ký) |
Độ dời tệp (tính bằng byte) của hộp |
|
78 (số nguyên 64 bit big endian chưa ký) |
Độ dài (tính bằng byte) của hộp |
Hộp phần mở rộng kênh phụ (axte)
Cú pháp
Hộp axte
được mô tả bằng cách sử dụng ngữ nghĩa của hộp được xác định trong ISO/IEC 14496-12:2022: 4.2
aligned(8) class AuxiliaryTracksExtensionBox extends Box('axte') {
bit(8) data[];
}
trong đó trường dữ liệu chứa Auxiliary Tracks MP4 (Đường dẫn phụ MP4).
Dung lượng
Trọng tải của hộp axte
là Auxiliary Tracks MP4 (Đường dẫn phụ MP4).
Tệp MP4 của kênh phụ có cấu trúc MP4 thông thường.
Tệp MP4 của bản nhạc phụ chứa siêu dữ liệu mẫu cho tất cả các bản nhạc phụ.
Tất cả tải trọng mẫu của kênh phụ đều phải được lưu trữ trong hộp mdat
của MP4 kênh phụ hoặc trong hộp mdat
của MP4 bên ngoài (nhưng không được lưu trữ trong cả hai).
Trong trường hợp trước, bạn phải đặt auxiliary.tracks.interleaved
thành 0 (xem "Siêu dữ liệu tĩnh" bên dưới) và độ lệch mẫu trong hộp axte.moov
sẽ tương ứng với vị trí bắt đầu của Auxiliary Tracks MP4 (Đường dẫn phụ MP4). Điều này giúp Auxiliary Tracks MP4 tự chứa, nghĩa là Auxiliary Tracks MP4 có thể được đọc độc lập mà không cần tham chiếu đến MP4 bên ngoài.
Trong trường hợp sau, bạn phải đặt auxiliary.tracks.interleaved
thành 1 (xem phần "Siêu dữ liệu tĩnh" bên dưới) và độ dời mẫu trong hộp axte.moov
sẽ tương ứng với vị trí bắt đầu của tệp và tải trọng mẫu của kênh chính và phụ có thể được xen kẽ.
Hộp axte.mdat
có thể không có trong trường hợp này.
Siêu dữ liệu tĩnh
Auxiliary Tracks MP4 (Đường dẫn phụ MP4) chứa một hộp moov.meta
có trình xử lý mdta
chứa siêu dữ liệu sau. Siêu dữ liệu có thể xuất hiện theo thứ tự bất kỳ.
Khoá siêu dữ liệu |
Chỉ báo loại |
Giá trị |
(Không bắt buộc) |
75 (Số nguyên 8 bit không dấu) |
0: Cho biết các mẫu không được xen kẽ và nằm trong hộp 1: Cho biết các mẫu được xen kẽ trong hộp Tất cả các giá trị khác đều được dành riêng và không được sử dụng. Nếu không có siêu dữ liệu này, giá trị mặc định sẽ là 0. |
|
0 (đã đặt trước) |
Định dạng tệp nhị phân:
|
Thứ tự của các loại kênh trong auxiliary.tracks.map
cho biết thứ tự của các loại kênh đó trong tải trọng của Kênh phụ MP4.
Các loại kênh phụ
Tệp MP4 có các kênh phụ có thể chứa các kênh video và siêu dữ liệu sau đây rất hữu ích cho việc chỉnh sửa.
Phiên bản video sắc nét
Video ở độ phân giải đầy đủ mà chưa áp dụng hiệu ứng có thể chỉnh sửa. Luồng video có thể được lưu trữ ở độ phân giải khác với luồng video chính. Đường dẫn video sắc nét có thể sử dụng bất kỳ bộ mã hoá và giải mã video phổ biến nào và có thể ở dải động tiêu chuẩn hoặc cao.
Phiên bản video có chiều sâu
Đường dẫn video độ sâu cung cấp thông tin độ sâu được mã hoá dưới dạng video thang màu xám tiêu chuẩn. Điều này cho phép giải mã và mã hoá các kênh độ sâu trên các thiết bị không có tính năng hỗ trợ giải mã hoặc mã hoá đặc biệt cho độ sâu. Đường dẫn video độ sâu có thể sử dụng H.264/AVC, H.265/HEVC, VP9, AV1 hoặc bất kỳ bộ mã hoá và giải mã video phổ biến nào khác. Đường dẫn video độ sâu có thể là 8 bit hoặc 10 bit và được mã hoá tuyến tính hoặc nghịch đảo (tham khảo Thông số kỹ thuật về độ sâu động 1.0).
Kênh siêu dữ liệu về độ sâu theo thời gian
Đường dẫn siêu dữ liệu độ sâu theo thời gian chứa các giá trị chuẩn hoá để tính toán độ sâu và bảng tiêu điểm có thể dùng để tính bán kính làm mờ cho hiệu ứng bokeh.
Loại MIME mẫu |
|
Cú pháp mẫu |
Định dạng tệp nhị phân (tất cả ints little endian):
|
Phiên bản video mờ
Một kênh video lưu trữ giá trị alpha (độ trong suốt) cho mỗi pixel trong khung tương ứng. Giá trị tối thiểu cho biết hoàn toàn trong suốt, còn giá trị tối đa cho biết hoàn toàn mờ. Các giá trị ở giữa thể hiện các mức độ mờ khác nhau trên thang tuyến tính và tính năng kết hợp sử dụng chế độ kết hợp thông thường với các giá trị màu không được nhân trước. Tương tự như bản âm thanh video độ sâu, bản âm thanh này cũng phải được mã hoá dưới dạng video thang màu xám chuẩn.
Ví dụ về trường hợp sử dụng
Lưu trữ video bokeh đã kết xuất có thể phát trong một kênh chính, với các kênh video phụ cho dữ liệu màu sắc sắc nét ban đầu (trước khi làm mờ) và bản đồ độ sâu, cũng như một kênh siêu dữ liệu phụ theo thời gian có siêu dữ liệu độ sâu phản ánh tiêu điểm tại mỗi khung hình. Sau đó, bạn có thể sử dụng các kênh phụ trong trình chỉnh sửa video để sửa đổi đối tượng lấy nét và kết xuất lại kênh video bokeh chất lượng cao.
Lưu trữ video "miếng dán" trong suốt được kết xuất trước, ví dụ: video biểu tượng cảm xúc động trên nền trắng trong một kênh video chính, với một kênh video phụ chứa bản đồ alpha. Sau đó, trình kết hợp có thể sử dụng kênh phụ để kết hợp hình dán với nền bằng cách sử dụng thông tin về độ mờ từ kênh phụ.