0

hello,
I am trying to record video by aviwriter class in aforge but the resulting avi file is either 0Kb or the whole video is viewing only one picture

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;
using AForge.Video.DirectShow;
using AForge.Video.FFMPEG;
using AForge.Video.VFW;
using System.IO;
namespace WindowsFormsApplication12
{
    public partial class Form1 : Form
    {
        private FilterInfoCollection videocapturedevices;
        private VideoCaptureDevice finalvideo;
        public Form1()
        {
            InitializeComponent();
        }
        private void pictureBox1_Click(object sender, EventArgs e)
        {
        }
        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)
        {
            //FilterInfoCollection x = new FilterInfoCollection(FilterCategory.VideoCompressorCategory);
            //foreach (FilterInfo y in x)
            //{
            //    MessageBox.Show(y.Name);
            //}
            Bitmap video = (Bitmap)eventArgs.Frame.Clone();
            //MessageBox.Show(video.Width.ToString());
            //MessageBox.Show(video.Height.ToString());
            pictureBox1.Image = video;
            // instantiate AVI writer, use WMV3 codec
            AVIWriter writer = new AVIWriter("DivX");
            // create new AVI file and open it
            writer.Open("test1.avi", 640, 480);
            // create frame image
            for (int i = 0; i < 576; i++)
            {
                // update image
                // add the image as a new frame of video file
                writer.AddFrame(video);
            }
            writer.Close();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            if (finalvideo.IsRunning)
            {
                finalvideo.Stop();
            }
            this.Close();
        }
    }
}

can u help me?

2
Contributors
1
Reply
4
Views
4 Years
Discussion Span
Last Post by Momerath
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.