2010-06-25 6 views
3

MP4 컨테이너에서 H264 및 AC3 스트림을 읽고 단일 ISMV 파일로 다중화해야하는 응용 프로그램을 작성 중입니다. 소스 MP4 파일은 서로 다른 비트 레이트의 여러 비디오 스트림과 여러 언어의 오디오 스트림을 포함합니다.DirectShow : MP4 컨테이너에서 소스 비디오 스트림을 선택하십시오.

내 소스 파일에 IGraphBuilder::AddSourceFilter을 호출하면 "비디오"와 "오디오"라는 두 개의 출력 핀만있는 필터를 얻을 수 있습니다. '동영상'과 '오디오'에 사용할 특정 스트림 (예 : 동영상 스트림의 비트 전송률)을 선택하려면 어떻게해야합니까?

해당 파일을 읽고 ISMV로 채우려면 여러 원본 필터를 인스턴스화해야합니까, 아니면 뭔가 빠졌습니까?

답변

4

MP4에 사용하는 demux에 따라 다릅니다. 나는 주식 MP4 demux가 있다고 생각하지 않는다, 그래서 당신은 아마 하나를 디코더 패키지의 일부로 가지고있다. 그것은 소스와 demux 둘 다로 행동한다.

www.gdcl.co.uk/mpeg4에서 무료 오픈 소스 MP4 demux를 사용해 볼 수 있습니다. AddSourceFilter (단일 출력으로 파일 소스 가져 오기)가 필요하고 명시 적으로 소스 출력을 demux 입력에 연결해야합니다. 그런 다음 demux가 이해할 수있는 모든 활성화 된 스트림에 해당하는 출력 핀을 갖게되고 원하는 것을 선택할 수 있습니다.

g

관련 문제