문제

원시 비디오 비트 스트림에서 MPEG4 비디오 (비 H264, 즉 MPEG4 Part 2)의 프레임 차원을 어떻게 검색 할 수 있는지 알고 있습니까? 현재 Windows Media Foundation의 사용자 정의 미디어 소스를 작성하고 있습니다. 프레임 크기가 필요한 MediaType을 제공해야합니다.그것 없이는 작동하지 않습니다. 어떤 아이디어가 있습니까? 감사합니다

도움이 되었습니까?

해결책

나는 당신을 얻지 못하고 있습니다. 스트리밍되는 비디오의 너비와 높이와 높이를 알고 싶습니까? 그렇다면 (그리고 나는 당신이 찾고있는 "차원"이라고 생각합니다) heres 방법 :

  1. 이 정수 000001B0 (16 진수)의 스트림을 파싱하십시오. 항상 항상 스트리밍되는 첫 번째 일입니다. 그렇지 않은 경우 스트림의 SDP (있는 경우, config= 필드를 검색하는 경우)를 참조하십시오. 지금은 ... 기반 16 문자열입니다.
  2. 정수 000001B6 (16 진수)
  3. 에 도달 할 때까지 모든 바이트를 읽습니다.
  4. 이 (lex) : 000001B0F5000001B5891300000100000001200086C40FA28 A021E0A2
  5. 와 같은 것을 얻어야합니다.
  6. 스트림 구성 헤더 "또는 프레임 또는 정확한 이름은 비디오 객체 시퀀스입니다. 디코더가 비디오 스트림을 디코딩하는 데 필요한 모든 정보를 보유합니다.
  7. 마지막 4 바이트를 읽으십시오 (내 예에서는 하나의 공백으로 구분됩니다 - A021E0A2)
  8. 이제이 바이트를 32 비트 부호없는 정수로 관찰 ...
  9. 너비 을 얻으려면 처음 8 비트를 읽은 다음 곱하기
  10. 다음 7 비트 건너 뛰기
  11. 높이 다음 9 비트
  12. 읽기
  13. 의사 코드 :

      WIDTH = readBitsUnsigned(array, 8) * 4;
      readBitsUnsigned(array, 7);
      HEIGHT = readBitsUnsigned(array, 9);
    
  14. 거기에 ... 너비와 높이가 있습니다. (:

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top