問題タブ [vfw]

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 投票する
1 に答える
156 参照

video - ダイアログ ウィンドウに他のコーデックを追加する方法は?

VFW (WM_CAP_GET_VIDEOFORMAT) からのビデオ形式リストを使用して dlg ウィンドウを呼び出すと、2 つの位置しかありません。そのうちの 1 つ - MJPG (Motion JPG) を選択すると、ビデオ キャプチャが黒い画面になります。動作しませんが、選択可能です。YUY2 は正常に動作し、管理方法もわかっています。

DLG_GET_VIDEOFORMAT

反対側から見ると、インストールされているすべてのコーデックのリストを見ると、MJPG と YUY2 だけではありません。

  1. ICM Microsoft RLE MRLE msrle32.dll 6.1.7601.17514
  2. ICM Microsoft ビデオ 1 MSVC msvidc32.dll 6.1.7601.17514
  3. ICM マイクロソフト YUV UYVY msyuv.dll 6.1.7601.17514
  4. ICM Кодек Intel IYUV IYUV iyuv_32.dll 6.1.7601.17514 ICM 東芝
  5. ICM YUV コーデック Y411 tsbyuv.dll 6.1.7601.17514
  6. ICM Кодек Cinepak、Radius 製 cvid iccvid.dll 1.10.0.13

ICM (Image Color Management) と RLE (8 ビットのビットマップ圧縮) があります。その他。ただし、ダイアログには 2 つしか表示されません (MJPG は機能しません)。

それはどのように機能しますか?ダイアログ ウィンドウに他のコーデックを追加する方法と、VFW から有効にする方法は? SET_VIDEOFORMAT を無駄に試しました.. 1つだけ-YUY2が受け入れられ、設定できました。

カメラ - ドライバー - vfw COM グラフ ビルダーの原則について詳しく教えてください。たとえば、ICM Microsoft RLE コーデックを追加するにはどうすればよいですか?

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

windows - Webcam オーディオ キャプチャ コールバックから直接 WaveOutWrite

VFW とオーディオ キャプチャ コールバックを使用して、Webcam からオーディオデータをキャプチャしています。同時に、同じキャプチャ コールバックの本体内で、waveOutWrite を使用して、サンプリングされたデータをデフォルトの MAPPER に転送します。

Webcam からの信号品質は、1 チャネル/8 ビット/11025 サンプル/秒です。FORMAT_QUERYフラグを指定したwaveOpenのおかげで、サウンド形式はデフォルトのオーディオ デバイスでサポートされています。

waveWriteOutの戻り値はNOERRORですが、私の予想とはかけ離れています。部屋の中は静かで、空のホワイトノイズのような音のはずです。

Pls、音のYouTube録音を聞いてください

16K 程度のサイズのパックごとに開始し、WAVEHDR 構造は問題ありません。その後、徐々に速度が低下し、システムの回復不能エラーで終了します。

それは何に似ていますか?

以下は VFW からのオーディオ dta レシーバー コードです。lpWHdr は視覚的には問題ありません。内部フラグが 2 = Prepared にトリガーされていても、VFW と WaveAudio が互いに作成されているようです :)

DateTimeミリ秒のスタンプが表示され、1400ミリ秒ごとに刻み、サンプルレート= 11025であり、バッファサイズは約16500バイト= OKのように見えるため、バッファはオーバーランしていないと思います..

UPD:管理されていないバッファーを管理対象にコピーし、その値を調べました。鋸歯または過負荷の副鼻腔のように見えます。0 4 0 3 0 32 109 213 255 251 255 243 241 97 0 7 0 2 1 1 0 5 0 そして、ほぼ同じ数と同じ周期で再び上下します。正確ではありませんが、ほぼ同じです (+/-)。また、そのカムからの信号を内蔵の Windows レコーダーを使用して録音することもできます。また、信号レベルが上下にジャンプするように、自分の声の上下が見えるので、Web カメラのマイクも問題ありません。 VFW入力オーディオ信号フィーダーが間違っています。WAVEFORMATEX を受け入れて WAVEHDR を送り返しても、どちらも問題ありません... しかし、バッファ データには Web カメラではなく他のソースが入力されていますが、VFW は Web カメラからのものである必要があると言っています。 、そしてそれは機能しています。私は1つの余分なメッセージを追加しました: SendMessage(camHwnd, WM_CAP_SET_CALLBACK_WAVESTREAM, 0, audioCallback); VFW の代わりに waveIn を使用すれば、問題なく動作することはほぼ確実です.後で確認します..

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

c++ - 小さいサイズのビデオを出力する Directshow リアルタイム圧縮

そこで、WDM キャプチャ ソースからビデオ ストリームを表示およびキャプチャするアプリケーションを作成しました。問題は、ファイル サイズが大きすぎることです (つまり、7 分間のビデオは 1.5 GB になります)。グラフ「ffdshowエンコーダー」ですでにエンコーダーを使用していますが、さらに圧縮された出力ビデオが必要です。

これは私が使用しているグラフです:

Directshow グラフ

x264、x265などの他のエンコーダーを使用しようとしましたが、検索の結果、エンコーダー自体がフィルターとして表示されず、VFWとしてラップする必要があることがわかったので、x264用のVFWラッパーをダウンロードしてインストールしましたおよび x265 エンコーダー。それでもグラフに表示されなかったので、さらに検索したところ、32ビットバージョンのグラフエディターにのみ表示され、64ビットバージョンのソフトウェアでは機能しない/表示されないことがわかりました。私は立ち往生しました。

しかし、さらに検索した後、このgithubプロジェクトに出くわしました:

https://github.com/RenderHeads/DirectShow-vfwFilter

これは基本的に 32 ビット vfw の 64 ビット ラッパーなので (私が理解している限り)、ダウンロードして試してみたところ、x264vfw エンコーダーを使用して比較的小さなビデオ ファイルを出力することができました。しかし、このフィルターに関する私の問題は、以下に示すように構成を保存しないことでした

VFW ラッパー

そして、これは私が今立ち往生している場所です。小さな出力ファイルを取得するには、優れたコンプレッサー/エンコーダーが必要です。

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

c++ - AVIFileInit() のセグメンテーション違反

私は現在、XP の GCC コンパイラで Code::Blocks を使用しています。次のテスト コードで AVIFileInit() を呼び出すと、セグメンテーション エラーが発生します。

この問題の原因または解決策が見つかりません。どんな助けでも大歓迎です。