c#
VB
c++
公共无效LockDevices ()
公共子LockDevices ()
公共:
无效LockDevices ();
使用Leadtools;
使用Leadtools.MediaStreaming;
公共Server _server =零;
公共保龄球_result =假;
LiveStreamDevConfig devconfig;
公共类DesktopWin: System.Windows.Forms.IWin32Window
{
公共DesktopWin ()
{
}
公共IntPtr处理
{
得到{返回IntPtr.Zero;}
}
}
公共无效CreateOrReplaceLiveStreamExample ()
{
试一试
{
intStreamIndex = 0;
字符串strPath =“生活/ Stream1”;//查找直播流的路径
//我的系统上的视频设备的名称(LEAD RTSP源)
字符串strVideoDevice =“@device:西南:{083863 f1 - 70 - de - 11 - d0 bd40 - 00 - a0c911ce86} \ \ {e2b7de48 - 38 - c5 - 11 - d5 - 91 - f6 - 00104 - bdb8ff9}”;
//音频设备的名称在我的系统(麦克风(HD Pro Webcam C920))
字符串strAudioDevice =“@device:厘米:{33 d9a762 - 90 - c8 - 11 - d0 bd43 - 00 - a0c911ce86} \ \波:{9 d2fbf73 - d543 - 44 - da - 8846 ae780ee65484}”;
//创建一个server对象的实例
_server =新Leadtools.MediaStreaming.Server ();
//获取Live Streams的副本
LiveStreams Streams = _server.GetLiveStreams();
LiveStream流=零;
//搜索具有相同路径的现有流
为(StreamIndex = 0;StreamIndex < Streams.Count;StreamIndex + +)
{
stream = Streams.GetLiveStream(StreamIndex);
如果(流。路径== strPath)
打破;
stream.Dispose ();
流=零;
}
如果(流= =零)
{
//创建一个新的流
StreamIndex = -1;
stream = Streams.CreateLiveStream();
}
//设置流路径
流。路径= strPath;
//设置重新压缩,如果你想使用设备内置的压缩,将此设置为true
流。UseDeviceEncoding =假;
//选择视频设备
Leadtools.MediaStreaming.Devices videodevices;
videodevices = stream.VideoDevices;
intIndex = -1;
index = videodevices.IndexOf(strVideoDevice);
videodevices。选择=索引;
//选择音频设备
Leadtools.MediaStreaming.Devices audiodevices;
audiodevices = stream.AudioDevices;
Index = -1;
索引= audiodevices.IndexOf(strAudioDevice);
audiodevices。选择=索引;
/**可选择的选择方法
如果(索引>= 0)
{
Leadtools.MediaStreaming.Device装置;
audiodevices.[index];
设备。选择=真正的;
}
其他的
{
audiodevices。选择= -1;
}
* * /
//锁定设备以便编辑其属性
devconfig = stream.DeviceConfig;
devconfig.LockDevices ();
DesktopWin win =新DesktopWin ();
//显示主视频设备属性页,如果有的话
如果(devconfig.HasDialog (LiveStreamDlg.VideoDevice))
{
devconfig.ShowDialog (LiveStreamDlg。VideoDevice,赢得);
}
//显示主音频设备属性页,如果有的话
如果(devconfig.HasDialog (LiveStreamDlg.AudioDevice))
{
devconfig.ShowDialog (LiveStreamDlg。AudioDevice,赢得);
}
//设置输出视频
如果(devconfig.IsVideoEncoded)//视频已经编码,视频输出设置被忽略
{
流。UseVideoInputSize =真正的;
//如果UseVideoInputSize为true,则忽略宽度和高度
流。VideoWidth = 320;
流。VideoHeight = 240;
流。UseVideoInputFrameRate =真正的;
//如果UseVideoInputFrameRate为true,则忽略帧速率
流。VideoFrameRate = 29.97;
流。VideoBitRate = 700000;
流。QSVAcceleration =真正的;
流。CUDAAcceleration =真正的;
}
//设置输出音频
如果(devconfig.IsAudioEncoded)//音频已经编码,音频输出设置被忽略
{
intnCount = 0;
leadtools . mediastream . audiotypes audiotypes =零;
audiotypes = stream.AudioTypes;
nCount = audiotypes.Count;
为(index = 0;index < nCount;指数+ +)
{
leadtools . mediastream . audiotype audiotype = audiotypes[index];
如果(audiotype。频道== 2 && audiotype。BitRate == 192000 && audiotype。SampleRate == 44100)
{
audiotype。选择=真正的;
//可选择的选择方法
/ / audiotypes。选择=索引;
打破;
}
}
}
//设置输出片段大小
流。MinimumFragmentDuration = 2.0;
//添加或替换流
如果(StreamIndex < 0)
Streams.AddLiveStream(流);
其他的
流。SetLiveStream (StreamIndex流);
_server.SetLiveStreams(流);
如果(devconfig ! =零)
devconfig.UnlockDevices ();
_result =真正的;
}
抓(异常)
{
如果(devconfig ! =零)
devconfig.UnlockDevices ();
_result =假;
}
}
进口Leadtools
进口Leadtools。MediaStreaming
公共_server作为服务器=没有什么
公共_result作为布尔=假
私人devconfig作为LiveStreamDevConfig
公共类DesktopWin
实现了System.Windows.Forms.IWin32Window
公共子新()
结束子
公共只读的财产处理()作为IntPtr实现了IWin32Window。处理
得到
返回System.IntPtr.Zero
结束得到
结束财产
结束类
公共子CreateOrReplaceLiveStreamExample ()
试一试
昏暗的StreamCount作为整数= 0
昏暗的StreamIndex作为整数= 0
昏暗的strPath作为字符串=“生活/ Stream1”直播的路径去找
我的系统上的视频设备名称(LEAD RTSP源)
昏暗的strVideoDevice作为字符串=“@device:西南:{083863 f1 - 70 - de - 11 - d0 bd40 - 00 - a0c911ce86} \ {e2b7de48 - 38 - c5 - 11 - d5 - 91 - f6 - 00104 - bdb8ff9}”
系统上的音频设备名称(麦克风(HD Pro Webcam C920))
昏暗的strAudioDevice作为字符串=“@device:厘米:{33 d9a762 - 90 - c8 - 11 - d0 bd43 - 00 - a0c911ce86} \波:{9 d2fbf73 - d543 - 44 - da - 8846 ae780ee65484}”
'创建一个server对象的实例
_server =新Leadtools.MediaStreaming.Server ()
'获取直播流的副本
昏暗的流作为LiveStreams = _server.GetLiveStreams()
昏暗的流作为liverstream =没有什么
'搜索具有相同路径的现有流
StreamCount =流。数
StreamIndex = 0
做而StreamIndex < StreamCount
stream = Streams.GetLiveStream(StreamIndex)
如果流。路径= strPath然后
退出做
结束如果
stream.Dispose ()
流=没有什么
StreamIndex += 1
循环
如果流是没有什么然后
’创建一个新的流
StreamIndex = -1
stream = Streams.CreateLiveStream()
结束如果
设置流路径
流。路径= strPath
设置为重新压缩,如果你想使用设备内置的压缩,将此更改为true
流。UseDeviceEncoding =假
选择视频设备
昏暗的videodevices作为Leadtools.MediaStreaming.Devices
视频设备=流。VideoDevices
昏暗的指数作为整数= 1
index = videodevices.IndexOf(strVideoDevice)
videodevices。选择=索引
选择音频设备
昏暗的audiodevices作为Leadtools.MediaStreaming.Devices
Audiodevices =流。AudioDevices
指数= -1
索引= audiodevices.IndexOf(strAudioDevice)
audiodevices。选择=索引
另一种选择方法
如果索引>= 0,则
将设备设置为Leadtools.MediaStreaming.Device
'device = audiodevices(index)
的设备。选中= True
其他的
“audiodevices。选择= -1
“如果终结
“锁定设备,这样我们就可以编辑它们的属性
Devconfig = stream。DeviceConfig
devconfig.LockDevices ()
昏暗的赢得作为DesktopWin =新DesktopWin ()
显示主视频设备属性页(如果可用)
如果devconfig.HasDialog (LiveStreamDlg.VideoDevice)然后
devconfig.ShowDialog (LiveStreamDlg。VideoDevice赢)
结束如果
显示主音频设备属性页(如果可用)
如果devconfig.HasDialog (LiveStreamDlg.AudioDevice)然后
devconfig.ShowDialog (LiveStreamDlg。AudioDevice赢)
结束如果
设置输出视频
如果devconfig。是VideoEncoded然后'视频已经编码,视频输出设置被忽略
流。UseVideoInputSize =真正的
如果UseVideoInputSize为true,那么宽度和高度将被忽略
流。VideoWidth = 320
流。VideoHeight = 240
流。UseVideoInputFrameRate =真正的
如果UseVideoInputFrameRate为true,那么帧速率将被忽略
流。VideoFrameRate = 29.97
流。VideoBitRate = 700000
流。QSVAcceleration =真正的
流。CUDAAcceleration =真正的
结束如果
设置输出音频
如果devconfig。是AudioEncoded然后'音频已经编码,音频输出设置被忽略
昏暗的nCount作为整数= 0
昏暗的audiotypes作为Leadtools.MediaStreaming.AudioTypes =没有什么
Audiotypes =流。AudioTypes
nCount = audiotypes。数
指数= 0
做而index < nCount
昏暗的audiotype作为leadtools . mediastream . audiotype = audiotypes(索引)
如果audiotype。通道= 2需要说明audiotype。BitRate = 192000需要说明audiotype。SampleRate = 44100然后
audiotype。选择=真正的
选择的替代方法
“audiotypes。选择=索引
退出做
结束如果
索引+= 1
循环
结束如果
设置输出片段大小
流。MinimumFragmentDuration = 2.0
添加或替换流
如果StreamIndex < 0然后
Streams.AddLiveStream(流)
其他的
流。SetLiveStream (StreamIndex流)
结束如果
_server.SetLiveStreams(流)
如果不devconfig是没有什么然后
devconfig.UnlockDevices ()
结束如果
_result =真正的
抓e1作为异常
如果不devconfig是没有什么然后
devconfig.UnlockDevices ()
结束如果
_result =假
结束试一试
结束子
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗网页查看器net
188宝金博怎么下载
支持的平台上
.NET、Java、Android和iOS/macOS程序集
C API/ c++类库
HTML5 JavaScript库
您的邮件已经发送到支持!应该有人保持联系!如果你有急事,请回来再谈。
聊天时间:
周一至周五,上午8:30至下午6点
感谢您的反馈!
请重新填写表格以开始新的聊天。
所有代理当前都处于离线状态。
聊天时间:
星期一至星期五
上午8:30 -下午6点
要联系我们,请填写此表格,我们将通过电子邮件与您联系。