c#
VB
c++
使用Leadtools;
使用Leadtools.MediaStreaming;
公共服务器_server =零;
公共bool_result =假;
LiveStreamDevConfig devconfig;
公共类DesktopWin: System.Windows.Forms.IWin32Window
{
公共DesktopWin ()
{
}
公共IntPtr处理
{
得到{返回IntPtr.Zero;}
}
}
公共无效CreateOrReplaceLiveStreamExample ()
{
试一试
{
intStreamIndex = 0;
字符串strPath =“生活/ Stream1”;/ /找到直播的路径
/ /视频设备的名字在我的系统(RTSP铅源)
字符串strVideoDevice =“@device:西南:{083863 f1 - 70 - de - 11 - d0 bd40 - 00 - a0c911ce86} \ \ {e2b7de48 - 38 - c5 - 11 - d5 - 91 - f6 - 00104 - bdb8ff9}”;
/ /音频设备的名字在我的系统(麦克风(高清Pro摄像头C920))
字符串strAudioDevice =“@device:厘米:{33 d9a762 - 90 - c8 - 11 - d0 bd43 - 00 - a0c911ce86} \ \波:{9 d2fbf73 - d543 - 44 - da - 8846 ae780ee65484}”;
/ /创建一个服务器对象的实例
_server =新Leadtools.MediaStreaming.Server ();
/ /获取生活流的一个副本
liverstream流= _server.GetLiveStreams ();
liverstream流=零;
/ /用相同的路径搜索现有的流
为(StreamIndex = 0;StreamIndex < Streams.Count;StreamIndex + +)
{
流= Streams.GetLiveStream (StreamIndex);
如果(流。路径= = strPath)
打破;
stream.Dispose ();
流=零;
}
如果(流= =零)
{
/ /创建一个新的流
StreamIndex = 1;
流= Streams.CreateLiveStream ();
}
/ /设置流路径
流。路径= strPath;
/ /设置将改变这个真正的如果你想使用设备内置的压缩
流。UseDeviceEncoding =假;
/ /选择视频设备
Leadtools.MediaStreaming.Devicesvideodevices;
videodevices = stream.VideoDevices;
int指数= 1;
指数= videodevices.IndexOf (strVideoDevice);
videodevices。选择=指数;
/ /选择音频设备
Leadtools.MediaStreaming.Devicesaudiodevices;
audiodevices = stream.AudioDevices;
指数= 1;
指数= audiodevices.IndexOf (strAudioDevice);
audiodevices。选择=指数;
/ * *选择的替代方法
如果(指数> = 0)
{
Leadtools.MediaStreaming。设备装置;
设备= audiodevices。[索引];
设备。选择=真正的;
}
其他的
{
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.IsVideoEncoded)/ /已经编码的视频,视频输出设置将被忽略
{
流。UseVideoInputSize =真正的;
/ /如果UseVideoInputSize是真的,那么宽度和高度被忽略
流。VideoWidth = 320;
流。VideoHeight = 240;
流。UseVideoInputFrameRate =真正的;
/ /如果UseVideoInputFrameRate是真的,帧速率是忽略
流。VideoFrameRate = 29.97;
流。VideoBitRate = 700000;
流。QSVAcceleration =真正的;
流。CUDAAcceleration =真正的;
}
/ /设置输出音频
如果(devconfig.IsAudioEncoded)/ /已经编码的音频,音频输出设置将被忽略
{
intnCount = 0;
Leadtools.MediaStreaming。AudioTypes AudioTypes =零;
audiotypes = stream.AudioTypes;
nCount = audiotypes.Count;
为(指数= 0;指数< nCount;指数+ +)
{
Leadtools.MediaStreaming。AudioType AudioType = audiotypes(指数);
如果(audiotype。= = 2 & & audiotype渠道。比特率= = 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.Handle
得到
返回System.IntPtr.Zero
结束得到
结束财产
结束类
公共子CreateOrReplaceLiveStreamExample ()
试一试
昏暗的StreamCount作为整数= 0
昏暗的StreamIndex作为整数= 0
昏暗的strPath作为字符串=“生活/ Stream1”直播的路径
的视频设备的名字在我的系统(RTSP铅源)
昏暗的strVideoDevice作为字符串=“@device:西南:{083863 f1 - 70 - de - 11 - d0 bd40 - 00 - a0c911ce86} \ {e2b7de48 - 38 - c5 - 11 - d5 - 91 - f6 - 00104 - bdb8ff9}”
音频设备的名字在我的系统(麦克风(高清Pro摄像头C920))
昏暗的strAudioDevice作为字符串=“@device:厘米:{33 d9a762 - 90 - c8 - 11 - d0 bd43 - 00 - a0c911ce86} \波:{9 d2fbf73 - d543 - 44 - da - 8846 ae780ee65484}”
“创建服务器对象的一个实例
_server =新Leadtools.MediaStreaming.Server ()
检索一个副本的生活流
昏暗的流作为liverstream = _server.GetLiveStreams ()
昏暗的流作为liverstream =没有什么
“用相同的路径搜索现有的流
StreamCount =流。数
StreamIndex = 0
做而StreamIndex < StreamCount
流= Streams.GetLiveStream (StreamIndex)
如果流。路径= strPath然后
退出做
结束如果
stream.Dispose ()
流=没有什么
StreamIndex + = 1
循环
如果流是没有什么然后
“创建一个新的流
StreamIndex = 1
流= Streams.CreateLiveStream ()
结束如果
设置流路径
流。路径= strPath
的设置将改变这个真正的如果你想使用设备内置的压缩
流。UseDeviceEncoding =假
“选择视频设备
昏暗的videodevices作为Leadtools.MediaStreaming.Devices
videodevices = stream.VideoDevices
昏暗的指数作为整数= 1
指数= videodevices.IndexOf (strVideoDevice)
videodevices。选择=指数
“选择音频设备
昏暗的audiodevices作为Leadtools.MediaStreaming.Devices
audiodevices = stream.AudioDevices
指数= 1
指数= audiodevices.IndexOf (strAudioDevice)
audiodevices。选择=指数
“另类的选择方法
如果指数> = 0
“Leadtools.MediaStreaming.Device昏暗的设备
'设备= audiodevices(指数)
的设备。选择= 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.IsVideoEncoded然后已经编码的视频,视频输出设置将被忽略
流。UseVideoInputSize =真正的
“如果UseVideoInputSize是正确的,那么宽度和高度被忽略
流。VideoWidth = 320
流。VideoHeight = 240
流。UseVideoInputFrameRate =真正的
“如果UseVideoInputFrameRate是真的,帧速率是忽略
流。VideoFrameRate = 29.97
流。VideoBitRate = 700000
流。QSVAcceleration =真正的
流。CUDAAcceleration =真正的
结束如果
设置输出的音频
如果devconfig.IsAudioEncoded然后已经编码的音频,音频输出设置将被忽略
昏暗的nCount作为整数= 0
昏暗的audiotypes作为Leadtools.MediaStreaming。AudioTypes =没有什么
audiotypes = stream.AudioTypes
nCount = audiotypes。数
指数= 0
做而指数< nCount
昏暗的audiotype作为Leadtools.MediaStreaming。AudioType = audiotypes(指数)
如果audiotype。渠道= 2需要说明audiotype。比特率= 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
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。