Exemple #1
0
        public void Start()
        {
            Break = false;

            audioBuffer = new CircularBuffer <MediaData>();
            videoBuffer = new CircularBuffer <MediaData>();

            ffmpegMedia = new FFmpegMedia();

            FFmpegMedia.LogDataReceived += (log) => { Logger.Write(log, EnumLoggerType.LogFile); };

            inVideoParams = MediaDevice.ONVIF.GetInputCodecParams();

            outVideoParams = new CodecParams(CodecType.MPEG4, inVideoParams.Width, inVideoParams.Height);

            ffmpegMedia.VideoDecoderParams = inVideoParams;
            ffmpegMedia.VideoEncoderParams = outVideoParams;

            string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyVideos), "PanasonicVideo");

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }

            string file = String.Format(@"{0}_{1}x{2}_to_{3}_{4}x{5}_{6:yyyy-MM-dd_HH-mm-ss}.{7}",
                                        inVideoParams.ID, inVideoParams.Width, inVideoParams.Height,
                                        outVideoParams.ID, outVideoParams.Width, outVideoParams.Height,
                                        DateTime.Now,
                                        "mkv");

            string filepath = Path.Combine(path, file);

            ffmpegMedia.OutputFilename = filepath;
            //ffmpegProcessor.Start();

            ffmpegMedia.VideoFrameReceived += ProcessVideoFrame;
            ffmpegMedia.AudioFrameReceived += ProcessAudioFrame;

            videoEvent = new AutoResetEvent(true);
            audioEvent = new AutoResetEvent(true);

            videoWorker = new Thread(ProcessVideo);
            audioWorker = new Thread(ProcessAudio);

            ffmpegMedia.Open();

            videoWorker.Start();
            audioWorker.Start();

            //videoWorker = Task.Factory.StartNew(() => ProcessVideo());
            //audioWorker = Task.Factory.StartNew(() => ProcessAudio());
        }
        public void Start()
        {
            Break = false;

            audioBuffer = new CircularBuffer<MediaData>();
            videoBuffer = new CircularBuffer<MediaData>();

            ffmpegMedia = new FFmpegMedia();

            FFmpegMedia.LogDataReceived += (log) => { Logger.Write(log, EnumLoggerType.LogFile); };

            inVideoParams = MediaDevice.ONVIF.GetInputCodecParams();

            outVideoParams = new CodecParams(CodecType.MPEG4, inVideoParams.Width, inVideoParams.Height);

            ffmpegMedia.VideoDecoderParams = inVideoParams;
            ffmpegMedia.VideoEncoderParams = outVideoParams;

            string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyVideos), "PanasonicVideo");

            if (Directory.Exists(path) == false)
                Directory.CreateDirectory(path);

            string file = String.Format(@"{0}_{1}x{2}_to_{3}_{4}x{5}_{6:yyyy-MM-dd_HH-mm-ss}.{7}",
                inVideoParams.ID, inVideoParams.Width, inVideoParams.Height,
                outVideoParams.ID, outVideoParams.Width, outVideoParams.Height,
                DateTime.Now,
                "mkv");

            string filepath = Path.Combine(path, file);

            ffmpegMedia.OutputFilename = filepath;
            //ffmpegProcessor.Start();

            ffmpegMedia.VideoFrameReceived += ProcessVideoFrame;
            ffmpegMedia.AudioFrameReceived += ProcessAudioFrame;

            videoEvent = new AutoResetEvent(true);
            audioEvent = new AutoResetEvent(true);

            videoWorker = new Thread(ProcessVideo);
            audioWorker = new Thread(ProcessAudio);

            ffmpegMedia.Open();

            videoWorker.Start();
            audioWorker.Start();

            //videoWorker = Task.Factory.StartNew(() => ProcessVideo());
            //audioWorker = Task.Factory.StartNew(() => ProcessAudio());
        }