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