問題タブ [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.
directshow - MediaFoundationとDirectShowおよびMediaContainersの比較。(WEBMおよびOGG THEORA)
なぜすべての新しいビデオ/メディアコンテナフォーマットは、DirectShowが死にかけていることを知っているので、メディアファンデーションをほとんどサポートせず、DirectShowをさらにサポートするのですか?
visual-c++ - MediaFoundation シンクを列挙する
BlackMagic Decklink カードをソースとシンクとして使用して、MediaFoundation で完全なトポロジを構築しようとしています。MediaFoundation には、ソースを列挙する簡単な方法があります。
しかし、私の人生では、マシン上のシンクを列挙する簡単な方法を見つけることができず、公式ドキュメントから空になっています。これで運が良かった人はいますか?
c++ - Windows 7 で Windows Media Foundation を使用して Raw オーディオ ファイルを AAC に変換
私の質問を読んでくれてありがとう。
Qt と Windows API を使用して C++ アプリケーションを開発しています。
マイクロフォン出力を小さな 10 秒のオーディオ ファイルに raw 形式で録音していますが、それらを aac 形式に変換したいと考えています。
私はできる限り多くのことを読み込もうとしましたが、Windows Media Foundation トランスコード API から始めるのは素晴らしい考えだと思いました。
問題は、「CreateObjectFromUrl」関数で .raw ファイルまたは .pcm ファイルを使用できないように見えることです。それは失敗し続けます。hr リターン コードは 3222091460 です。関数に .mp3 ファイルを渡そうとしましたが、もちろん機能するので、url-human-failure は関係ありません。
MFCreateSourceResolver は正常に動作しますが、CreateObjectFromURL は成功しません:(
そこで、皆さんに 2 つの質問があります。
- Windows Media Foundation を使用して生のオーディオ ファイルを aac ファイルにエンコードすることは可能ですか?
- はいの場合、私が望むことを達成するために何を読むべきですか?
ソフトウェアのライセンスを購入する余裕がないため、ffmpeg や libav だけを使用することはできず、GPL ライセンスの下に置きたくないことを指摘したいと思います。しかし、生のオーディオ ファイルを aac にエンコードするための Windows Media Foundations に代わるものがある場合は、それを聞いて喜んでいます。
そして最後に、私の英語が下手で申し訳ありません。これは明らかに私の母国語ではありません。目が出血してしまったら申し訳ありません。(笑わせてくれたら嬉しい)
良い1日を
video - スクラブ後にレートを変更できなくなりました
簡単なシナリオ: ビデオ内の特定の位置をシークし、その後再生したいと考えています。
問題は、スクラブを有効にするために最初にレートを 0 に設定したSetRate()
ときに、後でビデオを実行できなくなったことです。レートを 0 から他の値に変更できないようです。を呼び出すことによってのみ、フレームステッピングを行うことができます。Start()
(レートを 0 に設定せずに) ビデオを実行するだけの場合、その後のレート変更は機能します。Start()
また、レートを 0 に設定し、再び正のレートに戻すと ( ) の間で実際にスクラブせずに、レートの変更が発生することにも気付きました!
「スクラブ モード」を終了するために必要な追加作業はありますか?
c++ - MKVファイル用のオープンソースWinRTライブラリ
WinRTでMKVファイルを再生しようとしています。WinRTで動作するようにすでに変換されているライブラリを知っている人はいますか?そうでない場合は、誰かが私を良い図書館の方向に向けて始めることができますか?私はこれまでMedia-Foundationの経験がないので、助けていただければ幸いです。
c++ - Windows Media Foundation の録音オーディオ
Windows Media Foundation API を使用して、マイクと使用可能なカメラの両方を列挙していますが、どちらも機能します。
ここに私の列挙コードがあります:
オーディオまたはカメラ キャプチャ デバイスを取得するには、 または と のいずれMF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_GUID
かを指定MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID
します。これは問題なく機能し、デバイスの名前と IMFActivate を取得できます。Web カメラを出力ビデオ ファイルに記録するコードはありますが、オーディオをファイルに記録する方法を理解するのに苦労しています。IMFSinkWriter を使用する必要があるという印象を受けましたが、オーディオ キャプチャ IMFActivate と IMFSinkWriter を使用する例が見つかりません。
私は Windows api プログラマーではないので、かなり単純な答えがあると確信していますが、COM のことは頭の中に少しあります。オーディオ形式に関しては、ファイルに含まれる限り、特に気にしません。wav、wma、または何でもかまいません。ビデオを録画していますが、ビデオ ファイルとオーディオ ファイルを別々にする必要があるため、ビデオ エンコーディングにオーディオを追加する方法がわかりません。
c++ - Windows Media Foundation は未加工の画像を使用してビデオをエンコードします
Web カメラ、マイク、および画面を記録する必要があるプロジェクトに取り組んでいます。私はWebカメラの記録を持っており、オーディオは進行中の作業であり、特定のモニター(複数のモニターがある場合)でデスクトップのRGB画像を取得するために、CMonitorラッパー(いくつかの小さな変更を加えました)に出くわしました。
生の RGB フレームを Windows Media Foundation にプッシュしてビデオ ファイルにエンコードするにはどうすればよいですか? 私の現在のビデオ エンコーディングでは、この msdn sampleのわずかに変更されたバージョンを使用していますが、新しいクラス ハンドラーを記述するよりも変更する方が簡単な場合です。
または、おそらく、私が知らない画面を記録するためのある種のメディア基盤ルートがあります (これは可能です。私はそれほど優れた win32 プログラマーではありません)。
windows - Media Foudationを使用したWMVエンコーディング:「Bフレーム数」の指定
MediaFoundationSDKを使用してビデオをWMVにエンコードしています。プロパティを使用してBフレームの数を設定できることはわかりますが、設定方法や設定場所がわかりません。
このプロパティはMFPKEY_NUMBFRAMESと呼ばれ、ここで説明されています:http: //msdn.microsoft.com/en-us/library/windows/desktop/ff819354%28v=vs.85%29.aspx
私たちのコードは大まかに次のことを行います。
- MFStartupを呼び出す
- MFCreateAttributesを1回呼び出すと、マルチプレクサ、ビデオ、およびオーディオの属性を設定できます。
- たとえば、ビデオビットレートを設定して、前の手順で作成したIMFAttributesを構成します。pVideoOverrides-> SetUINT32(MF_MT_AVG_BITRATE、m_iVideoBitrateBPS);
- IMFReadWriteClassFactory :: CreateInstanceFromURLを呼び出して、シンクライターを作成します
- フレームごとに、シンクライターでWriteSampleを呼び出します
- MFShutdownに電話する
ビデオビットレートも設定するIMFAttributeにb-framesプロパティを設定する必要がありますか?
windows-8 - C++ コードを使用して IMFMediaBuffer に長方形を直接描画する
現在、 Media Foundation Transformからサンプルを変更しようとしています。私は次のことを達成する傾向があります
- C++ コードで顔検出を実行します。
- 顔検出座標を C# コードに返します。
- C# で、検出された顔の四角形を画面に描画します。
ステップ 1 を完了しました。ただし、ステップ 2 で吸い込まれています。次のような同様の問題に直面しています: How to get feedback from MediaCapture API in Windows 8 . C++ MFT コードを作成し、C# コードと対話する方法が見つかりません。
別の回避策を考えていました。C++ コードを使用して長方形を直接描画します。IMFMediaBuffer
ただし、Microsoft がそのような API を提供しているとは思いません。そうでない場合、私が使用できる正しい方法は何ですか?
c++ - Media Foundation を使用したビデオ合成
2 つのビデオを 1 つ (オーディオも) に合成し、ファイルとして保存しようとしています。たとえば、最終的なビデオの左半分にソース ビデオを表示し、右側に別のソースを表示します。どんなエンコーディングでも構いません。DirectShow ではありません。
IMFVideoMixerControl がこれに関連している可能性があると思いましたが、残念ながら私は MF に慣れていないため、これを達成するための正しい手順を判断できません。何らかのガイダンスを提供できる場合、またはウェブで利用可能な例があれば教えてください。ご協力ありがとうございました。