2013-09-05 7 views
1

Windows 용 avi 파일에 raw 이미지를 인코딩하는 작업이 DirectShow 필터를 사용하고 있습니다. 사용되는 코덱 유형이 사용자에 의해 선택됩니다. Windows 용 비디오 (VFW) 을 사용하여 유사한 작업을 이미 마쳤습니다. 간단한 API를 사용하여 데이터를 압축하고 파일에 쓸 수 있기 때문에 꽤했습니다. 이번에는 directshow 지원을 제공하기 위해 directshow 프레임 워크를 사용하여이 작업을 수행하려고합니다.DirectShow 필터로 인코딩하기

그러나 MSDN에서 확인하는 동안 다른 코덱에 대해 다른 유형의 필터를 찾았으므로 단일 인터페이스는 없습니다. http://msdn.microsoft.com/en-us/library/windows/desktop/dd375464(v=vs.85).aspx 코덱을 전환 할 때마다 다른 필터로 전환해야합니까?

DMO가 MSDN에 따라 Directshow와 다른 점도 역시 인코딩에 사용할 수 있습니다. http://msdn.microsoft.com/en-us/library/windows/desktop/ff819088(v=vs.85).aspx

그래서 최대 코덱 수를 지원해야합니까?

의견을 보내주십시오.

답변

3

여러 API가있는 API 개발 과정에서 서로 다른 코덱을 사용할 수 있습니다.

  • 비디오 인코딩의 DMO가
  • 윈도우 VCM 비디오 인코더에 대한 비디오가
  • 비디오 인코딩 MFTs (일부는 가능성이 이중 DMO/MFT의 객체)
  • 비디오 인코딩의 DirectShow 필터 가있다 VFW/VCM 인코더를 래핑하고
  • DirectShow를 DMO Wrapper Filter 적합 D를 만드는 다이렉트로 사용할 수 있도록 AVI Compressor Filter
    • DirectShow를 가능한 모스

그래서 수학은 DirectShow를 당신이 상자 밖으로 사용할 수있는 대부분의 인코더를 가지고있다 DirectShow를합니다.

코덱 특수성 및 적용 가능성, 인코딩/컨테이너 제약 및 사실상 괜찮은 인코더와 같은 기타 요소는 일반적으로 자유롭게 사용할 수 없습니다.이 모든 것은 작동 방식으로 앱을 디자인 할 때 접근 방식의 사용 및 가치를 심각하게 제한합니다 표준 잘 알려진 인터페이스/API를 통해 사용자 선택의 다양한 비디오 인코더와 함께.

+0

안녕하세요, 귀하의 의견을 주셔서 감사합니다. 나는 직접 송수신 필터로 시작하여 직접 찍었습니다. 그러나 필터를받을 때마다 필터에 전달할 수는 없습니다. 샘플에 설명 된 푸시 소스 필터는 먼저 메모리의 모든 이미지를로드 한 다음 필터 그래프를 실행하여 작동합니다. 그러나 제 경우에는 프레임을 루프의 필터에 전달하려고합니다. – praks411

+0

요점은 DirectShow가 가장 다양한 인코더를 제공하지만 일반적으로 이러한 유연성을 원하지 않는다는 것입니다. 대신 안정적으로 잘 작동하는 하나 또는 몇 개를 원합니다. DirectShow가 완벽한 의미를 갖지만 DirectShow가 될 필요는 없습니다. –

+0

PushSource의 경우, 일반적으로 사전 합의 된 미디어 유형/형식의 버퍼 풀에서 합성 비디오 프레임 시퀀스의 전달을 시연합니다. 이것은 일반적으로 사용 가능한 비디오 인코더, 특히 esp와 호환됩니다. 원시 압축되지 않은 비디오의 경우. –