問題タブ [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.
wpf - D3DImage + Media Foundation (EVR) は、D3DImage + DirectShow (VMR9) よりも優れたパフォーマンスを提供しますか?
WPF と DirectShow を使用してビデオ アプリを開発しています。再生領域にオーバーレイを提供する機能は、D3DImage とカスタム アロケーター プレゼンターによって実現されました。その結果、CPU 負荷が高くなりました (fps = 2 の 20 ストリームで 80%)。D3DImage + Media Foundation (EVR) は、D3DImage + DirectShow (VMR9) よりも優れたパフォーマンスを提供しますか?
c++ - Media Foundation で使用するためのオンザフライでのデータの生成
インメモリ ストリームをソース ストリームとして使用して、動的に生成されたデータを Media Foundation Source Reader にフィードしようとしています。
ただし、上記のエラーで立ち往生しています。これが有効でないのはなぜですか?どうすれば修正できますか? または、動的データを使用してメディア ファンデーション パイプラインを作成するためのより良い方法はありますか?
windows-7 - SinkWriter を使用してビデオをエンコードするときに h.264 品質を変更する
Microsoft Media Foundation を使用して H.264 ビデオ ファイルをエンコードしています。
SinkWriter を使用してビデオ ファイルを作成しています。MFVideoFormat_RGB32
入力はフレームを描画する buffer( ) で、出力はMFVideoFormat_H264
です。
エンコーディングが機能し、フレームを含むビデオ ファイルが作成されます。しかし、そのビデオ ファイルの品質を設定したいです。具体的にはCODECAPI_AVEncCommonQuality
、H.264 エンコーダーにプロパティを設定したいと考えています。
H.264 エンコーダーへのハンドルを取得するために、SinkWriter でGetServiceForStreamを呼び出します。次に、CODECAPI_AVEncCommonQuality
プロパティを設定します。
問題は、プロパティの変更が無視されることです。ドキュメントに記載されているように:
Windows 7 でこのパラメーターを設定するには、IMFTransform::SetOutputType を呼び出す前にプロパティを設定します。エンコーダーは、出力タイプが設定された後の変更を無視します。
問題は、H.264 エンコーダーを手動で作成していないことです。SinkWriter で入力と出力のタイプを設定すると、SinkWriter が H.264 エンコーダーを自動的に作成します。エンコーダーを作成するとすぐにIMFTransform::SetOutputType
メソッドが呼び出され、CODECAPI_AVEncCommonQuality
プロパティを変更できなくなります。ドキュメントには、プロパティの変更は Windows 8 では無視されないとも書かれていますが、Windows 7 で実行するにはこれが必要です。
Windows 7 で SinkWriter を使用しているときに、エンコードされたファイルの品質を変更する方法を知っていますか?
PS:誰かが msdn フォーラムで同じ質問をしましたが、答えが得られなかったようです。
audio - Media Foundation IMFMediaSource::CreatePresentationDescriptorの呼び出しが終了することはありません
Media Foundationを使用してmp3ファイルを再生しようとしていますが、メソッドのPresentationDesctiptor
使用に問題がありますCreatePresentationDescriptor
私は何をやっている:
- を使用してMFを開始します
MFStartup
- を使用してセッションを作成する
MFCreateMediaSession
- を使用してSourceResolverを作成します
MFCreateSourceResolver
CreateObjectFromURL
SourceResolverからを使用してMediaSourceを作成します- を使用してトポロジを作成します
MFCreateTopology
CreatePresentationDescriptor
MediaSourceからを使用してPresentationDescriptorを作成しようとしています
エラー/例外が発生しないと呼び出すとCreatePresentationDescriptor
、そこに立って何もしません。Visual Strudioを一時停止すると、プログラムがメソッドの終了をまだ待機していることが示されます。私は何を間違っているのですか?
windows-runtime - Windows RT 用の Media Foundation Audio MFT を介したベア パスの最小実装
私はウェブ、さまざまなフォーラム、MS Windows 8 アプリのサンプルを検索しましたが、私の頭をはるかに超える結果、または私と同じように生の PCM オーディオ (またはその他のトポロジーを通過するサンプル) を分析する必要がありますが、このサンプルまたはそのサンプルを見る以外に答えは得られません。
これらのサンプルの問題は、あまりにも多くのことを行い、私のような初心者がトピックへの最初の「簡単な」エントリを見つけられないことです。
私の質問: MF トポロジにプラグインできる、MFT 実装またはさらに優れたテンプレートを介して、本当に最低限のパススルーを持っている人はいますか?
これがあれば、私と同じように 2 番目のグループの質問をした多くのユーザーは、複雑なサンプルを理解したり、本質に還元したり、実際に構築を開始したりする必要なく、トピックの真の核心は何かを簡単に把握できると思います。するつもりです。
どんな助けでも大歓迎です
video - AVS ビデオ デコーダ DirectShow フィルタまたは MFT
AVS 形式のビデオ デコーダ DS フィルタまたは Media Foundation 変換について知っている人はいますか?
WEBで検索してみたけど見つからなかった…
前もって感謝します。
windows - Windows 7 CoreAudio MediaFoundation-IID_IAudioStreamVolumeのuuidof
次のコードでリンクエラーが発生します。
hr = pPlaybackClient-> GetService(IID_IAudioStreamVolume、(void **)&pStreamVolume);
リンクエラーは「未解決の外部シンボル_IID_IAudioStreamVolume」です。
IID_IAudioStreamVolumeはAudioclient.hで定義されており、私はそのファイルを#includeしています。私が宣言した場合:
const IID IID_IAudioStreamVolume = __uuidof(IID_IAudioStreamVolume);
「エラー:__ uuidofのオペランドには、__ declspec(uuid('...'))が指定されているクラスまたは列挙型が必要です。
これは小さな問題だと思いますが、答えがわかりません。助けていただければ幸いです。
windows - Media Foundation を使用して複数のストリームのボリュームを設定する
複数のオーディオ ストリームを同時に再生するアプリケーションのオーディオ コードを提供しています。さまざまなオプションのすべてに少し混乱しており、よくわからない特定のことがいくつかあります。
ボリュームの取得と設定に IAudioClient 呼び出しを使用しています。複数のストリームのボリュームを取得する最良の方法はありますか?
IAudioClient::Initialize を呼び出す必要があるようです。この関数には、WAVEFORMATEX 構造体が必要です。ボリューム設定で使用するチャネル数以外のパラメータはありますか? また、Initialize は 1 回しか使用できないようで、ボリュームの設定と読み取りが何度も行われます。IAudioClient への参照を保存して毎回使用する必要がありますか? または、ボリュームを取得または設定するたびに解放できますか?
同じデバイス (エンドポイント) で再生されている 2 つのストリームを区別するにはどうすればよいですか?
ボリュームを設定するコードは次のとおりです (スペースを節約するために、各呼び出しが成功したことを確認するための通常のチェックは省略されています)。
c# - AAC を WAV に変換する
私は既にメディア ファンデーション API を使用しています (MFManagedEncode、http://blogs.msdn.com/b/mf/archive/2010/02/18/mfmanagedencode.aspx のおかげで) wav を aac に変換しています。これがどのように機能するかについては完全には理解できていませんが、ありがたいことに機能します。
MF コーデック (AAC デコーダー) がありますが、他の方法でトランスコーディングするのは難しいと思います。これを使用する方法の例が見つかりません。控えめに言っても不可解なMSDNドキュメントを見つけています。運が良かった人はいますか?
AC# ラッパーが理想的です。
ティア。