[DispIdAttribute(1)]int BitRate {get;}
An integer value indicating the average bit rate, in bits per second.
using Leadtools.Multimedia;using LeadtoolsMultimediaExamples.Fixtures;public bool _result = false;public CaptureAndPlayCtrlForm _serverAndClient = new CaptureAndPlayCtrlForm();bool _msgSent = false;CaptureCtrl _captureCtrl;PlayCtrl _playCtrl;LMNetMux _pMux;LMNetDmx _pDemux;const string _networkUrl = @"ltsf://127.0.0.1:27015"; // network stream urlconst string _testMessage = "LEAD NETWORK";string _recordedVideoFile = Path.Combine(LEAD_VARS.MediaDir, "DaDa_H264.mp4");public void NetworkDemultiplexerExample(){// reference the capture control_captureCtrl = _serverAndClient.CaptureCtrl;// reference the play control_playCtrl = _serverAndClient.PlayCtrl;try{// try to find a video cameraif (_captureCtrl.VideoDevices["Logitech"] == null)throw new Exception("No Logitech video device available");_captureCtrl.VideoDevices["Logitech"].Selected = true;// select a video compressor_captureCtrl.VideoCompressors.Mpeg4.Selected = true;// set the target output file_captureCtrl.TargetFormat = TargetFormatType.NET;_captureCtrl.TargetFile = _networkUrl;if (_captureCtrl.IsModeAvailable(CaptureMode.Video)){// just 10 seconds of capture time_captureCtrl.TimeLimit = 10;_captureCtrl.UseTimeLimit = true;_captureCtrl.FrameRate = 30;_captureCtrl.UseFrameRate = true;_captureCtrl.Preview = true;// subscribe to the started and progress events for this example// we will connect a client after the capture starts// and send a test message after 5 seconds._captureCtrl.Started += new EventHandler(CaptureCtrl_Started);_captureCtrl.Progress += new ProgressEventHandler(CaptureCtrl_Progress);// ready the capture graph in order to get the LNMetMux instance_captureCtrl.ReadyCapture(CaptureMode.Video);// get the network multiplexer reference_pMux = _captureCtrl.GetSubObject(CaptureObject.TargetFilter) as LMNetMux;if (_pMux != null){// set some mux settings_pMux.LiveSource = true;}// start capture_captureCtrl.StartCapture(CaptureMode.Video);// we'll loop on the state and pump messages for this example.// but you should not need to if running from a Windows Forms application.while (_captureCtrl.State == CaptureState.Running|| _playCtrl.State == PlayState.Running){Application.DoEvents();}// verify we have a recording file too_result &= File.Exists(_recordedVideoFile);// release the mux and demux COM objectsif (_pMux != null)Marshal.ReleaseComObject(_pMux);if (_pDemux != null)Marshal.ReleaseComObject(_pDemux);}}catch (Exception){_result = false;}}void CaptureCtrl_Progress(object sender, ProgressEventArgs e){// for this test we will send a message after// 5 secs of capture timeif (e.time > 5000 && !_msgSent){_pMux.WriteMessage(_testMessage);Console.WriteLine("Server sent message");_msgSent = true;}}void CaptureCtrl_Started(object sender, EventArgs e){StartClient();}private void StartClient(){try{LMNetSrc netSrc = new LMNetSrc();netSrc.CheckConnection(_networkUrl, 0, 5000);Marshal.ReleaseComObject(netSrc);}catch (COMException){// could not connectreturn;}_playCtrl.SourceFile = _networkUrl;_pDemux = _playCtrl.GetSubObject(PlayObject.Splitter) as LMNetDmx;if (_pDemux != null && _pDemux.AutoLiveTolerance < 5){// reset the demux settings to defaults_pDemux.ResetToDefaults();// set the live tolerance setting to 5 seconds// this will cause the playback to be smoother on jittery// network connections -- although, the playback may lag// behing the live stream when using a tolerance value > 0_pDemux.AutoLiveTolerance = 5;// set the output filename for recorded video_pDemux.OutputFileName = _recordedVideoFile;}_serverAndClient.TestTimer.Interval = 100;_serverAndClient.TestTimer.Tick += new EventHandler(PlayTimer_Tick);_serverAndClient.TestTimer.Start();}void PlayTimer_Tick(object sender, EventArgs e){_serverAndClient.TestTimer.Enabled = false;if (_pDemux != null){// read any messages herestring msg = _pDemux.ReadMessage();// set the result to what we expectif (msg == _testMessage){_result = true;Console.WriteLine("Client received message");}// get the bitrateint bitRate = _pDemux.BitRate;Console.WriteLine("Client bitrate = {0}", bitRate);}_serverAndClient.TestTimer.Enabled = true;}static class LEAD_VARS{public const string MediaDir = @"C:\LEADTOOLS23\Media";}