- 系统品牌:
- 其他系统
- 开发语言:
- .NET
- 数据库:
- Mssql
源码参数
源码类别:【网络应用】 源码类型:C/S 适合人群: 高手 授权类型:商业版开发语言:C#数据库:无数据库框架版本:1.00源码大小:9.55MB
一、源码描述
这是一款基于c#技术实时视音频的采集源码。功能十分的强大,可以用作
二次开发使用,有需要的可以下载看看啊。
二、实现原理
要实现这个demo,需涉及到以下几个技术:
(1)在服务端采集指定用户的语音、视频数据。
(2)在服务端将图像使用H264编码,语音数据使用AAC编码。
(3)将编码后的数据按MP4格式的要求,保存为MP4文件。
我们基于OMCS和MFile来实现上述功能,下面是对应的原理。
(1)在OMCS的结构中,客户端之间可以相互获取到对方的摄像头和麦克风的数据,所以,
服务端可以作为一个虚拟的客户端用户(比如ID为“_Server”),连接到同一个进程中
的OMCS多媒体服务器。
(2)在服务端动态创建DynamicCameraConnector组件,连接到指定用户的摄像头。
(3)在服务端动态创建两个MicrophoneConnector组件,接到指定用户的麦克风。
(4)调用DynamicCameraConnector的GetCurrentImage方法,即可获得所连接的摄像头采集的视频帧。
(5)预定MicrophoneConnector的AudioDataReceived事件,即可获得所连接的麦克风采集的音频数据。
(6)使用MFile将上述结果进行编码并写入mp4文件。
如果熟悉OMCS和MFile的使用,理解上面的代码是非常容易的,而且本文这个Demo就是在语音视频入门
Demo的基础上改写而成的,只是有几点是需要注意:
(1)由于在服务端录制时,不需要显示被录制用户的视频,所以不用设置DynamicCameraConnector的
Viewer(即不用调用其SetViewer方法来设置绘制视频的面板)。
(2)同样,在服务端录制时,不需要播放被录制用户的语音,所以,将MicrophoneConnector的Mute属
性设置为true即可。
(3)如果需要录制视频,则通过一个定时器(videoTimer)每隔100毫秒(即10fps)从
DynamicCameraConnector采集一帧图片,并写入录制文件。
(4)如果录制的仅仅是图像视频(不包括音频),采用的视频编码仍然为H264,但生成的录制文件也
是.mp4文件,而非.h264文件,否则,生成的视频文件将无法正常播放。
三、测试步骤
(1)启动demo的服务端。
(2)修改客户端配置文件中的服务器IP,然后,用不同的帐号在不同的机器上登录多个demo的客户端。
(3)在服务端界面上,选择一个在线的用户,点击“开始录制”按钮,即可进行录制。录制结束后,
将在服务端的运行目录下,生成以用户ID为名称的mp3/mp4文件。
四、注意事项
1、开发环境为Visual Studio 2010,无数据库,使用.net 2.0开发。
2、该源码可以用作二次开发使用。