Open() public method

Create new AVI file and open it for writing.

The method opens (creates) a video files, configure video codec and prepares the stream for saving video frames with a help of AddFrame method.

Failed opening the specified file. A error occurred while creating new video file. See exception message. Insufficient memory for internal buffer. Video file resolution must be a multiple of two.
public Open ( string fileName, int width, int height ) : void
fileName string AVI file name to create.
width int Video width.
height int Video height.
return void
Ejemplo n.º 1
2
        public CameraRecorder(string address)
        {
            this.address = address;
            stream = new MJPEGStream(address + "/image?speed=0");

            recorder = new AVIWriter("XVID");
            recorder.FrameRate = 10;
            recorder.Open("c:\\test.avi", 736, 480);

            stream.NewFrame += newFrameEvent;

            stream.Login = "******";
            stream.Password = "******";
            stream.Start();
        }
Ejemplo n.º 2
0
        public void StartRecording()
        {
            if (!RecordVideo)
            {
                DateTime date = DateTime.Now;
                string filePath = _folderPath + String.Format("\\{0}-{1}-{2} {3}-{4}-{5}.avi",
                    date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second);
                int width = 640;
                int height = 480;
                int frameRate = 15;
                
                try
                {
                    if (!Directory.Exists(_folderPath))
                        Directory.CreateDirectory(_folderPath);

                    _aviWriter = new AVIWriter("wmv3");
                    _aviWriter.FrameRate = frameRate;
                    _aviWriter.Open(filePath, width, height);

                    SendMessage("recording");
                    AddClient(this);
                    RaiseRecordEvent();
                    RecordVideo = true;
                }
                catch
                {
                    if (_aviWriter != null)
                    {
                        _aviWriter.Dispose();
                        _aviWriter = null;
                    }
                }
            }
        }
Ejemplo n.º 3
0
 public AviWriter(String path, int width = 0, int height = 0)
 {
     if (width == 0 || height == 0)
     {
         path += ".stream";
         videoStream = File.Create(path, 1392640);
     }
     else
     {
         path += ".avi";
         videoWriter = new AVIWriter("ffds");
         videoWriter.FrameRate = 12;
         videoWriter.Open(path, width, height);
     }
 }
Ejemplo n.º 4
0
        public Video(String input, String output, int length, String extension, int LSB, String password)
        {
            Length = length;
            Extension = extension;
            this.LSB = LSB;
            Password = ToPasswordSeed(password);
            SumPNSRFrame = 0;
            SumPNSR = 0;
            PNSR = 0;

            reader = new AVIReader();
            writer = new AVIWriter();

            reader.Open(input);
            writer.Open(output, reader.Width, reader.Height);
            ResetWriteByte();

            HideHeader();
        }
Ejemplo n.º 5
0
        static void Main()
        {
            AVIWriter writer = new AVIWriter("xvid");
            // instantiate AVI reader
            AVIReader reader = new AVIReader();
            // open video file
            reader.Open("test2.avi");
            // create new AVI file and open it
            writer.Open("testOut2.avi", reader.Width, reader.Height);

            //WebClient webClient = new WebClient();
            //webClient.DownloadFile("http://maps.googleapis.com/maps/api/staticmap?center=-15.800513,-47.91378&zoom=11&size=200x200&sensor=false", @"C:\Users\GaliaTodorova\Dropbox\Telerik_wf\OOP\TeamWork\test.png");



            //Bitmap flag = new Bitmap(@"C:\Users\GaliaTodorova\Dropbox\Telerik_wf\OOP\TeamWork\test.png");  //galia
            //Bitmap toFrame = new Bitmap(flag, new Size(reader.Width, reader.Height));
            //toFrame.MakeTransparent();
            // read the video file
            while (reader.Position - reader.Start < reader.Length)
            {
                // get next frame
                Bitmap image = reader.GetNextFrame();
                for (int t = 0; t < reader.Position - reader.Start; t++)
                {
                    /*using (Graphics grfx = Graphics.FromImage(image))
                    {
                     grfx.DrawImage(flag, 0, 0);
                    }*/
                    if (t >= reader.Width)
                        break;
                    int y = (int)(reader.Height / 2 + Math.Sin(((float)t) / 50) * reader.Height / 3);
                    image.SetPixel(t, y - 1, Color.Red);
                    image.SetPixel(t, y, Color.Red);
                    image.SetPixel(t, y + 1, Color.Red);
                }
                writer.AddFrame(image);
            }
            reader.Close();
            writer.Close();
        }
Ejemplo n.º 6
0
        private void button4_Click(object sender, EventArgs e)
        {
            stopzapis       = false;
            button5.Enabled = true;
            button4.Enabled = false;
            if (vkl)
            {
                writer = new AForge.Video.VFW.AVIWriter("XviD");

                if (str.Length > 0)
                {
                    pathvideo = str + "\\" + System.DateTimeOffset.UtcNow.UtcDateTime.ToShortDateString() + " " + System.DateTimeOffset.UtcNow.UtcDateTime.Hour.ToString() + " " + System.DateTimeOffset.UtcNow.UtcDateTime.Minute.ToString() + " " + System.DateTimeOffset.UtcNow.UtcDateTime.Second.ToString() + ".avi";
                }
                else
                {
                    pathvideo = System.DateTimeOffset.UtcNow.UtcDateTime.ToShortDateString() + " " + System.DateTimeOffset.UtcNow.UtcDateTime.Hour.ToString() + " " + System.DateTimeOffset.UtcNow.UtcDateTime.Minute.ToString() + " " + System.DateTimeOffset.UtcNow.UtcDateTime.Second.ToString() + ".avi";
                }
                writer.Open(pathvideo, 640, 480);
                cam.NewFrame += new NewFrameEventHandler(video_NewFrame);
            }
        }
Ejemplo n.º 7
0
        public void StartRecording()
        {
            if (!RecordVideo)
            {
                DateTime date = DateTime.Now;
                string filePath = folderPath + String.Format("\\{0}-{1}-{2} {3}-{4}-{5}.avi",
                    date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second);
                int width = 640;
                int height = 480;
                int frameRate = 15;

                try
                {
                    if (!Directory.Exists(folderPath))
                        Directory.CreateDirectory(folderPath);

                    SendMessage("recording");
                    // create AVI writer
                    aviWriter = new AVIWriter("wmv3");
                    aviWriter.FrameRate = frameRate;
                    // open AVI file
                    aviWriter.Open(filePath, width, height);
                    // register as a client to receive frame
                    AddClient(this);
                    RaiseRecordEvent();

                    RecordVideo = true;
                }
                catch (ApplicationException)
                {
                    if (aviWriter != null)
                    {
                        aviWriter.Dispose();
                        aviWriter = null;
                    }
                }
            }
        }
Ejemplo n.º 8
0
 public void Start()
 {
     writer_ = new AVIWriter();
     writer_.Open(FileName, OutputSize.Width, OutputSize.Height);
 }
Ejemplo n.º 9
0
        public static void VidTest()
        {
            List<Bitmap> frames = new List<Bitmap>();

            AVIWriter aw = new AVIWriter("DIB ");
            aw.FrameRate = 15;
            aw.Open("test2.avi",320,240);
            int i = 0;
            string surl = "";
            MJPEGStream ms = new MJPEGStream();
            ms.Login = "";
            ms.Password = "";
            ms.Source = surl;
            ms.NewFrame += (sender, e) =>
            {
                i++;
                //frames.Add(e.Frame);
                aw.AddFrame(e.Frame);
                e.Frame.Save("test" + i.ToString() + ".jpg", ImageFormat.Jpeg);

            //	            ((MJPEGStream)sender).Stop();
            };

            ms.Start();
            System.Threading.Thread.Sleep(4000);
            ms.Stop();
            aw.Close();

            //
        }
Ejemplo n.º 10
0
        public TestForm(string userId, bool load)
        {
            InitializeComponent();
            uId = userId;
            if (load)//загружаем старую сессию
            {
                test = XML.LoadUserData(userId, out idQuestions, out idAnswers, out time, out curQuestion, out trueAnswers, out date);
            }
            else
            {
                test = XML.LoadRandQuestions(out idQuestions);//загружаем вопросы
                date = DateTime.Now.ToString();
            }
            timer.Interval = new TimeSpan(0, 0, 1); //тик в каждую секунду
            timer.IsEnabled = true;
            timer.Tick += new EventHandler(timer_Tick);
            cUsrId.Content = userId;
            cAmountQuestions.Content = test.Count; //отображаем, сколько всего будет вопросов
            сCurQuestion.Content = curQuestion;//показываем номер текущего вопроса
            ShowQuestion(curQuestion - 1);//загружаем в форму содержимое вопроса
            //начинаем запись видео

            Rectangle screenArea = Rectangle.Empty;
            foreach (System.Windows.Forms.Screen screen in System.Windows.Forms.Screen.AllScreens) //получаем размер экрана
            {
                screenArea = Rectangle.Union(screenArea, screen.Bounds);
            }
            string videoPath = MainWindow.path + "\\video\\" + DateTime.Now.Date.ToShortDateString();
            DirectoryInfo dir = new DirectoryInfo(videoPath);
            //записи хранятся рассортированными по папкам с датой в названии
            if (!dir.Exists)//проверяем, есть ли уже папка с сегодняшней датой
                dir.Create(); //если нет, то создаем ее
            int vidCount = dir.EnumerateFiles(userId + "*").Count(); //проверяем, есть ли уже записи с тамим именем
            if (vidCount ==0 )
                videoPath = MainWindow.path + "\\video\\" + DateTime.Now.Date.ToShortDateString() + "\\" + userId + ".avi";
            else
                videoPath = MainWindow.path + "\\video\\" + DateTime.Now.Date.ToShortDateString() + "\\" + userId + "_"+ vidCount + ".avi"; //если есть, то добавим порядковый номер

            stream = new ScreenCaptureStream(screenArea);
            stream.NewFrame += new NewFrameEventHandler(video_NewFrame);
            stream.FrameInterval = 100 / FRAMERATE;
            try
            {
                writer = new AVIWriter("XVID");
                writer.FrameRate = FRAMERATE;
                writer.Quality = 1;
                writer.Open(videoPath, screenArea.Width, screenArea.Height);
                stream.Start();
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            
        }
Ejemplo n.º 11
0
 private void DoRecord(object obj)
 {
     AVIWriter writer = new AVIWriter();
     writer.Open( System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\video" + String.Format("{0:_dd-M-yyyy_hh-mm-ss}", DateTime.Now) + ".avi", this.imgWidth, this.imgHeight);
     writer.FrameRate = 15;
     // as long as we're recording
     // we dequeue the BitMaps waiting in the Queue and write them to the file
     while (IsRecording)
     {
         if (frames.Count > 0)
         {   
             
             Bitmap bmp = frames.Dequeue();
             writer.AddFrame(bmp);
         }
     }
     writer.Close();
     
 }
Ejemplo n.º 12
0
        public void hide(byte[] mbyte, bool bitLSB)
        {
            //Message to BitArray
            BitArray bitarray = new BitArray(mbyte);
            //bool[] bools = new bool[200000];
            //byte[] bytes = new byte[200000];

            //Convert key to seed
            byte[] k_ = Encoding.ASCII.GetBytes(key);
            Int32 seed = 0;
            foreach(byte b_ in k_)
            {
                seed += b_;
            }

            //Get all frame from .avi
            bitmapL = new List<Bitmap>();
            while(reader.Position - reader.Start < reader.Length)
            {
                bitmapL.Add(reader.GetNextFrame());
            }

            //Find frame and pixel position
            Random rand = new Random(seed);
            //for(int i = bitarray.Length-1; i > -1; i--)
            for (int i = 0; i < bitarray.Length; i++)
            {
                int frameIdx = rand.Next(reader.Length);
                int x = rand.Next(reader.Width);
                int y = rand.Next(reader.Height);

                Bitmap frame = bitmapL.ElementAt(frameIdx);
                Color c = frame.GetPixel(x,y);

                //mode 1-LSB
                if (bitLSB)
                {
                    byte byteb = c.B;
                    if (bitarray.Get(i)) byteb = (byte)((byteb & MED) | (HEX_1));
                    else byteb = (byte)((byteb & MED) | (HEX_0));
                    frame.SetPixel(x, y, Color.FromArgb(c.R, c.G, byteb));
                    //c = frame.GetPixel(x, y);
                    //bools[i] = c.B % 2 == 1; bytes[i] = c.B;
                }
                else
                //mode 2-LSB
                {
                    byte byteb = c.B;
                    byte byteg = c.G;
                    if (bitarray.Get(i)) byteb = (byte)((byteb & MED) | (HEX_1));
                    else byteb = (byte)((byteb & MED) | (HEX_0));
                    i++;
                    if (bitarray.Get(i)) byteg = (byte)((byteg & MED) | (HEX_1));
                    else byteg = (byte)((byteg & MED) | (HEX_0));

                    frame.SetPixel(x, y, Color.FromArgb(c.R, byteg, byteb));
                    //c = frame.GetPixel(x, y);
                    //bools[i] = c.B % 2 == 1; bytes[i] = c.B;
                    //bools[i] = c.G % 2 == 1; bytes[i] = c.G;
                }
            }

            //String s = System.Text.Encoding.ASCII.GetString(BoolArrayToBytes(bools));
            //write new .avi file
            AVIWriter writer = new AVIWriter();
            writer.Open(output,reader.Width,reader.Height);
            foreach(Bitmap bitmap in bitmapL)
            {
                writer.AddFrame(bitmap);
            }

            reader.Close();
            writer.Close();
        }
        private void ShowVideoSaveDialog()
        {
            Microsoft.Win32.SaveFileDialog saveVideoDialog = new Microsoft.Win32.SaveFileDialog();
            saveVideoDialog.Title = "Save RGB Video file";
            saveVideoDialog.DefaultExt = ".avi";
            saveVideoDialog.Filter = "AVI files (*.avi)|*.txt|All files (*.*)|*.*";
            saveVideoDialog.FileName = string.Format("pedtracvideo-{0:yyyy-MM-dd_hh-mm-ss}.avi",DateTime.Now);

            Nullable<bool> result = saveVideoDialog.ShowDialog();
            if (result == true)
            {
                this.videoFileName = saveVideoDialog.FileName;
                aviWriter = new AVIWriter()
                {
                    FrameRate = 30
                };

                aviWriter.Open(videoFileName, 640, 480);
                isRecordingVideo = true;
            }
        }
Ejemplo n.º 14
0
        public void sendFrame(Bitmap frame, string Name)
        {
            if (alarmInterval > 0)
            {
                if (!audioPlayed && options.EnableAlertSound)
                {
                    try
                    {
                        Log.debug(String.Format("Playing audio file {0} for camera {1}",options.AlertSoundFile,options.Name));
                        audioPlayed = true;
                        SoundPlayer simpleSound = new SoundPlayer(options.AlertSoundFile);
                        simpleSound.Play();
                    }
                    catch (Exception e)
                    {
                        Log.error(String.Format("Unable to play audio file for {0}. Error: {1}",options.Name, e.Message));
                    }
                }
                if (recording && options.EnableRecording && frameDropThreshold <= MAX_FRAME_DROP)
                {
                    try
                    {
                        if (videoWriter == null)
                        {
                            DateTime now = DateTime.Now;
                            string file = String.Format("{0}-{1:D4}.{2:D2}.{3:D2}-{4:D2}.{5:D2}.{6:D2}.avi", options.Name, now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second);
                            string fullpath = Path.Combine(options.RecordFolder, file);

                            Log.debug(String.Format("Creating new Video Writer {0} with codec {1}",
                                fullpath, options.Codec));

                            videoWriter = new AVIWriter(options.Codec.Code);
                            videoWriter.Open(fullpath, frame.Width, frame.Height);
                        }

                        videoWriter.AddFrame(frame);
                    }
                    catch (Exception io)
                    {
                        frameDropThreshold++;
                        videoWriter = null;
                        Log.warn(String.Format("Error writing video frame for {0}. Record Folder: {1}. Message: {2}", options.Name, options.RecordFolder, io.Message));
                        if(frameDropThreshold == MAX_FRAME_DROP) {
                            Log.error(String.Format("Maximum ({0}) frames failed for {1}. Dropping all frames until next motion alert",MAX_FRAME_DROP,options.Name));
                        }
                    }
                }
            }
        }
Ejemplo n.º 15
0
 private void startRecord(string path, int fps)
 {
     string fileName = ("cam-" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss" + ".avi"));
     recorder = new AVIWriter("XVID");
     recorder.FrameRate = fps;
     recorder.Open(path + "\\"+fileName, 736, 480);
     startTime = DateTime.Now;
 }
Ejemplo n.º 16
0
        private void RecordButton_Click(object sender, EventArgs e)
        {
            if (!recordVideo)
            {
                SaveFileDialog dialog = new SaveFileDialog();

                dialog.Filter = "Plik AVI (*.avi)|*.avi";
                dialog.FilterIndex = 1;
                dialog.RestoreDirectory = true;
                if (dialog.ShowDialog() == DialogResult.OK)
                {
                    writer = new AVIWriter("cvid");
                    writer.FrameRate = 5;
                    var width = videoSource.VideoResolution.FrameSize.Width;
                    var height = videoSource.VideoResolution.FrameSize.Height;

                    writer.Open(dialog.FileName, width, height);
                    recordVideo = true;
                    RecordButton.Name = "Stop recording";
                }
            }
            else
            {
                recordVideo = false;
                captureThread.Join();
                writer.Close();
                RecordButton.Name = "Recording";
            }
        }
Ejemplo n.º 17
0
        private void button1_Click(object sender, EventArgs e)
        {
            string res="8";

            if (conf.HighResolution)
            {
                res = "32";
            }
            else
            {
                res = "8";
            }

            stream = new MJPEGStream(conf.Address+"/image?speed=0");
            stream.NewFrame += videoSource_NewFrame;
            a = new AVIWriter("wmv3");
            a.FrameRate = 20;
            a.Open("c:\\test.avi", 736, 480);
            stream.Login = conf.UserName;
            stream.Password = conf.Password;
            button1.Enabled = false;
            button2.Enabled = true;

            //motionDetector = new MotionDetector(new TwoFramesDifferenceDetector(), new MotionAreaHighlighting());

            videoSourcePlayer1.VideoSource = stream;
            stream.Start();
            Text = "[Conectado] IPCam";
        }