亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Android平臺(tái)下基于RTSP的移動(dòng)直播系統(tǒng)設(shè)計(jì)

        2022-01-22 07:23:20楊海波潘培森
        關(guān)鍵詞:音視頻視圖客戶端

        周 翔,俞 鑫,張 霞,包 瑜,楊海波,潘培森

        Android平臺(tái)下基于RTSP的移動(dòng)直播系統(tǒng)設(shè)計(jì)

        周 翔,俞 鑫,張 霞,包 瑜,楊海波,潘培森

        (南通億榮網(wǎng)絡(luò)科技有限公司 研發(fā)部,江蘇 南通 226000)

        以RTSP/RTP協(xié)議為基礎(chǔ),采用OKHttp進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)傳輸,研制了Android平臺(tái)下基于Rtsp的移動(dòng)直播系統(tǒng)。該系統(tǒng)采用FFMpeg庫并結(jié)合JNI技術(shù)實(shí)現(xiàn)音視頻的編解碼,使用RTSP流媒體服務(wù)器控制流媒體數(shù)據(jù)在IP網(wǎng)絡(luò)上的傳輸。使用過程中發(fā)現(xiàn),該直播系統(tǒng)操作簡(jiǎn)單、畫面清晰、實(shí)時(shí)性強(qiáng)。

        Android;RTSP/RTP協(xié)議;JNI;流媒體服務(wù)器

        目前,移動(dòng)端最主流的流媒體傳輸協(xié)議有RTMP和HLS兩種。RTMP協(xié)議是基于TCP傳輸?shù)模褂梅枪捕丝?,可能?huì)被防火墻阻攔,而且還占用帶寬;采用HLS協(xié)議直播的視頻延遲時(shí)間無法降到10秒以下,實(shí)時(shí)互動(dòng)體驗(yàn)差[1]。RTSP作為實(shí)時(shí)流傳輸協(xié)議,能有效地通過IP網(wǎng)絡(luò)傳送多媒體數(shù)據(jù)。RTP數(shù)據(jù)協(xié)議負(fù)責(zé)對(duì)流媒體數(shù)據(jù)進(jìn)行封包并實(shí)現(xiàn)媒體流的實(shí)時(shí)傳輸,RTP數(shù)據(jù)包都由頭部和負(fù)載兩部分組成,其中頭部前12個(gè)字節(jié)的含義是固定的,負(fù)載可以是音頻或者視頻數(shù)據(jù)。RTSP/RTP協(xié)議具有較強(qiáng)的實(shí)時(shí)性,特別適合傳輸音視頻數(shù)據(jù),但網(wǎng)絡(luò)不穩(wěn)定時(shí),會(huì)出現(xiàn)馬賽克或是視頻短暫卡的住不動(dòng)等現(xiàn)象,直接影響了用戶體驗(yàn)[2]。

        為解決以上問題,本研究在文獻(xiàn)[2]基礎(chǔ)上,提出在系統(tǒng)算法中設(shè)置音視頻緩沖區(qū)的思路,研制了Android平臺(tái)下,基于Rtsp的移動(dòng)直播系統(tǒng)。

        1 系統(tǒng)整體框架

        1.1 移動(dòng)采集端

        系統(tǒng)由移動(dòng)采集終端、移動(dòng)播放終端、服務(wù)器端、PC端4個(gè)部分組成,如圖1所示。

        系統(tǒng)采用Android手機(jī)自帶的攝像頭和麥克風(fēng)對(duì)音視頻數(shù)據(jù)進(jìn)行采集[3]。Camera類采集視頻的原始數(shù)據(jù),AudioRecord類采集音頻原始數(shù)據(jù)。

        采集數(shù)據(jù)基本流程為打開攝像頭、設(shè)置采集參數(shù)、數(shù)據(jù)采集、調(diào)用編碼模塊進(jìn)行編碼。由于視頻原始數(shù)據(jù)中存在著時(shí)間冗余和空間冗余,需要對(duì)原始數(shù)據(jù)進(jìn)行壓縮編碼。系統(tǒng)對(duì)視頻原始數(shù)據(jù)編碼采用H264編碼,對(duì)音頻原始數(shù)據(jù)編碼采用AAC編碼。最后將編碼后的數(shù)據(jù)封裝成RTP包轉(zhuǎn)發(fā)到流媒體服務(wù)器[4]。

        FFmpeg作為一個(gè)跨平臺(tái)的開源視頻框架,能實(shí)現(xiàn)如視頻編碼、解碼、轉(zhuǎn)碼、串流、播放等豐富的功能。支持的播放協(xié)議和視頻格式非常豐富,幾乎包含了所有音視頻編解碼、封裝格式以及播放協(xié)議。利用NDK將FFmpeg交叉編譯成FFmpeg.so動(dòng)態(tài)鏈接庫[5]。使用Java的JNI技術(shù)調(diào)用相應(yīng)的接口函數(shù)來實(shí)現(xiàn)對(duì)音視頻數(shù)據(jù)的編解碼。其中編碼的流程如圖所示:

        圖2 音視頻編碼流程圖

        1.2 移動(dòng)播放端

        視頻的播放就是把一幀一幀的圖像快速連續(xù)地顯示在屏幕上。為達(dá)到播放流暢的效果,使用兩個(gè)線程輪流去解析視頻流的幀圖像,當(dāng)一個(gè)線程解析完幀圖像后,把圖像渲染到界面中,同時(shí)另一線程開始解析下一幀圖像。

        當(dāng)播放端向流媒體服務(wù)器提出播放請(qǐng)求時(shí),Web服務(wù)器會(huì)進(jìn)行認(rèn)證并返回請(qǐng)求結(jié)果。如果請(qǐng)求成功,流媒體服務(wù)器會(huì)向采集端發(fā)送調(diào)取數(shù)據(jù)的指令,視頻采集端收到指令后會(huì)發(fā)送視頻流到流媒體服務(wù)器。流媒體服務(wù)器將實(shí)時(shí)視頻流傳送到Android播放端進(jìn)行解碼并播放,循環(huán)反復(fù)這個(gè)過程,直到結(jié)束請(qǐng)求或視頻采集結(jié)束。

        1.3 服務(wù)器端

        流媒體服務(wù)器獲取音視頻流并實(shí)時(shí)進(jìn)行處理,同時(shí)監(jiān)聽和接收移動(dòng)播放終端的連接請(qǐng)求,當(dāng)請(qǐng)求成功時(shí)向移動(dòng)播放終端發(fā)送音視頻流。由于流媒體服務(wù)器在不同時(shí)刻響應(yīng)不同客戶端的請(qǐng)求,所以為了滿足實(shí)時(shí)性的要求,服務(wù)器端采用多線程的算法。一次基本的RTSP操作過程包括如下步驟。

        首先采用HTTP協(xié)議從Web服務(wù)器獲得該媒體流的演示描述文件。該文件包括視頻服務(wù)器地址、端口號(hào)及視頻服務(wù)的編碼方式等信息。

        然后,客戶端分析該描述文件,并為會(huì)話中的每一個(gè)流發(fā)送一個(gè)RTSP建立命令,RTSP建立命令告訴服務(wù)器客戶端用于接收媒體數(shù)據(jù)的端口。流媒體連接建立完成。

        接著,客戶端發(fā)送一個(gè)播放命令(PLAY),服務(wù)器就開始在UDP上傳送媒體流(RTP包)到客戶端。在播放過程中客戶端還可以向服務(wù)器發(fā)送命令來控制快進(jìn)、快退和暫停等。

        最后,客戶端可發(fā)送一個(gè)終止命令(TERA- DOWN)來結(jié)束流媒體會(huì)話,釋放資源。交互過程如圖3所示。

        圖3 客戶端和RTSP服務(wù)器交互過程

        網(wǎng)絡(luò)管理和Web服務(wù)器通過發(fā)布Web網(wǎng)站共同提供PC客戶端訪問服務(wù)器的網(wǎng)絡(luò)接口,管理員通過網(wǎng)絡(luò)管理,可以對(duì)后臺(tái)進(jìn)行維護(hù)。數(shù)據(jù)庫服務(wù)器是整個(gè)系統(tǒng)的數(shù)據(jù)存儲(chǔ)中心,主要用來存儲(chǔ)所有與系統(tǒng)有關(guān)的媒體文件信息、用戶信息以及聊天消息信息。

        1.4 PC端

        PC端利用本地瀏覽器,通過Web方式訪問網(wǎng)絡(luò)管理中心,實(shí)現(xiàn)對(duì)整個(gè)服務(wù)器上存儲(chǔ)的媒體資源、用戶信息以及服務(wù)器本身的管理和控制。

        2 應(yīng)用軟件設(shè)計(jì)

        OkHttp是一個(gè)高效的HTTP客戶端,它有以下默認(rèn)特性:(1)支持HTTP/2,允許所有同一個(gè)主機(jī)地址的請(qǐng)求共享同一個(gè)socket連接;(2)連接池減少請(qǐng)求延時(shí);(3)透明的GZIP壓縮減少響應(yīng)數(shù)據(jù)的大小;(4)緩存響應(yīng)內(nèi)容,避免一些完全重復(fù)的請(qǐng)求[6]。

        當(dāng)網(wǎng)絡(luò)出現(xiàn)問題的時(shí)候OkHttp依然堅(jiān)守自己的職責(zé),它會(huì)自動(dòng)恢復(fù)一般的連接問題,如果你的服務(wù)有多個(gè)IP地址,當(dāng)?shù)谝粋€(gè)IP請(qǐng)求失敗時(shí),OkHttp會(huì)交替嘗試你配置的其他IP,OkHttp使用現(xiàn)代TLS技術(shù)(SNI, ALPN)初始化新的連接,當(dāng)握手失敗時(shí)會(huì)回退到TLS 1.0[7]?;谝陨蟽?yōu)點(diǎn)使用OkHttp作為應(yīng)用程序HTTP請(qǐng)求客戶端。

        系統(tǒng)客戶端和服務(wù)端間采用的是JSON報(bào)文的形式作為數(shù)據(jù)傳送的格式,客戶端通過HTTP請(qǐng)求后獲取返回的JSON格式的信息,再通過解析JSON數(shù)據(jù)就能獲得所需要的數(shù)據(jù)。

        系統(tǒng)包含啟動(dòng)、導(dǎo)航、應(yīng)用三個(gè)視圖層。每個(gè)視圖層包含的功能如圖4所示。

        圖4 視圖層及包含功能

        2.1 啟動(dòng)視圖

        在啟動(dòng)視圖下,用戶填寫的賬號(hào)和密碼若與服務(wù)器上存儲(chǔ)的賬號(hào)與密碼一致,就彈出登錄成功的界面。如果輸入的密碼錯(cuò)誤達(dá)到3次以上,用戶會(huì)被鎖定,5分鐘后自動(dòng)解鎖。當(dāng)用戶忘記密碼時(shí)可以通過驗(yàn)證手機(jī)號(hào)找回密碼。登錄中需要對(duì)手機(jī)號(hào)和密碼做校驗(yàn),校驗(yàn)格式是否正確。用戶可以在電信、移動(dòng)、聯(lián)通三種網(wǎng)絡(luò)類型間進(jìn)行手動(dòng)切換。點(diǎn)擊“新用戶注冊(cè)”后會(huì)出現(xiàn)注冊(cè)界面用來注冊(cè)新賬號(hào)。其中登錄請(qǐng)求代碼如下:

        2.2 導(dǎo)航視圖

        2.2.1 首頁

        首頁界面包含搜索框和房間列表,用戶可以通過下拉進(jìn)行房間列表刷新。在搜索框中輸入房間ID可以查詢房間,否則提示房間不存在。

        2.2.2 個(gè)人中心

        個(gè)人中心界面主要顯示用戶的一些個(gè)人信息,可以展示頭像、用戶昵稱、用戶ID,可以修改頭像、修改昵稱、修改密碼、退出程序、切換賬戶等功能。

        2.3 應(yīng)用視圖

        在應(yīng)用視圖下,進(jìn)入房間后可以對(duì)主播發(fā)送禮物及聊天信息,查看房間用戶,打開、關(guān)閉直播視頻和聲音。用戶使用金幣購(gòu)買對(duì)應(yīng)數(shù)量的禮物。不同的禮物擁有不同的名稱和圖片。禮物信息包含贈(zèng)送者頭像、昵稱、禮物圖片、禮物數(shù)量,同一時(shí)間,只展示1條贈(zèng)送禮物的信息。贈(zèng)送禮物花費(fèi)的金幣,會(huì)按照1:1的比例轉(zhuǎn)化為該用戶對(duì)主播貢獻(xiàn)的金幣數(shù)量。

        3 測(cè)試

        將應(yīng)用程序打包成apk文件后安裝到Android手機(jī)上,采用無線4G網(wǎng)絡(luò)傳輸數(shù)據(jù)。按照需求書內(nèi)容反復(fù)測(cè)試每個(gè)功能,結(jié)果發(fā)現(xiàn),音視頻同步性良好,畫面觀看流暢。測(cè)試如圖5所示,手持手機(jī)作為數(shù)據(jù)采集端,后面手機(jī)作為數(shù)據(jù)播放端。

        圖5 系統(tǒng)測(cè)試

        4 結(jié)語

        基于Android平臺(tái)設(shè)計(jì)的流媒體直播系統(tǒng)具有操作簡(jiǎn)單、功能齊全、移動(dòng)視頻直播畫面清晰、實(shí)時(shí)性強(qiáng)、性能良好等特點(diǎn),具有很好的實(shí)用價(jià)值。可以根據(jù)實(shí)際需求的變化,引入最新技術(shù)對(duì)本直播系統(tǒng)進(jìn)行改進(jìn),進(jìn)一步提高移動(dòng)直播平臺(tái)的先進(jìn)性、科學(xué)性和適用性。

        [1] 潘安樂.基于Android的電梯遠(yuǎn)程實(shí)時(shí)視頻傳輸系統(tǒng)設(shè)計(jì)[D].蘇州:蘇州大學(xué),2019:14-15.

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

        [3] 張建平.基于Android手機(jī)實(shí)時(shí)視頻采集與傳輸軟件設(shè)計(jì)[J].系統(tǒng)仿真技術(shù),2020,16(1):60-63.

        [4] 于瀚博.基于Android的機(jī)載音視頻實(shí)時(shí)傳輸方案設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2014:21-22.

        [5] 高攀. Android系統(tǒng)下基于FFmpeg框架的多媒體播放器研究[D].北京:中國(guó)地質(zhì)大學(xué),2016:15.

        [6] 胡李鎮(zhèn).基于RTSP的嵌入式流媒體服務(wù)器設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2017:11-15.

        [7] 李群.基于OkHttp的文件傳輸設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2018,7(13):180-181.

        Design of Mobile Live Broadcast System Based on RTSP under Android Platform

        ZHOU Xiang, YU Xin, ZHANG Xia, BAO Yu, YANG Hai-bo, PAN Pei-sen

        (Department of Research and Development, Nantong Yirong Network Technology Co., Ltd., Nantong 226000, China)

        In this paper, based on the RTSP/RTP protocol and the function implementation of each module the communication process between the client and the server was studied by using OKHttp for network data transmission. Finally, the function of each component of the software is described. The system is based on the Android platform and uses FFMpeg library and JNI technology to implement audio and video encoding and decoding, and RTSP streaming media server to control the transmission of streaming media data on the IP network. The system has the advantage of complete functions, simple operation, clear pictures, and strong real-time performance.

        android; RTSP/RTP protocol; JNI; streaming media server

        TP311

        A

        1009-9115(2021)06-0046-04

        10.3969/j.issn.1009-9115.2021.06.012

        2021-02-25

        2021-07-02

        周翔(1987-),男,江蘇鹽城人,工程師,研究方向?yàn)橐苿?dòng)app開發(fā)、人工智能。

        (責(zé)任編輯、校對(duì):田敬軍)

        猜你喜歡
        音視頻視圖客戶端
        3KB深圳市一禾音視頻科技有限公司
        WIFI音視頻信號(hào)傳輸?shù)年P(guān)鍵問題探究
        電子制作(2018年12期)2018-08-01 00:48:06
        縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
        孵化垂直頻道:新聞客戶端新策略
        基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
        5.3 視圖與投影
        視圖
        高速公路整合移動(dòng)音視頻系統(tǒng)應(yīng)用
        Y—20重型運(yùn)輸機(jī)多視圖
        SA2型76毫米車載高炮多視圖
        91精品国产综合成人| 国产精品国产三级国产a| 美利坚亚洲天堂日韩精品| 媚药丝袜美女高清一二区| 国产香蕉视频在线播放| 国产成人精品一区二区三区| 亚洲精品字幕在线观看| 青青视频一区| 亚洲一区二区三区中文视频| 国产一级自拍av播放| 精品亚洲天堂一区二区三区| 小sao货水好多真紧h无码视频 | 久久精品久99精品免费| 国产精品女老熟女一区二区久久夜| 国产又猛又黄又爽| 亚洲av无码久久寂寞少妇| 亚洲AV秘 无码一区二区三区| 久久黄色精品内射胖女人| 东北少妇不戴套对白第一次| 国产成人亚洲精品无码av大片| 97精品人妻一区二区三区香蕉| 国产在线高清视频| 偷拍av一区二区三区| av日韩一区二区三区四区| 欧美精品videossex少妇| 无码av免费永久免费永久专区| 久久精品国产亚洲av日韩精品 | 人禽伦免费交视频播放| 四虎影永久在线观看精品| 亚洲精品尤物av在线网站| 亚洲av日韩一区二区| 久久久久国产一区二区| 曰本无码人妻丰满熟妇5g影院| 久久洲Av无码西西人体| 日本一区二区视频免费在线观看| 国产精品久久久久久人妻无| 成人网站免费大全日韩国产| 国产精品亚洲综合天堂夜夜| 中文字幕一区二区三区四区| 国产精品久久久久久久妇| 亚洲视频99|