반응형

비디오 컨테이터의 표준인 mp4/mov 포맷은 최초 애플 퀵타임 포맷을 기원으로 한다.

애플 퀵타임 포맷을 보완해서 국제 표준인 MPEG-4 Part 14(ISO/IEC 14496-14:2003)로 등록한 것이다.

 

 

기존의 QTFF에 비해서 보완된 점이 여러 가지가 있기는 해도, 본질적인 구성은 동일하다.

오브젝트 단위로 구분되어 있고, 각 오브젝트는 8바이트 필트(크기 4바이트, type 4바이트)로 시작하는 것.

그런데, 가장 크게 바뀐 내용이 그 중 제일 앞의 필드는 ftyp로 시작해야 된다는 것이다.

 

 

요즘 아이폰으로 영상을 촬영하면 당연하게도 MPEG-4 컨테이터에 동영상을 저장한다.

MediaInfo로 찍어보면 당연히 이렇게 표시된다.

 

 

그리고, 내 프로그램 중에서 mp4 파일의 촬영/녹화 시간을 읽는 코드들은 당연히 이 표준을 기반으로 만들어졌다.

그런데... 이 프로그램들에서 날짜/시간을 제대로 인식하지 못하는 경우가 발생하기 시작했다.

 

그리고, 파일을 확인해보니 아래와 같이 뭔가 미묘하게 다르다는 것을 알 수 있었다.

 

 

이를 좀 더 정확히 확인하기 위해서 파일을 직접 열어봤다.

당연히 대부분의 파일들은 아래와 같이 ftyp로 시작한다.

그리고, 그 다음에 등장하는 필드는 wide.

 

 

하지만, 제대로 읽어지지 않는 파일들은 ftyp 없이 바로 wide로 시작했다.

 

 

결국, 맨 앞에 ftyp가 존재하는지를 확인하는 부분만 무력화해서 문제를 해결.

대체 애플의 비디오 포맷에는 무슨 일이 생긴 거냐...

 

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band