MP4-AT 파일 형식은 캡처 후 편집 및 구성에 유용한 보조 트랙 (예: 깊이 맵 동영상 트랙)을 ISOBMFF/MP4 구조의 재생 가능한 미디어 데이터와 함께 저장하는 것을 지원합니다.
이 형식의 목표는 보조 트랙을 저장하여 이 사양을 구현하지 않는 클라이언트로부터 트랙을 숨기는 것입니다. 이렇게 하면 클라이언트가 보조 트랙을 재생 가능한 데이터로 해석하지 못합니다.
종속 항목
다음은 이 사양의 규범적 참조입니다.
- RFC에서 요구사항 수준을 나타내는 데 사용하는 키워드
- ISO/IEC 14496-12:2022 ISO Box 미디어 파일 형식 (ISOBMFF/MP4)
- ISO/IEC 14496-10:2022 시청각 객체의 코딩 10부: 고급 동영상 코딩 (AVC)
- ISO/IEC 23008-2:2023 이질적인 환경에서의 고효율 코딩 및 미디어 전송 2부: 고효율 동영상 코딩 (HEVC)
- VP9 동영상 코덱 (VP9)
- AV1 비트스트림 및 디코딩 프로세스 사양 (AV1)
- 동적 깊이 1.0 사양
소개
'MUST', 'MUST NOT', 'REQUIRED', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', 'OPTIONAL'의 사용은 RFC2119에 정의된 IETF 표준에 의거합니다.
MP4-AT 파일 형식
MP4-AT 파일 형식은 다양한 편집 작업을 지원하는 기본 트랙과 보조 트랙으로 구성됩니다. 기본 트랙 (예: 보케 효과가 적용된 동영상 트랙)은 평소와 같이 MP4 파일에 쓰이지만 보조 트랙은 보조 트랙 MP4에 쓰입니다.
보조 트랙 MP4는 다른 MP4 규격 컨테이너이며 axte
(보조 트랙 확장) 상자 내에 배치됩니다. axte
상자는 파일의 마지막 상자가 되는 것이 좋습니다. 이렇게 하면 파일을 자르면서 보조 데이터를 편리하게 삭제할 수 있습니다.
이 형식은 하위 호환됩니다. 이 형식의 나머지 부분을 지원하지 않는 플레이어는 파일을 로드할 때 기본 동영상 트랙을 읽고 재생합니다.
파일에는 다음 메타데이터가 포함된 mdta
핸들러가 있는 moov.meta
상자가 있습니다. 메타데이터는 순서에 관계없이 표시될 수 있습니다.
메타데이터 키 |
유형 표시기 |
값 |
|
78 (big endian 64비트 부호 없는 정수) |
|
|
78 (big endian 64비트 부호 없는 정수) |
|
보조 트랙 확장 (axte) 상자
구문
axte
상자는 ISO/IEC 14496-12:2022: 4.2에 정의된 상자의 시맨틱을 사용하여 설명됩니다.
aligned(8) class AuxiliaryTracksExtensionBox extends Box('axte') {
bit(8) data[];
}
여기서 데이터 필드에는 보조 트랙 MP4가 포함됩니다.
페이로드
axte
상자의 페이로드는 보조 트랙 MP4입니다.
보조 트랙 MP4는 일반적인 MP4 구조를 갖습니다.
보조 트랙 MP4에는 모든 보조 트랙의 샘플 메타데이터가 포함되어 있습니다.
모든 보조 트랙 샘플 페이로드는 보조 트랙 MP4의 mdat
상자 또는 외부 MP4의 mdat
상자에 저장해야 합니다(둘 다 아님).
전자의 경우 auxiliary.tracks.interleaved
를 0으로 설정해야 하며(아래의 '정적 메타데이터' 참고) axte.moov
상자의 샘플 오프셋은 보조 트랙 MP4의 시작을 기준으로 합니다. 이렇게 하면 보조 트랙 MP4가 독립형이 됩니다. 즉, 보조 트랙 MP4는 외부 MP4를 참조하지 않고도 독립형으로 읽을 수 있습니다.
후자의 경우 auxiliary.tracks.interleaved
를 1로 설정해야 합니다(아래의 '정적 메타데이터' 참고). axte.moov
상자의 샘플 오프셋은 파일 시작을 기준으로 하며 기본 및 보조 트랙의 샘플 페이로드는 교차 삽입될 수 있습니다.
이 경우 axte.mdat
상자가 없을 수 있습니다.
정적 메타데이터
보조 트랙 MP4에는 다음 메타데이터가 포함된 mdta
핸들러가 있는 moov.meta
상자가 포함되어 있습니다. 메타데이터는 순서에 관계없이 표시될 수 있습니다.
메타데이터 키 |
유형 표시기 |
값 |
(선택사항) |
75 (8비트 부호 없는 정수) |
0: 샘플이 인터리빙되지 않고 1: 기본 동영상 트랙의 그 외 모든 값은 예약되어 있으며 사용해서는 안 됩니다. 이 메타데이터가 없으면 기본값 0을 나타냅니다. |
|
0 (예약됨) |
바이너리 형식:
|
auxiliary.tracks.map
의 트랙 유형 순서는 보조 트랙 MP4의 페이로드에서의 순서를 나타냅니다.
보조 트랙 유형
보조 트랙 MP4에는 수정에 유용한 다음 동영상 및 메타데이터 트랙이 포함될 수 있습니다.
선명한 동영상 트랙
수정 가능한 효과가 적용되지 않은 전체 해상도의 동영상 동영상 트랙은 기본 동영상 트랙과 다른 해상도로 저장될 수 있습니다. 선명한 동영상 트랙은 일반적인 동영상 코덱을 사용할 수 있으며 표준 또는 HDR일 수 있습니다.
심도 동영상 트랙
깊이 동영상 트랙은 표준 그레이스케일 동영상으로 인코딩된 깊이 정보를 제공합니다. 이는 깊이에 대한 특별한 디코딩 또는 인코딩 지원이 없는 기기에서 깊이 트랙을 디코딩하고 인코딩할 수 있도록 하기 위함입니다. 깊이 동영상 트랙은 H.264/AVC, H.265/HEVC, VP9, AV1 또는 기타 일반적인 동영상 코덱을 사용할 수 있습니다. 깊이 동영상 트랙은 8비트 또는 10비트일 수 있으며 선형 또는 역 인코딩될 수 있습니다 (동적 깊이 1.0 사양 참고).
시간 표시 깊이 메타데이터 트랙
타임스탬프가 지정된 심도 메타데이터 트랙에는 심도를 계산하는 정규화 값과 보케 효과의 흐리게 처리 반경을 계산하는 데 사용할 수 있는 초점 테이블이 포함되어 있습니다.
샘플 MIME 유형 |
|
샘플 문법 |
바이너리 형식 (모든 int가 little-endian):
|
반투명 동영상 트랙
해당 프레임의 각 픽셀에 대한 알파 값 (투명도)을 저장하는 동영상 트랙입니다. 최솟값은 완전히 투명함을 나타내고 최댓값은 완전한 불투명함을 나타냅니다. 그 사이의 값은 선형 눈금의 다양한 불투명도 수준을 나타내며, 합성은 사전 곱셈되지 않은 색상 값으로 일반 혼합 모드를 사용합니다. 깊이 동영상 트랙과 마찬가지로 이 트랙도 표준 그레이스케일 동영상으로 인코딩해야 합니다.
사용 사례 예시
재생 가능한 렌더링된 보케 동영상을 기본 트랙에 저장하고, 원본 (흐리게 처리 전) 선명한 색상 데이터 및 깊이 맵을 위한 보조 동영상 트랙과 각 프레임의 초점 포인트를 반영하는 깊이 메타데이터가 포함된 보조 시간 메타데이터 트랙을 저장합니다. 그러면 보조 트랙을 동영상 편집기에서 사용하여 초점 피사체를 수정하고 고화질 보케 동영상 트랙을 다시 렌더링할 수 있습니다.
사전 렌더링된 반투명 '스티커' 동영상(예: 흰색 배경에 애니메이션 이모티콘 동영상)을 기본 동영상 트랙에 저장하고 알파 맵이 포함된 보조 동영상 트랙을 사용합니다. 그러면 보조 트랙을 컴포저가 사용하여 보조 트랙의 반투명도 정보를 사용하여 스티커를 배경과 혼합할 수 있습니다.