2012-10-16 7 views
0

Media Foundation SDK를 사용하여 WMV로 비디오를 인코딩 중입니다. 속성을 사용하여 B 프레임 수를 설정할 수 있지만 그 위치를 설정하는 방법은 없습니다. http://msdn.microsoft.com/en-us/library/windows/desktop/ff819354%28v=vs.85%29.aspxMedia Foudation을 사용한 WMV 인코딩 : "B 프레임 수"지정

우리의 코드를 수행 대략 다음과 같습니다 :

  • 전화 MFStartup
  • 전화 MFCreateAttributes 한 번 우리가 먹서을 설정할 수 있습니다, 비디오 및 오디오를 속성이 MFPKEY_NUMBFRAMES라고하며 여기에 설명 된 것을

    속성

  • 예를 들어 비디오 비트율을 설정하여 이전 단계에서 만든 IMFAttributes를 구성합니다. pVideoOverrides-> SetUINT32 (MF_MT_AVG_BITRATE, m_i VideoBitrateBPS);
  • 는 싱크 작가에 WriteSample 전화, 각 프레임에 대한 IMFReadWriteClassFactory :: CreateInstanceFromURL
  • 를 호출하여 싱크 작가를 만들

내가에 IMFAttribute에 B 프레임 속성을 설정 해야하는 건가요 통화 MFShutdown 비디오 비트 레이트를 설정 했습니까?

답변

0

이 속성은 Windows Media Video 9 Encoder에 적용됩니다. 즉, 토폴로지에서 위치를 찾고 속성을 조정해야합니다. 다른 토폴로지 요소 (예 : 멀티플렉서)는 다른 속성을 허용 할 수 있지만이 속성은 아무런 영향을 미치지 않습니다.

MSDN은 Configuring a WMV Encoder에 st4ep 지침에 의해 단계로는

대상 비트 전송률을 지정하려면 말한다 곳, 용지 종류에 MF_MT_AVG_BITRATE 특성을 설정할 수 있습니다.

다른 인코더 속성을 변경할 수도 있습니다. 또한 전체 프로세스의 단계를 보여주는 단계별 상세도 Tutorial: 1-Pass Windows Media Encoding이 있습니다.

+0

고마워요. 직접 토폴로지를 작성하지 않고 IMFSinkWriter 및 일부 IMFAttributes 만 있습니다. WMV9 인코더에 액세스하려면 어떻게합니까? – Warpin

+0

또한 튜토리얼 링크는 빌드하지 않으며 (해당 웹 페이지 하단의 주석 참조) 소스 파일에서만 변환 할 수 있습니다. 비 압축 비디오 및 오디오 샘플을 피드 할 수 있어야합니다. – Warpin