BitRateLimit Property

Summary

Gets or sets the forced bit rate limit, in bits per second.

Syntax
C#
VB
C++
[DispIdAttribute(2)] 
int BitRateLimit {get; set;} 
  
<DispIdAttribute(2)> 
Property BitRateLimit As Integer 
[DispIdAttribute(2)] 
property int BitRateLimit { 
   int get(); 
   void set (    int ); 
} 

Property Value

An System.Int32 value that represents the forced bit rate limit, in bits per second. The default value of the bit rate limit is -1, which means that the multiplexer is not restricted to a bit rate.

Remarks

The multiplexer will output the data at a slower rate, in relation to the input rate, to limit the bit rate. However, the average bit rate may slightly exceed the requested limit.

Example
C#
VB
using Leadtools; 
using Leadtools.Multimedia; 
using LeadtoolsMultimediaExamples.Fixtures; 
 
public bool _result = false; 
public CaptureCtrlForm _form = new CaptureCtrlForm(); 
public CaptureCtrl _captureCtrl; 
 
const int MaxBitRate = 128; 
const int TestBitRate = MaxBitRate + 1; 
 
public void NetworkMultiplexerExample() 
{ 
   // reference the capture control 
   _captureCtrl = _form.CaptureCtrl; 
 
   // output file 
   string outFile = @"ltsf://127.0.0.1:27015"; 
 
   try 
   { 
      // try to find a USB camera 
      if (_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 = outFile; 
 
      if (_captureCtrl.IsModeAvailable(CaptureMode.Video)) 
      { 
         // just 10 seconds of capture time 
         _captureCtrl.TimeLimit = 10; 
         _captureCtrl.UseTimeLimit = true; 
 
         // ready the capture graph in order to get the LNMetMux instance 
         _captureCtrl.ReadyCapture(CaptureMode.Video); 
 
         // get the network multiplexer reference 
         LMNetMux pMux = _captureCtrl.GetSubObject(CaptureObject.TargetFilter) as LMNetMux; 
 
         if (pMux != null) 
         { 
            // set live source (dropping samples is allowed if the sink is not sending fast enough to keep up) 
            pMux.LiveSource = true; 
 
            // atleast 10 seconds for the netmux sample queue 
            if (pMux.MaxQueueDuration < 10) 
               pMux.MaxQueueDuration = 10; 
 
            // 128 kbps max 
            pMux.BitRateLimit = MaxBitRate * 1024; 
 
            // set the result to what we expect 
            _result = 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) 
         { 
            if (pMux != null) 
            { 
               // confirm that the actual bitrate does not exceed our max specified above 
               _result &= (pMux.BitRate / 1024 < TestBitRate); 
            } 
            Application.DoEvents(); 
         } 
 
         // release the mux since its a COM object 
         if (pMux != null) 
            Marshal.ReleaseComObject(pMux); 
      } 
   } 
   catch (Exception) 
   { 
      _result = false; 
   } 
} 
Imports Leadtools 
Imports Leadtools.Multimedia 
Imports LeadtoolsMultimediaExamples.Fixtures 
 
Public _result As Boolean = False 
Public _form As CaptureCtrlForm = New CaptureCtrlForm() 
Public _captureCtrl As CaptureCtrl 
 
Private Const MaxBitRate As Integer = 128 
Private Const TestBitRate As Integer = MaxBitRate + 1 
 
Public Sub NetworkMultiplexerExample() 
   ' reference the capture control 
   _captureCtrl = _form.CaptureCtrl 
 
   ' output file 
   Dim outFile As String = "ltsf://127.0.0.1:27015" 
 
   Try 
      ' try to find a USB camera 
      If _captureCtrl.VideoDevices("Logitech") Is Nothing Then 
         Throw New Exception("No Logitech video device available") 
      End If 
 
      _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 = outFile 
 
      If _captureCtrl.IsModeAvailable(CaptureMode.Video) Then 
         ' just 10 seconds of capture time 
         _captureCtrl.TimeLimit = 10 
         _captureCtrl.UseTimeLimit = True 
 
         ' ready the capture graph in order to get the LNMetMux instance 
         _captureCtrl.ReadyCapture(CaptureMode.Video) 
 
         ' get the network multiplexer reference 
         Dim pMux As LMNetMux = TryCast(_captureCtrl.GetSubObject(CaptureObject.TargetFilter), LMNetMux) 
 
         If Not pMux Is Nothing Then 
            ' set live source (dropping samples is allowed if the sink is not sending fast enough to keep up) 
            pMux.LiveSource = True 
 
            ' atleast 10 seconds for the netmux sample queue 
            If pMux.MaxQueueDuration < 10 Then 
               pMux.MaxQueueDuration = 10 
            End If 
 
            ' 128 kbps max 
            pMux.BitRateLimit = MaxBitRate * 1024 
 
            ' set the result to what we expect 
            _result = True 
         End If 
 
         ' 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. 
         Do While _captureCtrl.State = CaptureState.Running 
            If Not pMux Is Nothing Then 
               ' confirm that the actual bitrate does not exceed our max specified above 
               _result = _result And (pMux.BitRate / 1024 < TestBitRate) 
            End If 
            Application.DoEvents() 
         Loop 
 
         ' release the mux since its a COM object 
         If Not pMux Is Nothing Then 
            Marshal.ReleaseComObject(pMux) 
         End If 
      End If 
   Catch e1 As Exception 
      _result = False 
   End Try 
End Sub 

Requirements

Target Platforms

Help Version 20.0.2020.3.31
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.