私の質問を読んでくれてありがとう。
Qt と Windows API を使用して C++ アプリケーションを開発しています。
マイクロフォン出力を小さな 10 秒のオーディオ ファイルに raw 形式で録音していますが、それらを aac 形式に変換したいと考えています。
私はできる限り多くのことを読み込もうとしましたが、Windows Media Foundation トランスコード API から始めるのは素晴らしい考えだと思いました。
問題は、「CreateObjectFromUrl」関数で .raw ファイルまたは .pcm ファイルを使用できないように見えることです。それは失敗し続けます。hr リターン コードは 3222091460 です。関数に .mp3 ファイルを渡そうとしましたが、もちろん機能するので、url-human-failure は関係ありません。
MF_OBJECT_TYPE ObjectType = MF_OBJECT_INVALID;
IMFSourceResolver* pSourceResolver = NULL;
IUnknown* pUnkSource = NULL;
// Create the source resolver.
hr = MFCreateSourceResolver(&pSourceResolver);
if (FAILED(hr))
{
qDebug() << "Failed !";
}
// Use the source resolver to create the media source.
hr = pSourceResolver->CreateObjectFromURL(
sURL, // URL of the source.
MF_RESOLUTION_MEDIASOURCE, // Create a source object.
NULL, // Optional property store.
&ObjectType, // Receives the created object type.
&pUnkSource // Receives a pointer to the media source.
);
MFCreateSourceResolver は正常に動作しますが、CreateObjectFromURL は成功しません:(
そこで、皆さんに 2 つの質問があります。
- Windows Media Foundation を使用して生のオーディオ ファイルを aac ファイルにエンコードすることは可能ですか?
- はいの場合、私が望むことを達成するために何を読むべきですか?
ソフトウェアのライセンスを購入する余裕がないため、ffmpeg や libav だけを使用することはできず、GPL ライセンスの下に置きたくないことを指摘したいと思います。しかし、生のオーディオ ファイルを aac にエンコードするための Windows Media Foundations に代わるものがある場合は、それを聞いて喜んでいます。
そして最後に、私の英語が下手で申し訳ありません。これは明らかに私の母国語ではありません。目が出血してしまったら申し訳ありません。(笑わせてくれたら嬉しい)
良い1日を