問題タブ [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.
windows - オペレーティング システムを検出するマクロはありますか?
vista の後に利用できるメディア ファンデーション API を使用してコードを作成する予定です。#if ブロック内にコードを追加したい...
オペレーティング システムのバージョンを検出するマクロが見つかりませんでした。これは通常、Windowsでどのように行われますか?? _WIN32 と _WIN64 で 32 ビットと 64 ビットが検出されましたが、API の可用性を判断するマクロはありませんでした。vc.. での API の可用性に基づいてコードを分離するより良い方法はありますか?
ありがとう、アビナイ。
windows - DirectShowとMediaFoundationのビデオキャプチャ?
ビデオキャプチャ/モニタリング/ストリーミングアプリケーション用にこれら2つのAPIのどちらかを選択しようとしていますが、どちらが最善の策かわかりません。
少し背景:
- さまざまなビデオキャプチャカード/ドングルで動作するために必要です。
- アプリはC++で開発される可能性が高いため、ネイティブAPIが不可欠です
- 複数のビデオストリームを処理する必要があるため、パフォーマンスは重要です
少しグーグルすると、
- MFは、Win7でのビデオキャプチャのみをサポートします
- Directshowはより適切にサポートされますが、廃止されます
- MFは、一部のアプリケーションでより優れたパフォーマンスを提供できます
MFは今後の方が良いと感じていますが、MFが「追いつかず」、DirectshowがAPIの選択のままである場合、技術的な行き詰まりに陥ることを懸念しています。提案やアドバイスをお願いします...
winapi - Windows 7 に同梱されている h264 および aac エンコーダーを directshow から使用することはできますか?
Windows 7 にはaac エンコーダーとh264 エンコーダーが同梱されているようです。ビデオのエンコードを行う必要がある directshow アプリケーションを作成しています。私は次のように思います:「素晴らしい! これで、ビデオ エンコーダーのライセンスを取得する必要がなくなりました!」しかし、読み進めると、これらのエンコーダーが、directshow と互換性がないように見える新しい MFT API を使用していることがわかります。 DMO にあるようなラッパー フィルターになります。これらのフィルターを directshow で使用する方法はありますか? たぶん、私が見つけられなかったラッパーがありますか?これらのフィルターに DMO としてアクセスできますか?
windows-7 - MPEG2トランスポートストリームのグラフを作成するための最良の方法
Windows 7では、Windows Media Playerは.tsファイルを非常によくサポートしています。つまり、Windows Media Playerは、追加のコーデックパックなしでそのようなファイルを処理する方法を知っています。
ただし、grapheditを使用して.tsファイルを「レンダリング」しようとすると、グラフの作成方法がわからないと文句を言います。
これらのファイルをデコード/デコードするためにWindowsMediaPlayerはどのような方法を使用しますか?DirectShowですか?Windowsメディアファンデーション?BDA?Microsoft TV Technologies?統一されたチューニングモデル?
彼らが使用する方法が何であれ、私のカスタムアプリケーションで使用されるAPIとして利用できますか?
.net - Media Foundation のマネージド ラッパーを生成する
MF チームは、C# で記述された MFManagedEncode を提供しました。ソース内で、多くの MF インターフェイスのラッパーを作成しましたが、すべてのインターフェイスではありません。残りのインターフェイスのラッパーを自動的に生成できるツールはありますか? いいえの場合、自分でラッパーを作成する必要がありますが、COM の GUID とインターフェイスの IID はどこで確認できますか? MSDN は、インターフェイスがどのライブラリに属しているかについて言及しました。たとえば、IMFMediaStream インターフェイスの IID は何ですか?
c++ - ビデオファイルのネイティブビデオ解像度を取得する
私は現在、MediaFoundationプレーヤー用のカスタムEVRを作成しています。
これまでのところすべてが機能しますが、レンダリングしているビデオファイルのネイティブ解像度を見つける必要があります。
IBasicFilter2インターフェイスを使用してgetVideoSize、get_VideoHeight、またはその他のget_SourceWidthなどを使用しようとしていますが、常にE_NOINTERFACEが返されます...
それで、誰かがビデオファイルの解像度を取得する簡単な方法を持っていますか?素敵なライトライブラリを使用している場合でも...サイズは他にありません...Windowsはファイルブラウザ内でそれを見つけることができますが、コードから取得することはまったくできません...
ありがとう!
windows - Webカメラストリームのシミュレーション
Webカメラ出力をシミュレートして、Webカメラを使用する他のプログラム(Skypeなど)が実際のWebカメラとして認識できるようにすることは可能ですか?
directshow - Media Foundation で MPEG1/2 ビデオをデコードする
Media Foundation を使用してビデオを再生しています。Windows 7 では、Mpeg1/Mpeg2 PS および Windows Media Player でエンコードされた一部のビデオは再生できますが、Media Foundation では再生できません (スタブ MPEG1Source を登録しようとしましたが、まだ機能しません)。これらのファイルのいくつかは、directshow で再生できますが、Media Foundation では再生できません (まったく開くことができません)。「メディアプレーヤー」はMedia Foundationのみを使用していないのでしょうか?
Media Foundation を使用してこれらのファイルを再生することはできますか? そうでない場合、メディア プレーヤーはどのように機能しますか? どうもありがとう。
PS Windows SDK を読み、「偽の」mpeg1 デコードを登録しましたが、タイム コードのない空白のフレームが表示されます。Windows Media Player でデコードできるのに、偽の mpeg1 デコーダが必要なのはなぜですか?
c# - VMR9 vs EVR : EVR で ImageCompositor を使用するには?
DirectShow.Net + VMR9 を使用して再生中の画像またはビデオ ソースでライブで動作する PixelShader コンパイラ/テスターをコーディングしました。
そして、実際のビデオプレーヤーとして試してみることに決め、すべての部分を適切に機能するように調整し始めるまでは、すべて問題ありませんでした (タイトルなど)。
その後、ATI gpu を使用した Windows7 で、ビデオが非常にピクセル化されている (補間が不十分である) ことがわかりました。解決策は、EVR を使用することでした。そして、私はそれをしました。背景のちらつきとサイズ変更の遅さを伴ういくつかの不具合は別として、カスタムプレゼンターで解決しようとしていますが、すべてうまくいきました。
しかし...
EVR FilterConfig インターフェイスに SetImageCompositor メソッドがないため、出力ビデオにピクセル シェーディングを適用できませんでした。
これは EVR インターフェイスです。
これは VMR9 インターフェースです。
私は、ピクセル シェーダーを適用するためにカスタム イメージ コンポジターでこのアプローチを使用しています。
現在、私はできません...
使用: VS2010、C#、DirectShow.NET、Mediafoundation.NET、マネージド DX9。
この問題の解決策は何ですか? EVR でそれを行う方法に関するガイドラインはありますか?
どうもありがとうございました!
c# - Vista / Windows 7 での字幕の透明度
Windows Vista+ でのサイズ変更の質の悪さに対処するために、EVR レンダラーを私のプレーヤーに実装しましたが、問題が発生しました...
EVR に字幕オーバーレイの問題があります。
私が話していることを確認してみてください。オプションで EVR を設定する必要があります。
これを使用して、DirectX サーフェスを使用して 32 ビット アルファ ビットマップを VMR9 に適用しました。
ただし、プロジェクト MediaFoundation.NET には、設定する alphaBmp.pDDS ポインターがないため、directdraw サーフェスを使用できず、GDI を使用する必要があります (誰かがこれを行う方法を持っている場合は、クールになります)。しかし、GDI では、真の透過性のために 32 ビットのアルファ ビットマップを使用することはできません。このアプローチでは 1 ビットの透過性しか得られません。
質問は次のとおりです。
- DirectDraw サーフェスを使用して EVR ビデオまたは
- DirectDraw を使用せずに半透明のビットマップを混在させる方法は?
どうもありがとうございました!