最近入手したEasyCap 4 チャンネル USB DVR デバイスからカメラ フィードをキャプチャしようとして
いますが、スーパー Mimi モノクロ/カラー カメラを購入して DVR デバイスに接続し、ドライバーを使用してデバイスを正しくセットアップすることができました」 SMI Grabber」をインストールし、デバイス「SuperViewer」に付属のソフトウェアをインストールし、カメラ フィードをプレビューするため
の単純な Windows フォーム アプリケーションを作成し
ました (下部に編集があります)コード:PictureBox
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DirectX.Capture;
namespace DirectShowWithCrossbar
{
public partial class Form1 : Form
{
private CrossbarSource crossbar;
private Filters filters;
private Capture capture;
public Form1()
{
InitializeComponent();
filters = new Filters();
capture = new Capture(filters.VideoInputDevices[0], filters.AudioInputDevices[0]);
foreach (Filter device in filters.VideoInputDevices)
{
comboBox1.Items.Add(device);
}
if (comboBox1.Items.Count > 0)
comboBox1.SelectedIndex = 0;
foreach (Filter device in filters.AudioInputDevices)
{
comboBox2.Items.Add(device);
}
if (comboBox2.Items.Count > 0)
comboBox2.SelectedIndex = 0;
foreach (Source source in capture.VideoSources)
{
comboBox3.Items.Add(source);
}
if (comboBox3.Items.Count > 0)
comboBox3.SelectedIndex = 0;
ShowPropertPagesInMenuStrip();
crossbar = (CrossbarSource)capture.VideoSource;
crossbar.Enabled = true;
capture.PreviewWindow = pictureBox1;
}
private void ShowPropertPagesInMenuStrip()
{
foreach (PropertyPage pro in capture.PropertyPages)
{
menusToolStripMenuItem.DropDownItems.Add(new ToolStripMenuItem(pro.Name));
}
}
private void button1_Click(object sender, EventArgs e)
{
capture.Cue();
capture.Start();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
capture.Stop();
capture.Dispose();
}
private void comboBox3_SelectedIndexChanged(object sender, EventArgs e)
{
capture.VideoSource = (Source)comboBox3.SelectedItem;
}
}
}
画像ボックスに黒い画面が表示されました??
誤ってアプリケーションを閉じた後、 DVR デバイスに付属のSuperViewerアプリケーションを実行してアプリケーションを開くと、ピクチャボックスにカメラからのフィードが表示され始めました。元のソフトウェアからのフィードがフリーズします!!
DirectX.Capture の例とソースは、同じ結果http://www.codeproject.com/Articles/3566/DirectX-Capture-Class-Libraryで試しました。OpenCVとTouchless
も使用しましたが、同じ結果が得られました:(編集:
私は検索していて、フィルター(IAMCrossbar)を取得する必要があることがわかりました。それが問題だと思います
ビデオソースを変更するDirectShow USB Webカメラと、このリンクの変更をDirectX.Capture Wrapperに適用した後でも、同じ結果が得られます:(事前にYaser
の助けをありがとう