2010-06-09 5 views
0

WM Asf 작성기 필터를 사용하여 출력 .wmv 파일을 만들려고합니다. 여기에 내 코드가 있습니다.WMA sf 필터를 사용하여 .wmv 파일 작성

IBaseFilter * pASFWriter; CoCreateInstance (CLSID_WMAsfWriter, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void **) (& pASFWriter));
pGraphBuilder-> AddFilter (pASFWriter, L "FileWriter");
IFileSinkFilter * pSink2 = NULL;
pASFWriter-> QueryInterface (IID_IFileSinkFilter, (void **) & pSink2); pSink2-> SetFileName (OUTFILENAME, NULL);

위의 모든 것은 S_OK를 반환하지만 파일이 생성되지 않았습니다. 이유가 무엇인지 이해할 수 없습니까?

답변

0

여기서는 DirectShow 필터를 만들어 파일에 쓰도록 설정하는 것뿐입니다. 필터가 데이터를 제공하고 그래프가 실행되는 다른 필터에 연결될 때까지 아무 일도 일어나지 않습니다. 파일은 첫 x ​​째 유효한 데이터가 수신 될 때까지 작성되지 않습니다.

자세한 내용은 this MDSN 주제를 참조하십시오.

+0

글쎄요. 실제로 .wmv 파일을 더 작은 기간 .wmv 파일로 자르고 싶습니다. 따라서 내가하는 일입니다 - 소스 필터 -> 샘플 그래버 필터 -> WMA sf 작성기. 마지막 2 개는 2 개의 핀 (비디오와 오디오)으로 연결됩니다. 그런 다음 IMediaPostion을 사용하여 시작 및 정지 시간을 지정합니다. 그런 다음 그래프를 실행합니다. 다른 모든 것은 S_OK를 반환하지만 run graph 명령은 E_FAIL을 반환합니다. 왜 이런 일이 일어날 지 모르겠다. – Manish