問題タブ [ms-media-foundation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2933 参照

c++ - ストリームをMFSourceReaderに渡すWindows8

IMFSourceReaderユーザーの音楽ライブラリから.mp3ファイルを取得し、Windows Media Foundationを使用して、エキサイティングなDSPアクション用のPCM値を含む配列に変換できるプログラムを作成しようとしています。しかし、私は問題を抱えています。

私のソリューションには2つのプロジェクトがあります。UIコードを含むC#/XAMLライブラリとMediaFoundationおよびXAudio2を操作するためのネイティブコードを含むC++ライブラリに加えpublic refて、C#コードが対話できるいくつかのクラス。

MFCreateSourceReaderFromURLアプリマニフェストに音楽ライブラリ機能がある場合でも、ACCESS DENIED HRESULTが返されるため、使用できません。したがって、またはのいずれかを使用する必要があるようMFCreateSourceReaderFromByteStreamですMFCreateSourceReaderFromMediaSource。さて、を使用して音楽ファイルにアクセスし、他のいくつかのストリームタイプと一緒にまたはWindows.Storage.KnownFolders.MusicLibraryを取得するのは簡単ですが、これをまたはまたは何らかの方法でPCM値を持つバイト配列にデコードするにはどうすればよいですか?StreamIInputStreamIMFByteStreamIMFMediaSource

また、音楽ファイルをアプリフォルダーに再保存して使用できるようMFCreateSourceReaderFromURLにするか、Media Foundationでの作業を直接バイパスしてWindows.Media.Transcoding、PCMへの変換などを使用することもできます。ただし、これがトランスコーディング名前空間の目的であるかどうかはわかりません。

Media Foundationのドキュメントを何時間も読んでいて、MFCreateMFByteStreamOnStreamCOMからIStreamバイトストリームに変換できる希望がちらりと見えましたが、.netストリームをIStreamに変換するラッパーを見つけて作成する必要があります。このタスクに着手する前に、自分が正しい方向に進んでいることを確認したいだけですか、それともこれを行うためのより良い方法がありますか?

前もって感謝します。また、私が愚かな間違いを犯したり、これらのライブラリを操作する上で重要な側面を見逃したりした場合は、事前にお詫び申し上げます。

0 投票する
0 に答える
399 参照

audio - IMFMediaEngine とバイト配列

複数のメディア アセットを含む大きなパック ファイルがあります (1 つのファイルに 5 つの mp3 があります)。パック ファイルを読み取り、バイト配列 (および配列のサイズ) を取得しています。IMFMediaEngineこの情報を に転送して再生するにはどうすればよいですか?

現在、解凍されたファイルから を作成し、それをbyIRandomAccessStreamに変換してからに送信しています。IMFByteStreamMFCreateMFByteStreamOnStreamExSetSourceFromByteStream

byte* dataand を使用しsize_t sizeて、メディアオブジェクトをフィードしたいだけです。出来ますか?

0 投票する
1 に答える
332 参照

audio - SetSourceFromByteStream中にIMFMediaPlayerがハングする

背景:Win8用のメトロスタイルのアプリをコーディングしています。音楽ファイルを再生できる必要があります。品質とスペースの要件のため、エンコードされたオーディオ(mp3 / ogg)を使用しています。

XAudio2を使用してサウンドエフェクト(.wavファイル)を再生していますが、エンコードされたオーディオを再生する方法がわからなかったため、Media Foundation(IMFMediaPlayerインターフェイス)で音楽ファイルを再生することにしました。

メトロアプリのサンプルをダウンロードしたところ、Media Engine NativeC++ビデオ再生サンプルが必要なものに最も近いことがわかりました。

私のアプリでMediaPlayerが音楽を再生しているので、問題が発生しました。アプリを実行しているデバイスが十分に遅い場合、MediaPlayerはハングします。デバイスでリリースバージョンのアプリを実行しているときは問題なく、音楽を問題なく聞くことができます。しかし、デバッガーを接続したり、低速のデバイスで実行したりすると、MediaPlayerの再生用にバイトストリームを設定しているときにハングします。

ここにいくつかのコードがあります、あなたはそれがサンプルにかなり似ているのを見つけるでしょう:

そして、これがSetBytestreamメソッドです。

それがぶら下がっている線は次のとおりです。

アプリをデバッグしているときに、一時停止を押してスタックを確認できます。まあ、それほど多くはありませんが、少なくとも私はそれが無期限にあることがわかります

私のアプリがそのようにハングする理由はありますか?

(オプション:c++メトロスタイルのアプリでmp3/ oggを再生するためのより良い方法を知っている場合は、私に知らせてください)

0 投票する
1 に答える
2782 参照

winapi - MediaFoundation API ProcessMessage() が呼び出し元に戻ったときに、「ユーザーごとのサブスクリプションの所有者 SID が存在しません」というエラーが発生します。

VC++、VS2008 を使用しています。「ユーザーごとのサブスクリプションの所有者 SID が存在しません」というエラーが表示されます。

ProcessMessage() (IMFTransform) は成功ステータスを返します & コール スタックが表示されると、ProcessMessage() は一部の Microsoft DLL (evr.dll など...) 内に入り、最終的にエラー メッセージ "The owner SID on aユーザーごとのサブスクリプションは存在しません ".

なぜこのエラーが発生するのか、誰か親切に教えてもらえますか? そして、可能であれば、それを修正する方法。任意のポインターも高く評価されます。ありがとうございます。

0 投票する
2 に答える
3081 参照

windows-8 - Metro Style App MFT "Class Not Registered" Error

I am currently designing an app with the Metro app framework which includes a live video chat feature. I am using the GrayscaleTransform MFT included in the MediaCapture sample (at this point simply copy-and-pasted from the sample).

However, when I try to add the grayscale effect to the camera's image stream, I get a "class not registered" fatal error. I understand this is because I must 'activate and register' the media extension, but I do not know how. How do I register the media extension?

All help is greatly appreciated and I always accept an answer!

UPDATE: My GrayScale IDL file is shown below:

0 投票する
2 に答える
833 参照

c++ - COM関数によって返されるhr戻り値「-1072875847」を解読するにはどうすればよいですか?

私はVC++を使用しています。COM関数によって返されるhrの戻り値は「-1072875847」です。誰かがhr値を実際の意味に解読する方法を教えてもらえますか?具体的には、「-1072875847」は何の略ですか?

少し早いですがお礼を。

0 投票する
1 に答える
410 参照

windows-runtime - MFTカスタム画像フィルター

このサンプルで示すように、現在、MFT(Media Foundation Transform)を使用してWebカメラのビデオストリームをグレースケールにフィルター処理するMetroスタイルアプリを開発しています。

ただし、露出、色相、輝度、テクスチャ、ビネットなど、他のタイプのフィルタを適用したいと思います。この回答は、これを実現するためにTransformChromaメソッドを変更することになっていることを示しています。残念ながら、Y値を取得する方法がわかりません。UとVしか取得できません。NV12、YUY2、およびUYVYの形式でY値を取得するにはどうすればよいですか。

すべての助けは大歓迎です、そして私はいつも答えを受け入れます!

0 投票する
3 に答える
6390 参照

directx - Direct2D を使用して Direct3D11 サーフェスに描画する

D2D と D3D11 を使用してビデオにテキストを描画する Media Foundation Transform を作成しようとしています。D3D11 リソースの上に D2D RenderTarget を構築しようとしていますが、残念ながら、D2D と D3D の相互運用のほとんどの手段には D3D10 が必要ですが、これはこのプロジェクトでは利用できません。

使用する必要があるパラメーターは次のとおりです: ID3D11Device *pDevice、ID3D11Texture2D *pInput、UINT uiInIndex、ID3D11Texture2D *pOutput、および UINT uiOutIndex。

このチュートリアルのアドバイスに従おうとしましたが、ID3D10Texture2D オブジェクトが必要であることがわかりました。これも私にとっては選択肢ではありません。

0 投票する
1 に答える
1579 参照

windows - Windows 8 Media Foundation Transform で IMFMediaBuffer にテキストを描画する

IMFMediaBuffer オブジェクトにテキストを描画し、それを別の IMFMediaBuffer オブジェクトに書き出すにはどうすればよいでしょうか?

コンテキストは、私が MFT を構築しているということです。最初はこれを達成するために Direct2D と Direct3D11 を使用しようとしましたが、役に立ちませんでした。

0 投票する
1 に答える
2568 参照

media - Media Foundation エンコーダー MF_E_TRANSCODE_NO_MATCHING_ENCODER

wmvからmp4に変換しようとしています。まず、これを行うために IMFTransform を実装する必要がありますか? ビデオを MFVideoFormat_I420 に変換する必要がありますか?

私の知る限り、トポロジを正しく作成すれば、これは自動的に処理されるはずです。だから私は私のプロフィールを作成しました

http://msdn.microsoft.com/en-us/library/windows/desktop/ff819476%28v=vs.85%29.aspx

しかし、私は MF_E_TRANSCODE_NO_MATCHING_ENCODER を取得します。私はWindows 7を持っているので、エンコーダーが必要です。

また、そのチュートリアルのソースコードがどこにあるか知っている人はいますか? SDK サンプルではありません。

ありがとう。