实时视音频的采集源码

这是一款基于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文件。

开发环境为Visual Studio 2010,无数据库,使用.net 2.0开发。


此资源下载价格为150米币,请先
下载价格:150 米币
VIP优惠:5 折
0
分享到:
没有账号? 忘记密码?

社交账号快速登录