我正在尝试将 CBR 配置文件应用于 ASF Writer 以减少视频/音频流的延迟。
这是我到目前为止所做的:
- 使用 Media Encoder,我生成了一个默认的 CBR 配置文件
- 将配置文件保存到 prx 文件
使用此代码将配置文件应用于 ASF Writer:
// Initialize a new Profile Manager
IWMProfileManager* pIPM = 0;
WMCreateProfileManager(&pIPM);
FILE * file = fopen("lowprofile.prx", "rb");
fseek(file, 0, SEEK_END);
long length = ftell(file);
fseek(file, 0, SEEK_SET);
wchar_t * buffer = new wchar_t[length];
size_t numRead = fread(buffer, sizeof(wchar_t), length, file);
buffer[numRead] = NULL;
fclose(file);
IWMProfile* pProxProfile = 0;
hr = pIPM->LoadProfileByData(buffer, &pProxProfile);
// Set the profile for the writer
CComQIPtr<IConfigAsfWriter2> pConfigWriter;
pConfigWriter = m_pWMASFWritter;
hr = pConfigWriter->SetParam(AM_CONFIGASFWRITER_PARAM_DONTCOMPRESS, TRUE, 0);
hr = pConfigWriter->ConfigureFilterUsingProfile(pProxProfile); // THIS LINE FAILS, hr = E_FAIL
hr=m_pGraph->AddFilter(m_pWMASFWritter,L"ASF Writter");
if(FAILED(hr))
return FALSE;
//etc..
这段代码有什么问题?我误会了什么??
对我来说不幸的是,没有媒体格式 sdk 的代码,也没有互联网上的代码来帮助我应用这种过滤器。我正在尝试仔细阅读 msdn 上提供的文档,但它肯定不如一个好的代码示例那么清晰。
有人可以给我一个提示吗?