本文介绍了如何录制由网络摄像头拍摄的视频?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的代码似乎有错误,因为视频文件输出与网络摄像头捕获的不一样。

我能问帮助吗?



My Code Seems Have Bug Because The Video File Output Is Not the same As Captured By Web Camera.
Can I Ask Help?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using AForge.Video.FFMPEG;
using AForge.Video;
using AForge.Video.DirectShow;
using AForge.Video.VFW;
namespace webcam
{
    public partial class Form1 : Form
    {
        private FilterInfoCollection VideoCaptureDevices;
        private VideoCaptureDevice FinalVideo;
        public static Bitmap _latestFrame;
        Graphics g;
        private Bitmap video;


        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            VideoCaptureDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            foreach (FilterInfo VideoCaptureDevice in VideoCaptureDevices)
            {
                comboBox1.Items.Add(VideoCaptureDevice.Name);
            }
            comboBox1.SelectedIndex = 0;
        }


        private void button1_Click(object sender, EventArgs e)
        {
            FinalVideo = new VideoCaptureDevice(VideoCaptureDevices[comboBox1.SelectedIndex].MonikerString);
            FinalVideo.NewFrame += new NewFrameEventHandler(FinalVideo_NewFrame);
            FinalVideo.Start();
        }

        void FinalVideo_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            video = (Bitmap)eventArgs.Frame.Clone();
            g = Graphics.FromImage(video);
            g.DrawString(DateTime.Now.ToString(), new Font("Arial", 30), new SolidBrush(Color.Green), new PointF(2, 2));
            g.Dispose();
            pictureBox1.Image = video;


        }

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            if (FinalVideo.IsRunning)
            {
                FinalVideo.Stop();
            }
        }

        private void btnRecord_Click(object sender, EventArgs e)
        {

            AVIWriter writer = new AVIWriter("wmv3");
            writer.Open("test.avi", 320, 240);
            Bitmap image = new Bitmap(320, 240);
            for (int i = 0; i < 240; i++)
            {
                image.SetPixel(i, i, Color.Red);
                writer.AddFrame(image);
            }
            writer.Close();
        }
    }
}

推荐答案


这篇关于如何录制由网络摄像头拍摄的视频?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-04 22:59