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()); }