2017-02-05 13 views
0

내 프로그램은 Windows Media Foundation WMV/WMA MFT를 사용하여 ASF 형식으로 인코딩합니다 (mux는 ffmpeg에서 수행됩니다). 생성 된 파일은 Win10의 Windows Media Player에서 완벽하게 재생할 수 있지만 GraphEdit에서 렌더링하지 못했습니다. 오류 코드 == NS_E_INVALID_DATA (0xC00D002FL).ASF 파일은 GraphEdit에서 렌더링 할 수 없지만 WMP로 재생할 수 있습니다.

IWMSyncReader-> GetNextSample을 사용하여 오디오 샘플을 읽는 경우에도 같은 오류가 발생합니다.

샘플 깨진 비디오는 여기에 있습니다 : https://www.dropbox.com/s/x8uyaqbclq93u5d/big_buck_bunny.wmv?dl=0

사람은 원인을 확인하는 모습을 수 있을까요? 감사합니다.

+1

깨진 비디오에는 비디오 및 오디오 용 확장 스트림 속성 개체가 포함되어 있지 않습니다. Microsoft Windows Media ASF Viewer와 같은 도구로 검사 할 수 있습니다. https://www.microsoft.com/en-us/download/details.aspx?id=12826. 확장 스트림 등록 정보를 만들려면 ASF 미디어 싱크를 올바르게 구성해야합니다. – VuVirt

+0

그건 그렇고, Win7과 Win10에서 SimplePlay 샘플 프로그램을 사용했기 때문에 비디오는 양쪽 플랫폼에서 완벽하게 재생할 수 있습니다. Windows Media API의 일부 제한으로 인해 발생할 수 있습니까? – rhbc73

+0

Win7과 Win10에서 WMP에서도 완벽하게 재생할 수 있습니다. Windows Media API 만 오디오를 읽지 못합니다. – rhbc73

답변

0

Windows Media ASF Viewer로 wmv 파일을 검토 한 결과, Lavf 인코더 (FFMPEG)로 인코딩되었음을 알게되었습니다. 따라서 LAV directshow filters을 설치하고 Graphstudionext으로 wmv를 재생했습니다. 파일을 비동기 파일 소스로 추가 한 다음 그래프가 자동으로 LAV 스플리터를 사용했습니다. LAV 스플리터 만이 wmv를 구문 분석 할 수 있습니다. 앱에서 File source async filter을 통해 파일을 추가하고 LAV에서 파일을 구문 분석 (설치되어있는 경우)하도록하면됩니다.