問題タブ [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.
c++ - 3 videoInput などを使用したカメラ キャプチャ
ハイ ダイナミック レンジ ビデオをリアルタイムで生成するプロジェクトに取り組んでいます。目標は、3 つの既製の Web カメラ (Microsoft LiveCam Studio) を使用して実行することです。私は OpenCV を使おうと始めましたが、カメラを開くのに苦労しました。だから私はまっすぐにジャンプしましたvideoInput
。任意の 2 台のカメラを相互に連携させることができます。また、任意の 2 つの Web カメラをラップトップの内蔵 Web カメラと連携させることができます。しかし、3 つの Web カメラをすべて一緒に実行しようとすると、
エラー: グラフを開始できませんでした'
調査videoInput.cpp
に数時間を費やした後、同じタイプの 2 台のカメラで問題が発生しない理由がわかりませんが、3 台目を追加すると失敗します。
この予想外の壁にたどり着いたとき、私は自分のプロジェクトがほぼ完成したと思っていました。
これについて何か考えはありますか?
ウィンドウズ7(64)
ビジュアル スタジオ 2011
同期された方法で 3 つのカメラすべてからフレームを取得する必要があります。これを実現する方法についての提案をお待ちしています。DirectShow や MediaFoundation を回避できる他のフレームワークはありますか? 複数のカメラを開き、ストリームからフレームを引き出すことができるコードを持っている人はいますか?
com - IMFMediaSource::ReadSample で E_POINTER のソースを追跡する
ReadSample 呼び出しから E_POINTER エラーが発生しましたが、私が知る限り、無効なポインターはありません。以下のスニペットを参照してください (注、これは C++/CLI アプリです)。
問題は mSourceReader (IMFMediaSource から作成された IMFSourceReader インスタンス) の構築にあると思われます。しかし、残念ながら、mSourceReader を作成したコマンド チェーン内のすべての COM 呼び出しが S_OK を返したため、バックトラックしてソースを見つける方法がわかりません。
ヒントをありがとう。
directshow - 「DirectShow 以外で DirectShow フィルタを使用する場合」について
次のリンクでまったく同じ質問があります 。 DirectShow 外部の DirectShow フィルターを使用していますか? 私はショーを監督するのが新鮮で、そのスタックの2つの答えは私には十分に明確ではありません. また、著者に連絡して問題を解決したかどうかを尋ねる方法が見つかりません。これを行う方法はありますか?
または、これらの2つの答えについて、より詳細に説明できる人はいますか? 「「手で」さまざまなフィルターを呼び出す」ことと、「フィルターグラフ全体をラップする」ことについてはどういう意味ですか?
visual-studio-2008 - Media Foundation:トポロジにサードパーティのデコーダーdllを追加
私はMicrosoftMediaFoundationを初めて使用します。MSDNにあるサンプルの再生コードを実行しています。ここで、サードパーティデコーダーのMFTをトポロジに追加します。これは可能ですか?
前もって感謝します、
スリ
visual-studio-2008 - メディア ファンデーション: メディア セッション
Media Foundation のメディア セッション技術を使用してアプリケーションを作成したいと考えています。ソース リーダーとメディア セッションの使用の正確な違いは何ですか?
前もって感謝します、
スリ
visual-studio-2008 - メディアセッションの例
メディアファンデーション初心者です。メディア セッションテクニックを使用したビデオ再生のサンプル コードを教えてください。サードパーティのデコーダー (H264 ビデオ ファイルをデコードするため) 用に MFT を追加したいと考えています。Media Foundation で既に動作しているコードを教えてください。
video - Media Foundation を使用した mp4-h264 ビデオのデコード
h264 ロスレス形式のビデオを YUV/RGB 生データにデコードするために、MS Media Foundation SDK を使用して libavcodec (http://en.wikipedia.org/wiki/Libavcodec) を統合する方法をテストしています。
2 つの質問があります。
h264/AVC (ロスレス形式ではなく通常の形式) でエンコードされた mp4 ビデオを MFPlayer (MF SDK の例から VS2010 でコンパイル) にロードする際に問題が発生しました。エラー コードは次のとおりでした: 不良バイト ストリーム。同じビデオをストリームとして読み込もうとしたときに同じエラーが発生しました ( http://msdn.microsoft.com/en-us/library/dd389281%28v=VS.85%29.aspxから取得したソース リーダー コード) またはトランスコーディングの例を使用したセッションとして。Media Foundation を使用して mp4-h264 ビデオをロードする方法について、誰でも経験を共有できるかもしれません。
サードパーティのコーデックを Media Foundation ベースのデコードに統合する必要があります。MSDN によると、Media Foundation はサードパーティのコーデックをある程度サポートしていますが、サードパーティのコーデックを使用してデコードを行う例は見つかりませんでした。誰かがそれをしたのでしょうか?または、それを行う方法の使用可能な例を参照する場合があります。
前もって感謝します、Ze'ev
visual-c++ - システムで利用可能なすべての Microsoft Media Foundation Transform (MFT) のリストを取得する方法
私は Windows でのネイティブ開発の初心者ですが、さまざまなビデオ + オーディオ コーデックのすべてのトランスフォーマーを一覧表示する小さなアプリの作成を任されています。
MSDN のドキュメントを見ると、これに関する直接的なドキュメントはあまりないようです。私が見つけたドキュメントは、この情報がレジストリに保存されていることを示しているため (場所は不明)、ベクトルである可能性があります。
- これは可能ですか?
- 一般的にはどのようにすればよいですか?
ありがとう
編集:
MFT_REGISTER_TYPE_INFO 型のパラメーターを NULL に設定して MFTEnumEx を呼び出すと、カウント 8 が返されるようです。
ただし、実際の値を取得する必要があります。ただし、渡された ppActivate パラメータには、それらの列挙が含まれている必要があります。
編集: 驚くべきことですが、カウントが == 8 を超えている間、ビデオまたはオーディオの属性はありません (ビデオ/オーディオの IMFAttributes オブジェクトは NULL です)。
編集:
これは、マシンからすべての IMFMediaTypes を取得するメソッドです ( Microsoft® Media Foundation Applications の開発という本からの変更された呼び出し)。次に、呼び出し元でそれらを列挙します。
発信者:
IMFMediaInterfaceからいくつかの属性を取得していますが、多くの属性が設定されておらず、への呼び出しmediaInterface->GetUINT32(MF_MT_COMPRESSED, &isCompressedP)
は成功していませんが、への呼び出し(IMFMediaType*)mediaInterface)->IsCompressedFormat(&isCompressedP2)
は間違っているのではないかと思います。
wpf - ATL COM dll に WPF コントロールの HWND を与える方法
Windows Media Foundation への呼び出しをカプセル化する VideoPlayer クラスを公開する C++ ATL COM DLL (phew) があります。
コントロールにビデオを表示したい WPF アプリケーションからこの DLL を使用します。
私の DLL には、MF に 2 つの HWND を必要とする Initialize という名前のメソッドがあります。
この関数をどのように宣言すればよいですか? WPF アプリケーションで何を与える必要がありますか?
今のところ、私は持っています:
VideoPlayer.h
VideoPlayer.cpp
WPF アプリケーション:
Initialize 関数で正しい値を受け取りましたが、HWND への変換に失敗しました...
何か案は?
前もって感謝します
マイク