一、 概述
本架构主要向多方用户提供视频点播、直播服务、视频推流等基本服务。用户类型主要包括有视频服务运营商、视频发布方、视频观众三种;方案涵括了为主播提供推流服务的PC客户端,观众PC Web前端、Android APP和IOS APP等;功能上跟酷狗等互联网主播平台相似,服务器高性能、高并发。整体架构如下图:
二、平台部署
架构中视频服务器分为直播发布服务器(源服务器PubshServer,简称PS)、边缘服务(又分直播RTS、点播VODS)、管理服务器(MS);
i. PublishServer : 视频发布源服务器,PS服务器收到主播发布视频流后,向MS管理服务器上报主播频道信息;然后向所有边缘RTS服务器转送视频流;
ii. ManageServer: MS管理着所有PS、MTS、VODS、WebServer以及WebChat服务;当MS收到PublishServer主播频道信息后,更新主播频道信息及状态;然后将改频道信息发布到所有MST和WebServer服务器去;
iii. RealTimeServer:RTS是作为实时的直播服务器,它在收到MS更新的频道信息后,向所有登录到它自身的客户端推送该channel信息;
iv. WebServer:改服务器主要向浏览器用户提供网页视频服务,用户同样可以在浏览器上观看直播、点播,并可与改频道的主播及观众进行聊天;
v. WebChat:WebChat服务器收到MS更新的频道信息,创建新频道聊天室;聊天室方案同时兼容了android、ios、pc等不同类型客户端同时在线聊天;
三、 APP
APP应用具备视频直播、点播、聊天等基本功能,视频播放还兼容多种流媒体协议如rtps/rtmp/http等;基本功能如下:
i. webchat登陆:用户线填写昵称,然后自动登陆到聊天服务器;
ii. 频道更新:app在启动时就立即向WebServer拉去最新的频道清单;
iii. APP布局包括有:头条热点、校园视讯、在线学科、直播频道等;布局内容可以由后台管理者编辑更新并有推送到所有客户端去,可随时增加减少频道;
iv. 点播功能包括有快进、快退、暂停、播放等基本功能;
v. 实时直播摄像头或电脑桌面等视频流;
观看直播截图:
四、WebServer
WebServer前端包括了视频播放插件以及聊天窗口;观众在进入主页后选择要观看的频道,即可在观看视频同时,通过聊天窗口与主播以及其他观众互动;在浏览器上播放及聊天截图:
图41 浏览器视频观看及聊天
五、PC推送端
客户端程序的主要目的,是实现采集视频设备(摄像头/桌面)和音频设备(麦克风),并生成RTMP视频流,推送到PS服务器,以实现APP/Web直播功能。目前音频和视频编码格式,分别支持AAC编码和H.264编码。PC视频推送截图:
图5.1 摄像头视频采集
图5.2 桌面视频采集
六、Ubuntu 下视频采集发布
我们可以使用ffmpeg进行视频转码、采集、流生成的操作,如下:
1.摄像头视频采集编码,并推送rtmp:
./ffmpeg -f video4linux2 -qscale 10 -r 25 -s 640x480 -i /dev/video0 -vcodec libx264 -f alsa -acodec libfaac -ar 44100 -ac 1 -f flv "rtmp://127.0.0.1/live/sx0 live=1"
2. 视频文件rtmp推送
./ffmpeg -re -i Wonders_of_Nature.mp4 -acodec copy -vcodec copy -ar 44100 -f flv "rtmp://127.0.0.1/live/stream live=1"
3. rtmp、http流转发
./ffmpeg -re -i http://imgWNAS0WNAS5WNASly4.m0wscdn-h.kukuplay.com/ts/236_1375092311246_1395238745692/playlist.m3u8?sn=73b7d9e46479a
a0613398314a9378ce9WMzA1ODk5MGkzZTBqF -vcodec copy -f flv "rtmp://127.0.0.1/live/cctv13 live=1"
4. 播放
可以使用ffplay直播播放rtmp、http视频流,如:
ffplay rtmp://127.0.0.1/live/stream
使用ffmpeg可以简易满足基本的功能需求,但面向业务需求的话还需进行二次开发。
备注:
应用源码下载:
http://download.csdn.net/detail/yqw2007/8409253
http://download.csdn.net/detail/yqw2007/9524895
linux下摄像头视频采集rtmp封装可参看源码:
http://download.csdn.net/detail/yqw2007/8423337
联系合作QQ:297246250
(原创,转载请备注)