移动视频直播点播方案

来源:互联网 发布:淘宝搜索指数查询2016 编辑:程序博客网 时间:2024/04/28 14:43

一、           概述

    本架构主要向多方用户提供视频点播、直播服务、视频推流等基本服务。用户类型主要包括有视频服务运营商、视频发布方、视频观众三种;方案涵括了为主播提供推流服务的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

    (原创,转载请备注)

2 0