Products | Support | Email a link to this topic. | Send comments on this topic. | Back to Introduction | Help Version 19.0.2.15
|
Leadtools.MediaStreaming Namespace > AudioType Class : Channels Property |
Imports Leadtools Imports Leadtools.MediaStreaming Public _server As Server = Nothing Public _result As Boolean = False Private devconfig As LiveStreamDevConfig Public Class DesktopWin Implements System.Windows.Forms.IWin32Window Public Sub New() End Sub Public ReadOnly Property Handle() As IntPtr Implements IWin32Window.Handle Get Return System.IntPtr.Zero End Get End Property End Class Public Sub CreateOrReplaceLiveStreamExample() Try Dim StreamCount As Integer = 0 Dim StreamIndex As Integer = 0 Dim strPath As String = "Live/Stream1" ' live stream's path to find ' video device's name on my system (LEAD RTSP Source) Dim strVideoDevice As String = "@device:sw:{083863F1-70DE-11D0-BD40-00A0C911CE86}\{E2B7DE48-38C5-11D5-91F6-00104BDB8FF9}" ' audio device's name on my system (Microphone (HD Pro Webcam C920)) Dim strAudioDevice As String = "@device:cm:{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave:{9D2FBF73-D543-44DA-8846-AE780EE65484}" ' create an instance of the server object _server = New Leadtools.MediaStreaming.Server() ' retrieve a copy of the Live Streams Dim Streams As LiveStreams = _server.GetLiveStreams() Dim stream As LiveStream = Nothing ' search for existing stream with same path StreamCount = Streams.Count StreamIndex = 0 Do While StreamIndex < StreamCount stream = Streams.GetLiveStream(StreamIndex) If stream.Path = strPath Then Exit Do End If stream.Dispose() stream = Nothing StreamIndex += 1 Loop If stream Is Nothing Then ' create a new stream StreamIndex = -1 stream = Streams.CreateLiveStream() End If ' set the stream path stream.Path = strPath ' setup to recompress, change this to true if you want to use the device built-in compression stream.UseDeviceEncoding = False ' select video device Dim videodevices As Leadtools.MediaStreaming.Devices videodevices = stream.VideoDevices Dim index As Integer = -1 index = videodevices.IndexOf(strVideoDevice) videodevices.Selection = index ' select audio device Dim audiodevices As Leadtools.MediaStreaming.Devices audiodevices = stream.AudioDevices index = -1 index = audiodevices.IndexOf(strAudioDevice) #If True Then audiodevices.Selection = index #Else ' alternative method of selection If index >= 0 Then Dim device As Leadtools.MediaStreaming.Device device = audiodevices(index) device.Selected = True Else audiodevices.Selection = -1 End If #End If ' lock the devices so we can edit their properties devconfig = stream.DeviceConfig devconfig.LockDevices() Dim win As DesktopWin = New DesktopWin() ' show the main video device property page, if available If devconfig.HasDialog(LiveStreamDlg.VideoDevice) Then devconfig.ShowDialog(LiveStreamDlg.VideoDevice, win) End If ' show the main audio device property page, if available If devconfig.HasDialog(LiveStreamDlg.AudioDevice) Then devconfig.ShowDialog(LiveStreamDlg.AudioDevice, win) End If ' setup output video If devconfig.IsVideoEncoded Then ' the video is already encoded, the video output settings are ignored stream.UseVideoInputSize = True ' if UseVideoInputSize is true, then the width and height are ignored stream.VideoWidth = 320 stream.VideoHeight = 240 stream.UseVideoInputFrameRate = True ' if UseVideoInputFrameRate is true, then the frame rate is ignored stream.VideoFrameRate = 29.97 stream.VideoBitRate = 700000 stream.QSVAcceleration = True stream.CUDAAcceleration = True End If ' setup output audio If devconfig.IsAudioEncoded Then ' the audio is already encoded, the audio output settings are ignored Dim nCount As Integer = 0 Dim audiotypes As Leadtools.MediaStreaming.AudioTypes = Nothing audiotypes = stream.AudioTypes nCount = audiotypes.Count index = 0 Do While index < nCount Dim audiotype As Leadtools.MediaStreaming.AudioType = audiotypes(index) If audiotype.Channels = 2 AndAlso audiotype.BitRate = 192000 AndAlso audiotype.SampleRate = 44100 Then #If True Then audiotype.Selected = True #Else ' alternative method of selection audiotypes.Selection = index #End If Exit Do End If index += 1 Loop End If ' setup output fragment size stream.MinimumFragmentDuration = 2.0 ' add or replace stream If StreamIndex < 0 Then Streams.AddLiveStream(stream) Else Streams.SetLiveStream(StreamIndex, stream) End If _server.SetLiveStreams(Streams) If Not devconfig Is Nothing Then devconfig.UnlockDevices() End If _result = True Catch e1 As Exception If Not devconfig Is Nothing Then devconfig.UnlockDevices() End If _result = False End Try End Sub
using Leadtools; using Leadtools.MediaStreaming; public Server _server = null; public bool _result = false; LiveStreamDevConfig devconfig; public class DesktopWin : System.Windows.Forms.IWin32Window { public DesktopWin() { } public IntPtr Handle { get { return IntPtr.Zero; } } } public void CreateOrReplaceLiveStreamExample() { try { int StreamIndex = 0; string strPath = "Live/Stream1"; // live stream's path to find // video device's name on my system (LEAD RTSP Source) string strVideoDevice = "@device:sw:{083863F1-70DE-11D0-BD40-00A0C911CE86}\\{E2B7DE48-38C5-11D5-91F6-00104BDB8FF9}"; // audio device's name on my system (Microphone (HD Pro Webcam C920)) string strAudioDevice = "@device:cm:{33D9A762-90C8-11D0-BD43-00A0C911CE86}\\wave:{9D2FBF73-D543-44DA-8846-AE780EE65484}"; // create an instance of the server object _server = new Leadtools.MediaStreaming.Server(); // retrieve a copy of the Live Streams LiveStreams Streams = _server.GetLiveStreams(); LiveStream stream = null; // search for existing stream with same path for (StreamIndex = 0; StreamIndex < Streams.Count; StreamIndex++) { stream = Streams.GetLiveStream(StreamIndex); if (stream.Path == strPath) break; stream.Dispose(); stream = null; } if (stream == null) { // create a new stream StreamIndex = -1; stream = Streams.CreateLiveStream(); } // set the stream path stream.Path = strPath; // setup to recompress, change this to true if you want to use the device built-in compression stream.UseDeviceEncoding = false; // select video device Leadtools.MediaStreaming.Devices videodevices; videodevices = stream.VideoDevices; int index = -1; index = videodevices.IndexOf(strVideoDevice); videodevices.Selection = index; // select audio device Leadtools.MediaStreaming.Devices audiodevices; audiodevices = stream.AudioDevices; index = -1; index = audiodevices.IndexOf(strAudioDevice); #if true audiodevices.Selection = index; #else // alternative method of selection if(index >= 0) { Leadtools.MediaStreaming.Device device; device = audiodevices.[index]; device.Selected = true; } else { audiodevices.Selection = -1; } #endif // lock the devices so we can edit their properties devconfig = stream.DeviceConfig; devconfig.LockDevices(); DesktopWin win = new DesktopWin(); // show the main video device property page, if available if (devconfig.HasDialog(LiveStreamDlg.VideoDevice)) { devconfig.ShowDialog(LiveStreamDlg.VideoDevice, win); } // show the main audio device property page, if available if (devconfig.HasDialog(LiveStreamDlg.AudioDevice)) { devconfig.ShowDialog(LiveStreamDlg.AudioDevice, win); } // setup output video if (devconfig.IsVideoEncoded) // the video is already encoded, the video output settings are ignored { stream.UseVideoInputSize = true; // if UseVideoInputSize is true, then the width and height are ignored stream.VideoWidth = 320; stream.VideoHeight = 240; stream.UseVideoInputFrameRate = true; // if UseVideoInputFrameRate is true, then the frame rate is ignored stream.VideoFrameRate = 29.97; stream.VideoBitRate = 700000; stream.QSVAcceleration = true; stream.CUDAAcceleration = true; } // setup output audio if (devconfig.IsAudioEncoded) // the audio is already encoded, the audio output settings are ignored { int nCount = 0; Leadtools.MediaStreaming.AudioTypes audiotypes = null; audiotypes = stream.AudioTypes; nCount = audiotypes.Count; for (index = 0; index < nCount; index++) { Leadtools.MediaStreaming.AudioType audiotype = audiotypes[index]; if (audiotype.Channels == 2 && audiotype.BitRate == 192000 && audiotype.SampleRate == 44100) { #if true audiotype.Selected = true; #else // alternative method of selection audiotypes.Selection = index; #endif break; } } } // setup output fragment size stream.MinimumFragmentDuration = 2.0; // add or replace stream if (StreamIndex < 0) Streams.AddLiveStream(stream); else Streams.SetLiveStream(StreamIndex, stream); _server.SetLiveStreams(Streams); if (devconfig != null) devconfig.UnlockDevices(); _result = true; } catch (Exception) { if (devconfig != null) devconfig.UnlockDevices(); _result = false; } }