public void ChangeVideoCfg(VideoEncodeCfg vCfg) { try { _vCfg = vCfg; if (_ce != null) { _ce.Error -= OnError; _ce.Stop(); _ce.Dispose(); _ce = null; } if (_vCfg.Params.ContainsKey("ScreenEncode") && (int)_vCfg.Params["ScreenEncode"] == 1) { _ce = new ScreenaEncoder(_vCfg, OnCaptured); } else { _ce = new CameraEncoder(_vCfg, OnCaptured); } _ce.Error += OnError; if (_isRuning) { if (IsVideoPub) { _ce.Start(); } } } catch (Exception e) { OnError(e); Stop(); } }
public MediaCapturer(VideoEncodeCfg cfgVideo, AudioEncodeCfg cfgAudio) { IsVideoPub = true; IsAudioPub = true; _vCfg = cfgVideo; _aCfg = cfgAudio; Init(); }
public static MediaFrame CreateVideoKeyFrame(VideoEncodeCfg cfg, long timetick, byte[] data, int offset, int size) { var mFrame = CreateVideoFrame(cfg, timetick, data, offset, size); mFrame.MediaFrameVersion = 1; mFrame.IsKeyFrame = 1; mFrame.Width = cfg.Width; mFrame.Height = cfg.Height; mFrame.SPSLen = cfg.GetSPS() == null ? 0 : cfg.GetSPS().Length; mFrame.PPSLen = cfg.GetPPS() == null ? 0 : cfg.GetPPS().Length; mFrame.Encoder = cfg.encoder; return(mFrame); }
public static MediaFrame CreateVideoFrame(VideoEncodeCfg cfg, long timetick, byte[] data, int offset, int size) { if (cfg is null) { throw new ArgumentNullException(nameof(cfg)); } var mFrame = new MediaFrame(0) { IsAudio = 0, IsKeyFrame = 0, NTimetick = timetick, Size = size, Offset = offset, }; mFrame.SetData(data); return(mFrame); }
public void ChangeCfg(VideoEncodeCfg vCfg, AudioEncodeCfg aCfg) { try { _vCfg = vCfg; _aCfg = aCfg; if (_ce != null) { _ce.Error -= OnError; _ce.Stop(); _ce.Dispose(); _ce = null; } if (_me != null) { _me.Error -= OnError; _me.Stop(); _me.Dispose(); _me = null; } Init(); if (_isRuning) { if (IsVideoPub) { _ce.Start(); } if (IsAudioPub) { _me.Start(); } } } catch (Exception e) { OnError(e); Stop(); } }