1

最近入手した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で試しました。OpenCVTouchless も使用しましたが、同じ結果が得られました:(編集: 私は検索していて、フィルター(IAMCrossbar)を取得する必要があることがわかりました。それが問題だと思います
私のソフトウェアと私の実行している SuperViewer の両方が動作していますが、もう一方はフリーズしています


ビデオソースを変更するDirectShow USB Webカメラと、このリンクの変更をDirectX.Capture Wrapperに適用した後でも、同じ結果が得られます:(事前にYaser
の助けをありがとう

4

1 に答える 1