姜海嵐 程琳
摘要:隨著 “三網(wǎng)融合”時(shí)代的到來(lái),實(shí)時(shí)視頻傳輸技術(shù)已經(jīng)廣泛應(yīng)用到我們工作、學(xué)習(xí)、生活。Android平臺(tái)下的實(shí)時(shí)視頻傳輸技術(shù)也在不斷地發(fā)展,相關(guān)的技術(shù)解決方案是我們本課題研究的主要目標(biāo)。本文對(duì)Android平臺(tái)下實(shí)時(shí)視頻傳輸?shù)南嚓P(guān)技術(shù)做了一定的研究,在基于J2EE的B/S的多層架構(gòu)之上,采用流媒體技術(shù)、FFmpeg、RTMP、HLS等協(xié)議,前端采用Smarty模塊引擎,設(shè)計(jì)了移動(dòng)端實(shí)時(shí)視頻傳輸?shù)慕鉀Q方案,滿足了用戶需求。
關(guān)鍵詞:Andorid;實(shí)時(shí)視頻;m3u8Smarty
中圖分類號(hào):TP311? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? 文章編號(hào):1009-3044(2018)34-0027-01
1實(shí)時(shí)音視頻傳輸涉及協(xié)議及關(guān)鍵技術(shù)
1.1 實(shí)時(shí)音視頻數(shù)據(jù)采集協(xié)議FFmpeg
FFmpeg是一個(gè)包含多種音視頻處理方法的Linux下開源項(xiàng)目[1],是一個(gè)完全的、跨平臺(tái)的可以用來(lái)記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源多媒體框架,可以輕易地實(shí)現(xiàn)多種視頻格式之間的相互轉(zhuǎn)換。它不僅在音視頻處理方面具有較高的效率,還具有非常好的擴(kuò)展性[1]。
1.2 實(shí)時(shí)音視頻數(shù)據(jù)網(wǎng)絡(luò)傳輸協(xié)議
1.2.1 RTMP協(xié)議
RTMP(Real Time Message Protocol)是一種進(jìn)行實(shí)時(shí)數(shù)據(jù)通信的應(yīng)用層協(xié)議,由Adobe公司提出,用來(lái)解決多媒體數(shù)據(jù)傳輸流的多路復(fù)用和分包的問(wèn)題,可以提高緩存的利用率。
1.2.2 HLS協(xié)議
HLS(HTTP Live Streaming)協(xié)議是蘋果公司提出的基于HTTP的流媒體網(wǎng)絡(luò)傳輸協(xié)議[2]。它的工作原理是把整個(gè)流分成一個(gè)個(gè)小的基于HTTP的文件來(lái)下載,每次只下載一部分。當(dāng)媒體流正在播放時(shí),客戶端可以選擇從許多不同的備用源中以不同的速率下載同樣的資源,減少用戶的請(qǐng)求響應(yīng)時(shí)間。HLS協(xié)議更適合用于移動(dòng)端的實(shí)時(shí)視頻傳輸。
1.3 RTSP協(xié)議
RTSP(Real Time Streaming Protocol)實(shí)時(shí)流傳輸協(xié)議是TCP/IP協(xié)議體系中的一個(gè)應(yīng)用層協(xié)議,它能提供基于TCP或UDP協(xié)議的數(shù)據(jù)傳輸。
2 Android平臺(tái)下實(shí)時(shí)視頻傳輸系統(tǒng)的設(shè)計(jì)
在對(duì)當(dāng)前各種實(shí)時(shí)視頻傳輸?shù)年P(guān)鍵技術(shù)進(jìn)行研究后,我們?cè)O(shè)計(jì)搭建了一套可用于Android平臺(tái)的音視頻傳輸系統(tǒng),實(shí)現(xiàn)視頻數(shù)據(jù)采集、處理、傳輸、播放等功能,并且在無(wú)線局域網(wǎng)環(huán)境下利用手機(jī)和對(duì)系統(tǒng)進(jìn)行測(cè)試。
2.1 系統(tǒng)設(shè)計(jì)思路
系統(tǒng)設(shè)計(jì)貫徹“安全性、標(biāo)準(zhǔn)性和開放性的原則,同時(shí)保證系統(tǒng)的先進(jìn)性、實(shí)用性、成熟性、可靠性、高性能、可擴(kuò)展性、可伸縮性、易操作性以及易管理性”的建設(shè)原則。本方案采用了專業(yè)的J2EE的B/S多層開發(fā)框架以及先進(jìn)的流媒體服務(wù)技術(shù)。
基于J2EE的B/S開發(fā)框架采用開放式架構(gòu),先進(jìn)而成熟的技術(shù),在滿足目前需求的前提下,充分考慮了系統(tǒng)的擴(kuò)展性和集成能力,而流媒體技術(shù)則完美解決了實(shí)時(shí)視頻采集時(shí)遇到的大視頻文件及大量用戶在線的種種難題。
從整體設(shè)計(jì)上,關(guān)注系統(tǒng)的靈活應(yīng)變能力和穩(wěn)定性,在為用戶提供先進(jìn)方便使用的同時(shí)也能保證系統(tǒng)不會(huì)出現(xiàn)差錯(cuò)。
2.2 系統(tǒng)技術(shù)路線
為滿足本系統(tǒng)功能、性能和技術(shù)要求,本項(xiàng)目采用如下技術(shù)路線實(shí)現(xiàn)。
l 基于J2EE的B/S多層架構(gòu);
l 采用了Smarty模塊引擎,使程序員同前端人員分離,使程序員改變程序的邏輯內(nèi)容不會(huì)影響到前端人員的頁(yè)面設(shè)計(jì),前端人員重新修改頁(yè)面不會(huì)影響到程序的程序邏輯。
l 采用了流媒體技術(shù),可以將一個(gè)視頻傳送服務(wù)器把節(jié)目當(dāng)成數(shù)據(jù)包發(fā)出,傳送到網(wǎng)絡(luò)上。用戶通過(guò)解壓設(shè)備對(duì)這些數(shù)據(jù)進(jìn)行解壓后,視頻就會(huì)像發(fā)送前那樣顯示出來(lái)。不僅使視頻啟動(dòng)延時(shí)成十倍、百倍地縮短,而且不需要太大的緩存容量。避免了用戶必須等待整個(gè)文件全部從Internet上下載才能觀看的缺點(diǎn)。
l 采用XML標(biāo)準(zhǔn),提供同其他系統(tǒng)的數(shù)據(jù)交換接口。
l 采用組件化結(jié)構(gòu)。
l 支持Web Service
3 總結(jié)
本文研究的Android平臺(tái)下實(shí)時(shí)視頻傳輸?shù)年P(guān)鍵技術(shù),是山東省教育廳高校科技計(jì)劃項(xiàng)目“基于智能手機(jī)的圖像采集及應(yīng)用服務(wù)平臺(tái)的研究與實(shí)現(xiàn)”①中的重要技術(shù)組成部分,它解決了項(xiàng)目中視頻傳輸實(shí)時(shí)性的問(wèn)題,對(duì)卡頓、延遲做了較好的處理,最大程度幫助考試管理機(jī)構(gòu)實(shí)現(xiàn)考務(wù)移動(dòng)管理及監(jiān)測(cè),大幅提升了考試管理機(jī)構(gòu)的管理信息化水平。
注釋:
①? 指山東省教育廳的山東省高等學(xué)??萍加?jì)劃項(xiàng)目“基于智能手機(jī)的圖像采集及應(yīng)用服務(wù)平臺(tái)的研究與實(shí)現(xiàn)”
參考文獻(xiàn):
[1] 席文強(qiáng).基于FFmpeg的高清實(shí)時(shí)直播系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)安大學(xué),2017.
[2] 潘浩.基于Android的HLS播放器的實(shí)現(xiàn)和優(yōu)化[J].軟件雜志,2014,35(6).
【通聯(lián)編輯:唐一東】