标签: 视频直播

Live555 + Darwin Streaming Server(DSS)视频直播方案

function writeSpace( num){ var i;
for(i = 0; i < num; ++i)
{ document.write('   ' ); }
}
该方案的实现原理是,通过Live555的DarwinInjector Class,把本地采集的音频和视频流,注入到DSS服务器。客户端就可以直接访问DSS服务器(不是Live555所在的采集端)来访问实时流媒体数据。

这种方案的优点:
》保证了单台DSS服务器并发量可以上几百。
》DSS服务可以像承载点播一样,实现直播。
》支持多路直播,就跟增加一个点播文件一样简单。

缺点:
》延时一般需要5秒左右
》直播集群支持节点受限,一台PC运行Live555采集端可同时注入的DSS服务器数量不超过5台

首先需要修改DSS服务端配置:
这里需要设置一下/usr/local/movies/目录的QTSS访问权限,允许写入:
修改DSS配置,增加文件:vi /usr/local/movies/qtaccess,增加以下几行
require any-user
require any-user

基本原理图如下:
writeSpace(38); /—-【客户端 1 RTSP Client(例如VLC)】

【采集客户端调用Live555 DarwinInjector】 —-> 【DSS 服务器 192.168.1.22】《—–【客户端 2 RTSP Client(例如VLC)】

writeSpace(38); \—-【客户端 N RTSP Client(例如VLC)】

方案的实现流程,用伪代码来说明:
0. 调用live555中已有的类创建Darwin i[......]

阅读全文