2016-10-21 6 views
1

MP4 컨테이너 H264 비디오 인코딩 파일을 헤더 부분과 내용 부분으로 잘라야합니다.최대 MP4 H264 헤더 크기

헤더의 세부 사항에 몰두하는 대신 최대 MP4 비디오 헤더 제한으로 파일을 분할하고 싶습니다.

이러한 제한이 있습니까? 파일에서 처음 2/4 MB를 분할하면 헤더가 완전히 보류됩니까?

파일의 콘텐츠 부분에 액세스 할 수 있으면 비디오를 재생해서는 안됩니다. 헤더와 내용으로 파일을 분할하는 것이 도움이 될까요?

+0

파일 끝에 MP4 헤더가있을 수 있다는 것을 알고 계셨습니까? – szatmary

답변

2

MP4 File Format Specification에 따르면 사실상 헤더 크기 제한이 없습니다.

일부 영화 아톰은 크기가 다양하기 때문에 한도를 설정할 수 없습니다.
"User Data Atoms"는 예를 들어 헤더 크기를 확장 할 수 있습니다.

사용자 데이터 원자의 원자 유형이 'udta'입니다. 사용자 데이터 아톰 내부에는 각 사용자 데이터를 설명하는 아톰의 목록이 있습니다. 사용자 데이터는 QuickTime 동영상에 저장된 정보를 확장하는 간단한 방법을 제공합니다. 예를 들어 사용자 데이터 아톰은 동영상의 창 위치, 재생 특성 또는 생성 정보를 저장할 수 있습니다.

enter image description here

원자 내의 원자 내의 원자의 구조

...는 또한 제한이 거의 없다 의미한다.

아톰 크기 A :

enter image description here

내가 다음 인용문에 따르면 제한 4기가바이트 될 줄 알았는데,하지만 ... , 아톰 크기는 2^32 바이트보다 클 수 있습니다 포함 된 원자를 포함하여 원자 머리글과 원자 내용 모두를 포함하여 원자 크기를 나타내는 32 비트 정수입니다. 일반적으로 크기 필드에는 32 비트 부호없는 정수로 표시되는 원자의 실제 크기가 바이트 단위로 들어 있습니다. 그러나 크기 필드에는 원자 크기를 결정하는 대체 방법을 나타내는 특수 값이 포함될 수 있습니다. 이 특수 값은 일반적으로 미디어 데이터 ('mdat') 아톰에만 사용됩니다. 두 개의 특수 값이 크기 필드에 유효합니다. 최상위 수준의 아톰에만 허용되는 0은 파일을 표시하고 원자가 파일의 끝까지 확장됨을 나타냅니다. 1, 이는 실제 크기가 확장 된 크기 필드에서 제공됨을 의미합니다.이 필드는 형식 필드 다음에 오는 선택적 64 비트 필드입니다. 2^32 바이트를 초과하는 미디어 데이터 아톰을 수용합니다.

난 당신이 더 나은 MP4 컨테이너에서 기본 스트림을 추출 생각 :
Extracting MPEG-4 Elementary Stream from MP4 Container (나는 acctualy 작동하는지 연결 예 아니다).