移动视频直播点播方案
一、???????????概述
? ? 本架構(gòu)主要向多方用戶提供視頻點(diǎn)播、直播服務(wù)、視頻推流等基本服務(wù)。用戶類型主要包括有視頻服務(wù)運(yùn)營商、視頻發(fā)布方、視頻觀眾三種;方案涵括了為主播提供推流服務(wù)的PC客戶端,觀眾PC Web前端、Android APP和IOS APP等;功能上跟酷狗等互聯(lián)網(wǎng)主播平臺(tái)相似,服務(wù)器高性能、高并發(fā)。整體架構(gòu)如下圖:
? ?
二、平臺(tái)部署
? ? ? 架構(gòu)中視頻服務(wù)器分為直播發(fā)布服務(wù)器(源服務(wù)器PubshServer,簡稱PS)、邊緣服務(wù)(又分直播RTS、點(diǎn)播VODS)、管理服務(wù)器(MS);
? ? ? i.?????????????PublishServer : 視頻發(fā)布源服務(wù)器,PS服務(wù)器收到主播發(fā)布視頻流后,向MS管理服務(wù)器上報(bào)主播頻道信息;然后向所有邊緣RTS服務(wù)器轉(zhuǎn)送視頻流;
? ? ? ii.?????????????ManageServer: MS管理著所有PS、MTS、VODS、WebServer以及WebChat服務(wù);當(dāng)MS收到PublishServer主播頻道信息后,更新主播頻道信息及狀態(tài);然后將改頻道信息發(fā)布到所有MST和WebServer服務(wù)器去;
? ? ? iii.?????????????RealTimeServer:RTS是作為實(shí)時(shí)的直播服務(wù)器,它在收到MS更新的頻道信息后,向所有登錄到它自身的客戶端推送該channel信息;
? ? ? iv.?????????????WebServer:改服務(wù)器主要向?yàn)g覽器用戶提供網(wǎng)頁視頻服務(wù),用戶同樣可以在瀏覽器上觀看直播、點(diǎn)播,并可與改頻道的主播及觀眾進(jìn)行聊天;
? ? ? v.?????????????WebChat:WebChat服務(wù)器收到MS更新的頻道信息,創(chuàng)建新頻道聊天室;聊天室方案同時(shí)兼容了android、ios、pc等不同類型客戶端同時(shí)在線聊天;
三、 APP
? ? ? APP應(yīng)用具備視頻直播、點(diǎn)播、聊天等基本功能,視頻播放還兼容多種流媒體協(xié)議如rtps/rtmp/http等;基本功能如下:
? ? ? i.?????????????webchat登陸:用戶線填寫昵稱,然后自動(dòng)登陸到聊天服務(wù)器;
? ? ? ii.?????????????頻道更新:app在啟動(dòng)時(shí)就立即向WebServer拉去最新的頻道清單;
? ? ? iii.?????????????APP布局包括有:頭條熱點(diǎn)、校園視訊、在線學(xué)科、直播頻道等;布局內(nèi)容可以由后臺(tái)管理者編輯更新并有推送到所有客戶端去,可隨時(shí)增加減少頻道;
? ? ? iv.?????????????點(diǎn)播功能包括有快進(jìn)、快退、暫停、播放等基本功能;
? ? ? v.?????????????實(shí)時(shí)直播攝像頭或電腦桌面等視頻流;
? ? ?觀看直播截圖:
四、WebServer
? ? ?WebServer前端包括了視頻播放插件以及聊天窗口;觀眾在進(jìn)入主頁后選擇要觀看的頻道,即可在觀看視頻同時(shí),通過聊天窗口與主播以及其他觀眾互動(dòng);在瀏覽器上播放及聊天截圖:
? ? ?
圖41 瀏覽器視頻觀看及聊天
五、PC推送端
? ? ?客戶端程序的主要目的,是實(shí)現(xiàn)采集視頻設(shè)備(攝像頭/桌面)和音頻設(shè)備(麥克風(fēng)),并生成RTMP視頻流,推送到PS服務(wù)器,以實(shí)現(xiàn)APP/Web直播功能。目前音頻和視頻編碼格式,分別支持AAC編碼和H.264編碼。PC視頻推送截圖:
? ? ?
圖5.1 攝像頭視頻采集
圖5.2 桌面視頻采集
六、Ubuntu 下視頻采集發(fā)布
? ? 我們可以使用ffmpeg進(jìn)行視頻轉(zhuǎn)碼、采集、流生成的操作,如下:
? ? 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流轉(zhuǎn)發(fā)
? ? ? ??./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可以簡易滿足基本的功能需求,但面向業(yè)務(wù)需求的話還需進(jìn)行二次開發(fā)。
備注:
? ??
? ? 應(yīng)用源碼下載:
? ? http://download.csdn.net/detail/yqw2007/8409253
? ? http://download.csdn.net/detail/yqw2007/9524895
? ? linux下攝像頭視頻采集rtmp封裝可參看源碼:
? ??http://download.csdn.net/detail/yqw2007/8423337
? ? 聯(lián)系合作QQ:297246250
? ? (原創(chuàng),轉(zhuǎn)載請備注)
總結(jié)
以上是生活随笔為你收集整理的移动视频直播点播方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zuk z2 android 8,骁龙8
- 下一篇: 组件的概念理解