|
########## 최초 질문 ##########]
예전의 avi형식은 TMultimedia에서 가뿐하게 플레이를 해 주었는데,
최근의 DivX와 같은 코덱으로 인코딩된 것은 플레이를 못하더군요.
비디오를 플레이 할 수 없습니다. vids:div3 압축해제 프로그램을 찾을 수가 없습니다.
이런 메세지를 보여줍니다.
[수정으로 추가]
directx를 써서 뭐 어떻게 해야할 것이라는 갑작스런 생각이 드네요.
관련된 내용을 읽어볼 만한 곳이 있을까요 ?
[첨가2]
directx sdk라는 것이 있다고 그러고, mediaplayer sdk라는 것도 있고..
media sdk라는 것도 있다고 하는데... 도대체 차이는 뭔지...
########## 조로님의 답변 ##########
어쨌든 문제는 컴포넌트에 있는것이 아니라~~
현재 시스템에 코덱이 없으셔서 그런것입니다.
mpeg4에 대한 코덱을 MS site나 보물섬 또는 천리안등에서 다운 받으셔서 설치하시고요
divX 코덱에 관한 파일을 인터넷에서 찾으셔서 설치하시면 실행하시는데 큰 문제 없습니다.
위 두개의 코덱파일을 설치 하신 후에 작업하시면 됩니다.
########## 조로님의 답변에 대하여 ##########
코덱은 깔려있는 상태입니다.
사사미로 소리, 화면 별 이상 없이 보고 있는 상태입니다.
질문 올려놓고 갑자기 directx(관련된 내용은 아무것도 모르지만..)를 이용해서 어찌한다는
게시물을 어디선가 본듯한 느낌이 들어서 지금 관련 내용을 찾아 인터넷을 배회(?)중입니다..
########## 김상우님의 답변 ##########
DirectX SDK 를 깔고 Help화일에 있는 샘플에 나와있는것처럼 하면
Divx화일 플레이 가능합니다. 아래는 도스프로그램인데 어떻게 하면 VCL에서도 사용할수 있을겁니다.
Help잘보시면
#include <dshow.h>
void main(void)
{
IGraphBuilder *pGraph;
IMediaControl *pMediaControl;
IMediaEvent *pEvent;
CoInitialize(NULL);
// Create the filter graph manager and query for interfaces.
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
IID_IGraphBuilder, (void **)&pGraph);
pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
// Build the graph. IMPORTANT: Change string to a file on your system.
pGraph->RenderFile(L"C:\\Hello_World.avi", NULL);
// Run the graph.
pMediaControl->Run();
// Wait for completion.
long evCode;
pEvent->WaitForCompletion(INFINITE, &evCode);
// Clean up.
pMediaControl->Release();
pEvent->Release();
pGraph->Release();
CoUninitialize();
}
########## 태즈의 선택 ##########
위의 코드를 빌더의 콘솔 애플리케이션 만들기에 넣으면 그대로 동작합니다.
directshow에 관한 내용을 찾아보려 여기저기에 다녀보았으나 마땅한 자료를 찾기가 쉽지 않았습니다.
directdraw, directinput, directsound등과 같이 오락에 주로 쓰이는 것들은 관련된 내용이
여기저기 많은데, 그에 반해 최근에 정립(?)되기 시작한 directshow는 관련 내용이 많지 않습니다.
아마존에 가서 directshow를 검색해보면, 올해 11월 경에 책이 출간될 것이라는 이야기만
나옵니다.
현재까지는 가장 좋은 내용이 directx 8 sdk를 깔고 났을때 생기는 도움말인 것 같습니다.
|