移动视频直播点播方案
一、???????????概述
? ? 本架構主要向多方用戶提供視頻點播、直播服務、視頻推流等基本服務。用戶類型主要包括有視頻服務運營商、視頻發布方、視頻觀眾三種;方案涵括了為主播提供推流服務的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
? ? (原創,轉載請備注)
總結
以上是生活随笔為你收集整理的移动视频直播点播方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zuk z2 android 8,骁龙8
- 下一篇: 组件的概念理解