2013-10-04 5 views
1

ffmpeg로 파일에서 영화 아톰을 검색하는 방법은 무엇입니까? 예를 들어 avcC 아톰 바이트가 필요합니다. 나는 약간의 해결책이 있다면 오히려 파서를 직접 코딩하지 않을 것이다.ffmpeg로 영화 아톰 검색

http://www.ffmpeg.org/doxygen/0.6/mov_8c-source.html 일부 API를 제공하는 것 같지만 ffmpeg에 익숙하지 않습니다.

SPS 및 PPS NAL을 얻기위한 직접 API가 있습니까?

답변

1

FFmpeg가 이러한 세부 정보를 검색하는 직접 API를 제공하는지 여부는 알 수 없습니다.

  1. 파일을 열고 트래버스 mdat 중 최상위 원자 구조 (의 moov 원자의 위치를 ​​ftyp, 그러나, 여기 당신이 퀵타임/MP4 파일에서 avcC 원자를 잡아 수 있도록해야 믿을 수 없을만큼 게으른 솔루션입니다 , 그리고 아마도 몇 개의 다른 원자들).
  2. 전체 moov 원자를 메모리에로드하십시오 (쉽게 맞을 것입니다).
  3. 'avcC'에 대한 문자열 검색을 수행하십시오.

가장 깨끗한 접근 방식은 아니지만 실제로 작동 할 것입니다. ('avcC'문자열이 메타 데이터 원자와 같이 원자의 다른 위치에서 발생하는 경우) 'avcC'문자열 앞에 오는 4 바이트를 확인하고이를 '빅 엔디안'32 비트 숫자로 처리하여 길이는 avcC 원자이며 의미가 있는지 확인하십시오. 방금 몇 개의 H.264 .MP4 파일을 검사했으며 경험적으로 길이는 약 43-45 바이트입니다. 최소한 원자의 길이가 8 (최소 원자 크기)보다 크고 moov 원자의 끝 부분에 부딪 치지 않도록하십시오.