ASF WriterにCBRプロファイルを適用して、ビデオ/オーディオストリーミングのレイテンシを減らそうとしています。CBRフィルタをASFライタに適用するこのコードは機能しません。なぜですか?
これは私が今までやったです:このコードを使用したメディアエンコーダを使用して
- 、私は デフォルト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で利用可能なドキュメントを注意深く読み込もうとしていますが、確かに良いコードサンプルほど明確ではありません。
誰かが私にヒントをくれますか?
Brokenglassありがとうございました。最初のASF Writerをグラフに追加した後、適切なプロファイルで構成していました。今はうまくいく。 –