《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Darwin的多平臺(tái)多用戶直播、點(diǎn)播系統(tǒng)設(shè)計(jì)
基于Darwin的多平臺(tái)多用戶直播、點(diǎn)播系統(tǒng)設(shè)計(jì)
2015年電子技術(shù)應(yīng)用第8期
張 彤1,蘆愛(ài)余2,莫建文2
1.桂林電子科技大學(xué) 機(jī)電工程學(xué)院,廣西 桂林541004; 2.桂林電子科技大學(xué) 信息與通信工程學(xué)院,廣西 桂林541004
摘要: 針對(duì)當(dāng)前多平臺(tái)多用戶播放手機(jī)客戶端直播、錄像視頻的需求,提出了一種手機(jī)移動(dòng)客戶端主動(dòng)推送視頻流到Darwin服務(wù)器直播、轉(zhuǎn)播及錄制供多平臺(tái)多用戶播放的解決方案。利用開(kāi)源的流媒體服務(wù)器Darwin結(jié)合開(kāi)源庫(kù)mp4v2實(shí)現(xiàn)將手機(jī)客戶端上傳的視頻流實(shí)時(shí)轉(zhuǎn)發(fā)和錄制;PC平臺(tái)客戶端由開(kāi)源RTSP架構(gòu)live555結(jié)合開(kāi)源編解碼庫(kù)ffmpeg實(shí)現(xiàn)視頻直播、點(diǎn)播播放。Web平臺(tái)客戶端由Html5技術(shù)實(shí)現(xiàn)視頻點(diǎn)播,由插件實(shí)現(xiàn)直播。實(shí)驗(yàn)結(jié)果表明,該方案在現(xiàn)有的3G網(wǎng)絡(luò)上具有較高的實(shí)時(shí)性和穩(wěn)定性,視頻具有較好的質(zhì)量,能滿足多平臺(tái)多用戶視頻直播、點(diǎn)播播放的要求。
中圖分類號(hào): TP37
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2015.08.035

中文引用格式: 張彤,蘆愛(ài)余,莫建文. 基于Darwin的多平臺(tái)多用戶直播、點(diǎn)播系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2015,41(8):124-127.
英文引用格式: Zhang Tong,Lu Aiyu,Mo Jianwen. Design of live video streaming, video-on-demand system based on Darwin[J].Application of Electronic Technique,2015,41(8):124-127.
Design of live video streaming, video-on-demand system based on Darwin
Zhang Tong1,Lu Aiyu2,Mo Jianwen2
1.School of Mechanical and Electrical Engineering,Guilin University of Electronic Technology,Guilin 541004,China; 2.School of Information and Communication Engineering,Guilin University of Electronic Technology,Guilin 541004,China
Abstract: Aiming at the demands of multi-user and multi-platform watching live streaming and video from mobile client, a method of mobile client initiatively push video streams to Darwin Streaming Server for multi-user and multi-platform watching has been presented. Open source Darwin streaming server combined with the open source of mp4v2 were used to achieve uploading streaming retransmission and recording from mobile client. PC platform client realized live streaming and demand viewing by open RTSP architecture live555 combined with open codec library ffmpeg. Web platform client implemented demand viewing by the technology of HTML5 and live streaming. The experimental results show that the solution has high real-time and stability performance in 3G network. It has a better video′s quality and could meet requirements of multi-user and multi-platform watching live streaming and video.
Key words : Darwin streaming server;mobile client;initiative pushing;multi-user and multi-platform watching;ffmpeg

    

0 引言

    隨著3G、4G移動(dòng)互聯(lián)網(wǎng)的發(fā)展,市場(chǎng)上利用手機(jī)等移動(dòng)設(shè)備實(shí)現(xiàn)視頻會(huì)議的方案越來(lái)越多。無(wú)論哪種方案,基本都是由移動(dòng)設(shè)備客戶端、服務(wù)器端、視頻播放客戶端三部分組成。而視頻播放客戶端不外乎采用客戶端/服務(wù)器端(C/S)或?yàn)g覽器/服務(wù)器端(B/S)架構(gòu)。代表性的方案有利用WEBRTC實(shí)現(xiàn)基于谷歌瀏覽器的視頻會(huì)議系統(tǒng)[1-2]。這種B/S架構(gòu)的用戶通過(guò)系統(tǒng)內(nèi)置的攝像頭和麥克風(fēng)采集視頻圖像和語(yǔ)音信號(hào),通過(guò)谷歌瀏覽器接入Internet建立連接,在網(wǎng)絡(luò)傳輸層利用RTP/RTCP協(xié)議實(shí)時(shí)傳輸語(yǔ)音和視頻數(shù)據(jù)給其他客戶端。這種架構(gòu)的優(yōu)點(diǎn)是無(wú)需安裝插件即可在瀏覽器上打開(kāi)視頻會(huì)議,但是視頻編碼采用VP8編碼方式,大部分手機(jī)不提供支持,而且在多人視頻會(huì)議時(shí),會(huì)因帶寬不足影響會(huì)議質(zhì)量?;贑++的crtmpserver流媒體服務(wù)器[3]使用RTMP[4]協(xié)議,在Linux平臺(tái)下運(yùn)行,支持將手機(jī)上傳的RTMP流轉(zhuǎn)發(fā)、存儲(chǔ)的功能。RTMP協(xié)議的客戶端是Flash,可以很好地支持B/S架構(gòu)的流媒體服務(wù)器設(shè)計(jì)。然而RTMP協(xié)議基于TCP/IP協(xié)議,不支持UDP協(xié)議,所以網(wǎng)絡(luò)負(fù)荷比UDP大,傳輸速度也要比UDP慢。

    本系統(tǒng)采用開(kāi)源的Darwin流媒體服務(wù)器對(duì)實(shí)時(shí)視頻流進(jìn)行處理,結(jié)合開(kāi)源庫(kù)mp4v2[5]實(shí)現(xiàn)實(shí)時(shí)視頻的轉(zhuǎn)發(fā)和錄制。Darwin服務(wù)器[6]基于RTSP協(xié)議進(jìn)行傳輸,相比RTMP協(xié)議,支持TCP/IP協(xié)議和UDP/RTP協(xié)議,具有更高的實(shí)時(shí)性。系統(tǒng)使用手機(jī)硬編碼實(shí)時(shí)采集音視頻數(shù)據(jù)。C/S播放客戶端采用開(kāi)源RTSP架構(gòu)live555[7]結(jié)合開(kāi)源編解碼庫(kù)ffmpeg實(shí)現(xiàn)視頻直播、點(diǎn)播播放。B/S播放客戶端采用Html5[8]技術(shù)實(shí)現(xiàn)視頻點(diǎn)播,由支持RTSP協(xié)議的VLC Flash插件實(shí)現(xiàn)直播。

1 多平臺(tái)播放解決方案模型

    系統(tǒng)由移動(dòng)設(shè)備客戶端、服務(wù)器端、視頻播放客戶端三部分組成。本文中實(shí)驗(yàn)的移動(dòng)客戶端為支持安卓系統(tǒng)的手機(jī),通過(guò)調(diào)用手機(jī)設(shè)備上的攝像頭和麥克風(fēng),進(jìn)行音視頻采集。由于在3G網(wǎng)絡(luò)下服務(wù)器訪問(wèn)手機(jī)移動(dòng)IP地址需要“打洞”,故采用手機(jī)主動(dòng)推送的方式進(jìn)行視頻傳輸。服務(wù)器端采用支持RTSP協(xié)議的Darwin Stream Server開(kāi)源服務(wù)器,負(fù)責(zé)RTSP流的轉(zhuǎn)發(fā),因不支持視頻存儲(chǔ)功能,所以結(jié)合開(kāi)源庫(kù)mp4v2實(shí)現(xiàn)服務(wù)器端視頻流的錄制,存儲(chǔ)手機(jī)客戶端采集的視頻到服務(wù)器上。播放客戶端包括C/S架構(gòu)的PC播放客戶端和B/S架構(gòu)的瀏覽器客戶端,實(shí)現(xiàn)在播放列表中直播或點(diǎn)播文件。系統(tǒng)整體架構(gòu)如圖1所示。

jsj1-t1.gif

2 手機(jī)端設(shè)計(jì)

2.1 手機(jī)端方案

    利用手機(jī)本身硬件的編碼功能,視頻采用H264編碼,音頻采用AAC編碼,將編碼后的音視頻數(shù)據(jù)封裝到RTP包中發(fā)送到服務(wù)器端。手機(jī)客戶端主要由音視頻采集及編碼模塊、RTP/RTCP[9]數(shù)據(jù)壓縮及控制模塊、RTSP傳輸控制模塊三部分組成,流程框圖如圖2所示。

jsj1-t2.gif

2.2 模塊設(shè)計(jì)

    (1)音視頻采集及編碼模塊

    采用MediaRecorder類,首先調(diào)用該類的setAudioSource和setVideoSource設(shè)置音視頻采集源,再通過(guò)該類的setAudioEncoder()和setVideoEncoder()設(shè)置音視頻的編碼方式。以h.264視頻編碼為例,調(diào)用該類中的SetoutputFile函數(shù)綁定LocalSocket實(shí)現(xiàn)。在編碼過(guò)程中可以使用硬編碼的方式,硬編碼是在預(yù)覽過(guò)程提前確定視頻的sps、pps、head(一般為0x00000001)。

    (2)RTP/RTCP數(shù)據(jù)壓縮及控制模塊

    RTP包傳送可以基于UDP或者TCP,采用TCP作為傳輸層協(xié)議注重可靠性而不是及時(shí)性,在RTP傳輸過(guò)程中應(yīng)用很少,大部分RTP包發(fā)送都是采用UDP方式。在RTP會(huì)話過(guò)程前,發(fā)送方需要確定接收方的目標(biāo)IP及接收端口。

    (3)RTSP傳輸控制模塊

    RTSP協(xié)議作為應(yīng)用層協(xié)議,RTSP命令的傳輸是基于TCP協(xié)議,RTSP本身不作為數(shù)據(jù)傳輸?shù)膮f(xié)議,而是作為一種流媒體傳輸過(guò)程的控制協(xié)議。

    通過(guò)RTSP與服務(wù)器進(jìn)行音視頻流媒體傳輸有兩種方式:拉模式和推模式。拉模式是主從模式,拉方(例如視頻播放客戶端)需要維護(hù)各個(gè)被拉方(例如攝像頭)的狀態(tài),如url信息、端口信息等,只有拉方主動(dòng)請(qǐng)求被拉方告知相應(yīng)信息才能啟動(dòng)。推模式主動(dòng)權(quán)在推方(本文即為安卓移動(dòng)設(shè)備端),從接方(本文即為Darwin服務(wù)器)來(lái)看,只要做好標(biāo)準(zhǔn)接口即可,無(wú)需關(guān)注有多少推方會(huì)推送數(shù)據(jù)。由于移動(dòng)設(shè)備在3G網(wǎng)絡(luò)下,如果選擇拉模式,同一個(gè)網(wǎng)段下還需穿透NAT,即“打洞”,不方便做遠(yuǎn)程音視頻傳輸,所以選擇推模式下的視頻傳輸。

3 Darwin服務(wù)器端設(shè)計(jì)

    本系統(tǒng)中服務(wù)器端負(fù)責(zé)轉(zhuǎn)發(fā)和存儲(chǔ)音視頻數(shù)據(jù),主要由RTSP連接建立模塊、視頻轉(zhuǎn)發(fā)模塊及視頻錄制模塊三部分構(gòu)成。視頻播放客戶端發(fā)送RTSP請(qǐng)求,Darwin流媒體服務(wù)器通過(guò)Modules發(fā)送數(shù)據(jù)包來(lái)回復(fù)客戶,處理相應(yīng)的RTSP請(qǐng)求。Darwin服務(wù)器作為流媒體客戶端的中繼代理,移動(dòng)設(shè)備在RTSP協(xié)議中的ANNOUNCE命令攜帶.sdp文件到Darwin服務(wù)器接收sdp的目錄文件中。此后視頻播放客戶端就可以通過(guò)rtsp://<DSS IP>/***.sdp請(qǐng)求.sdp文件獲取到手機(jī)客戶端對(duì)應(yīng)地址和端口的流。由于Darwin服務(wù)器本身不支持視頻錄制,故加入開(kāi)源庫(kù)mp4v2實(shí)現(xiàn)視頻錄制,具體各模塊如下:

3.1 RTSP連接建立模塊

    Darwin Streaming Server定義了RTSPListenerSocket Class,它繼承自TCPListenerSocket Class,用于對(duì)RTSP連接請(qǐng)求進(jìn)行處理,進(jìn)入RTSP狀態(tài)機(jī)。通過(guò)RTSPSession對(duì)象完成對(duì)請(qǐng)求類型的匹配,如果匹配成功,則注冊(cè)QTSS_RTSPPreProcessor_Role角色的模式。在這個(gè)角色模式下,進(jìn)入QTSSReflectorModule類處理了每種RTSP消息,比如本次RTSP請(qǐng)求的Describe、Setup、Play指令。該類中針對(duì)各種請(qǐng)求指令都有對(duì)應(yīng)的單獨(dú)函數(shù)處理,分別對(duì)應(yīng)著DoAnnounce、DoDescribe、DoSetup和DoPlay函數(shù)。除此之外,RTSP狀態(tài)機(jī)的終結(jié)點(diǎn)所在位置也是在QTSSReflectorModule類中,通過(guò)Shutdown()函數(shù)實(shí)現(xiàn)RTSP會(huì)話的結(jié)束。

3.2 視頻轉(zhuǎn)發(fā)建立模塊

    當(dāng)收到一路RTSP連接請(qǐng)求時(shí),在DSS中為RTSPSession類對(duì)象,首先需要解析請(qǐng)求頭部是否為轉(zhuǎn)發(fā)請(qǐng)求,進(jìn)而解析其請(qǐng)求的后續(xù)部分。進(jìn)行查詢字符串的解析,得到需要轉(zhuǎn)發(fā)的具體url,建立一路面向url源的會(huì)話,通過(guò)Describe命令獲取到sdp信息進(jìn)行保存,再轉(zhuǎn)發(fā)到請(qǐng)求Describe的客戶端,而且Setup、Play分別將對(duì)應(yīng)的響應(yīng)碼返回給客戶端,在轉(zhuǎn)發(fā)具體的數(shù)據(jù)時(shí),建立一路ReflectorSession,將獲取到的rtp數(shù)據(jù)轉(zhuǎn)發(fā)到添加進(jìn)ReflectorSession轉(zhuǎn)發(fā)列表的客戶端中。

3.3 視頻錄制模塊

    要實(shí)現(xiàn)視頻錄制,首先需要找到音視頻RTP數(shù)據(jù)包,然后將編碼過(guò)后的H264視頻和AAC音頻數(shù)據(jù)從RTP包中按續(xù)提取出來(lái),并以MP4文件格式封裝,最后存成文件。在Darwin服務(wù)器中的ProcessRTPData()函數(shù)內(nèi)部處理處理接收到的RTP包,提取char*  packetData數(shù)據(jù)傳遞到MP4文件生成函數(shù)中。具體通過(guò)創(chuàng)建MP4文件句柄、設(shè)置時(shí)間標(biāo)度、添加h264視頻軌道及aac音頻軌道[10]、添加序列參數(shù)集和圖像參數(shù)集,最后再寫入文件的方式生成MP4文件。具體視頻存儲(chǔ)步驟如下:

    (1)通過(guò)MP4Create創(chuàng)建MP4文件句柄。

    (2)通過(guò)MP4SetTimeScale設(shè)置時(shí)間標(biāo)度,即每秒的時(shí)鐘ticks數(shù)。

    (3)通過(guò)MP4AddH264VideoTrack添加h264視頻track,MP4AddAudioTrack添加aac音頻track。

    (4)通過(guò)MP4AddH264SequenceParameterSet和MP4AddH264PictureParameterSet添加序列參數(shù)集和圖像參數(shù)集。

    (5)通過(guò)MP4WriteSample寫一幀視頻數(shù)據(jù)或?qū)懸欢我纛l數(shù)據(jù)。

    其中duration這個(gè)參數(shù)是用來(lái)實(shí)現(xiàn)音視頻同步用的,如果設(shè)置錯(cuò)了會(huì)造成音視頻不同步,甚至?xí)霈F(xiàn)crash現(xiàn)象。對(duì)于視頻流MP4WriteSample函數(shù),每次調(diào)用是錄制前一幀數(shù)據(jù),用當(dāng)前幀的時(shí)間戳和前一幀的時(shí)間戳計(jì)算duration值,然后把當(dāng)前幀保存下來(lái)在下次調(diào)用MP4WriteSample時(shí)用,寫音頻數(shù)據(jù)一樣。

    (6)通過(guò)MP4Close關(guān)閉打開(kāi)的MP4文件。

4 B/S架構(gòu)及C/S架構(gòu)客戶端設(shè)計(jì)

4.1 C/S架構(gòu)客戶端原理

    C/S架構(gòu)的播放客戶端通過(guò)支持RTSP的開(kāi)源live555構(gòu)建與手機(jī)移動(dòng)客戶端的RTSP通信,通過(guò)開(kāi)源編解碼框架ffmpeg的解碼功能進(jìn)行解碼。

    通過(guò)live555構(gòu)建RTSP的過(guò)程為:首先創(chuàng)建BasicTaskScheduler和BasicUsageEnvironment對(duì)象,用于調(diào)度不同事件。創(chuàng)建RTSPClient對(duì)象,由RTSPClient對(duì)象向服務(wù)器發(fā)送RTSP中的OPTION消息命令并等待接受回應(yīng),返回SDPDescription字符串即sdp文件內(nèi)容。在任務(wù)調(diào)度while循環(huán)中配置所有子會(huì)話對(duì)象,為每個(gè)子會(huì)話創(chuàng)建RTPSource和RTCPInstance對(duì)象,并創(chuàng)建兩個(gè)GroupSock對(duì)象。將每個(gè)GroupSock對(duì)象中創(chuàng)建的socket描述符置入 BasicTaskScheduler::fReadSet中,RTPSource對(duì)象的創(chuàng)建的依據(jù)是SDPDescription。由RTSPClient對(duì)象向服務(wù)器發(fā)送SETUP消息并接受回應(yīng),while循環(huán)中為每個(gè)子會(huì)話創(chuàng)建接收器FileSink對(duì)象,由RTSPClient對(duì)象向服務(wù)器發(fā)送PLAY消息并接受回應(yīng),F(xiàn)ileSink的緩沖區(qū)和包含寫入文件操作的一個(gè)函數(shù)指針配置給RTPSource對(duì)象,這個(gè)緩沖區(qū)將會(huì)在networkReadHandler中接收來(lái)自網(wǎng)絡(luò)的視音頻數(shù)據(jù)。

    獲取到音視頻數(shù)據(jù)后,通過(guò)ffmpeg[11]的解碼功能進(jìn)行解碼處理,流程如圖3所示。

jsj1-t3.gif

    avformat_open_input函數(shù)對(duì)輸入的文件名進(jìn)行解析,并發(fā)起與Darwin服務(wù)器的RTSP交互。在數(shù)據(jù)讀取線程中,使用rtsp_read_packet函數(shù)用于每個(gè)RTP包的讀取和第一次排序解析。首先調(diào)用rtp_read函數(shù)從緩沖區(qū)獲取數(shù)據(jù),然后通過(guò)包隊(duì)列交給RTP解析函數(shù)rtp_parse_packet進(jìn)行第一次解析。第一次解析的目的是對(duì)包進(jìn)行重新排序,解決因?yàn)榫W(wǎng)絡(luò)抖動(dòng)導(dǎo)致接收到的包序列號(hào)不連續(xù)的問(wèn)題。具體是根據(jù)RTP協(xié)議解析RTP包頭信息,對(duì)RTP包頭的包序列號(hào)按遞增順序重新排序。然后調(diào)用av_parser_parse2函數(shù)對(duì)RTP包進(jìn)行第二次重組幀解析,目的是將包中的數(shù)據(jù)重新按幀進(jìn)行組合,組成一幀數(shù)據(jù)的avpacket。

4.2 B/S架構(gòu)的實(shí)現(xiàn)

    B/S架構(gòu)的服務(wù)器端采用Apache服務(wù)器,Web客戶端采用HTML5的技術(shù)直接播放緩存在Darwin服務(wù)器下的MP4[12]視頻。Web客戶端通過(guò)訪問(wèn)Darwin服務(wù)器下錄制視頻存放的文件夾,獲取mp4后綴的文件名,輸出到Web客戶端播放列表中。Web客戶端實(shí)現(xiàn)圖片保存及視頻大小控制等功能。注冊(cè)VLC的ActiveX[13]嵌入到網(wǎng)頁(yè)中,實(shí)現(xiàn)直播功能。B/S架構(gòu)播放客戶端如圖4所示。

jsj1-t4.gif

5 測(cè)試及分析

    根據(jù)上述設(shè)計(jì),客戶端采用B/S架構(gòu)的Web客戶端及C/S架構(gòu)的PC客戶端均可正常觀看直播視頻,通過(guò)mp4v2可實(shí)現(xiàn)視頻存儲(chǔ)功能。本系統(tǒng)服務(wù)器使用中國(guó)電信100M光纖網(wǎng)絡(luò),用60個(gè)B/S架構(gòu)及C/S架構(gòu)客戶端分3組同時(shí)請(qǐng)求3路手機(jī)推送視頻。3路手機(jī)視頻端碼率均設(shè)為為500 kb/s,視頻采集分辨率分別為320×240、640×480、720×1 280,并在720p分辨率的條件下分3次在中國(guó)聯(lián)通3G網(wǎng)絡(luò)、中國(guó)電信3G網(wǎng)絡(luò)及無(wú)線WiFi網(wǎng)絡(luò)下分別統(tǒng)計(jì)手機(jī)移動(dòng)客戶端的視頻播放延遲時(shí)間。其中服務(wù)器所用的硬件環(huán)境為:中央處理器:Inter Core I5-2 450 M 2.5 GHz雙核四線程;內(nèi)存:4 GB DDR3 1 333 MHz;硬盤:5 400 rad/min;操作系統(tǒng):32位 Windows7 操作系統(tǒng)。

    播放客戶端通過(guò)RTSP請(qǐng)求觀看直播,請(qǐng)求如:rtsp:// 202.193.53.103/teststream.sdp,由sdp文件名區(qū)分不同推送視頻源。表1統(tǒng)計(jì)了在中國(guó)聯(lián)通3G網(wǎng)絡(luò)、中國(guó)電信3G網(wǎng)絡(luò)及無(wú)線WiFi網(wǎng)絡(luò)下分別統(tǒng)計(jì)手機(jī)移動(dòng)客戶端的視頻播放延遲時(shí)間。

jsj1-b1.gif

    通過(guò)60個(gè)客戶端同時(shí)請(qǐng)求服務(wù)器連接,表明服務(wù)器在帶寬為100M光纖網(wǎng)絡(luò)的條件下,可以同時(shí)滿足60個(gè)用戶同時(shí)請(qǐng)求連接??蛻舳送瑫r(shí)請(qǐng)求的數(shù)量由服務(wù)器網(wǎng)絡(luò)帶寬決定。通過(guò)分別在中國(guó)聯(lián)通3G網(wǎng)絡(luò)、中國(guó)電信3G網(wǎng)絡(luò)及無(wú)線WiFi網(wǎng)絡(luò)下推送視頻的播放延遲區(qū)別表明,系統(tǒng)整體滿足不同網(wǎng)絡(luò)條件下的需求,具有較好的實(shí)時(shí)性。

6 結(jié)束語(yǔ)

    本文通過(guò)移動(dòng)設(shè)備客戶端、服務(wù)器端、視頻播放客戶端組成的系統(tǒng)架構(gòu)闡述了一個(gè)新的視頻直播、錄制及多平臺(tái)播放的解決方案。詳細(xì)討論了移動(dòng)設(shè)備客戶端音視頻采集及傳輸方案、服務(wù)器端的轉(zhuǎn)發(fā)及存儲(chǔ)方案,以及視頻播放客戶端的兩種架構(gòu),分析了基于live555的RTSP通信過(guò)程及基于mp4v2的視頻存儲(chǔ)過(guò)程,開(kāi)發(fā)出了整套直播、點(diǎn)播系統(tǒng)。同時(shí),設(shè)計(jì)了相應(yīng)的測(cè)試實(shí)驗(yàn),為實(shí)現(xiàn)高可靠、高實(shí)時(shí)性的視頻直播系統(tǒng)提供了一種較為可行的方法。

參考文獻(xiàn)

[1] ELLEUCH W.Models for multimedia conference between browsers based on WebRTC[C].Wireless and Mobile Computing,Networking and Communications(WiMob),2013 IEEE 9th International Conference on,IEEE,2013:279-284.

[2] RHINOW F,VELOSO P P,PUYELO C,et al.P2P live video streaming in WebRTC[C].2014 World Congress on WCCAIS,2014:1-6.

[3] 丁杰,潘晨光,田源.基于crtmpserver的手機(jī)直播系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2014,35(9):3173-3178.

[4] 姜浩然,徐林.基于RTMP的流媒體服務(wù)器的研究[J].計(jì)算機(jī)與數(shù)字工程,2011,39(10):104-108.

[5] 史紅周,黃晁.一種基于MP4文件的視頻流關(guān)鍵幀索引播放方法[J].微電子學(xué)與計(jì)算機(jī),2002,19(7):44-47.

[6] 李新樂(lè),蘇鴻根.流媒體搜索和發(fā)布技術(shù)在移動(dòng)設(shè)備上的應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(6):1428-1431.

[7] 茅炎菲,黃忠東.基于RTSP協(xié)議網(wǎng)絡(luò)監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(7):2523-2526.

[8] 羅大暉,陳娟.基于HTML5的Web離線應(yīng)用研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2012,29(12):262-264.

[9] 李校林,劉海波,張杰,等.RTP/RTCP,RTSP在無(wú)線視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2011,35(19):89-92.

[10] 韋崇嶺,裴海龍.基于無(wú)人機(jī)平臺(tái)H264視頻傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2012,20(1):209-211.

[11] 劉麗霞,邊金松,張琍,等.基于FFMPEG解碼的音視頻同步實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(6):2087-2092.

[12] 李興華,楊天奇.MP4共享FLV數(shù)據(jù)研究與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2014(3):31-34.

[13] ZHU G,ZHANG F,ZHU W,et al.HTML5 based media player for real-time video surveillance[C].Image and Signal Processing(CISP),2012 5th International Congress on.IEEE,2012:245-248.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。