999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android平臺的高清監控視頻系統的優化設計

2017-07-05 08:52:43蔣達央
常州信息職業技術學院學報 2017年3期
關鍵詞:優化系統

蔣達央

(常州信息職業技術學院信息中心 江蘇常州 213164)

?

基于Android平臺的高清監控視頻系統的優化設計

蔣達央

(常州信息職業技術學院信息中心 江蘇常州 213164)

基于Android平臺的視頻監控客戶端作為視頻監控系統的后端應用,依托無線網絡與監控系統存儲和服務器通信,實時接收無線視頻數據包并播放視頻。由于無線視頻監控系統是一個大數據量的傳輸系統,易受無線網絡帶寬和穩定性因素影響。為提高高清監控視頻在移動客戶端的播放效果,本研究分析了高清視頻播放的特性,對視頻的信號傳輸、編解碼和數據驗證方面,采用了基于Android平臺的優化設計方案,為用戶隨時隨地監看高清監控視頻提供了一個較好的技術解決方案。

視頻監控; Android; H.264

0 引言

隨著信息技術的快速發展,智慧校園建設成為教育行業新一輪信息化建設目標。傳統視頻監控管理手段已無法滿足現代化校園管理的需求。在智慧校園的背景下,大量高清網絡數字視頻監控攝像機被安裝在校園的各個角落。隨著無線通信技術和多媒體技術的發展,進一步推動了傳統視頻監控管理手段從有線邁向了無線領域。

1 問題的提出

無線網絡視頻監控系統主要由四個部分組成,分別是攝像機、有線或無線網絡、視頻服務器和移動應用客戶端。這是結合音視頻處理、網絡通信、數據存儲等多種信息技術的綜合體。基于Android平臺的移動視頻監控系統相比PC機桌面式終端的監控系統,極大地擴展了監控應用的靈活性與范圍,并且充分調用各個模塊的硬件性能優勢,進而在降低系統通信開銷的同時提高了應用的拓展性。

無線視頻播放是移動高清視頻監控系統的主要功能,它是基于Android平臺移動監控終端的核心技術。目前在視頻監控領域主要采用VLC等開源技術,實現視頻封裝、編解碼和播放等功能,VLC中包含live555和ffmpeg兩個重要的類庫。其中,Live555主要使用RTSP協議來支持各種編碼格式的音視頻數據,進行流化、接收和處理等[1]。而ffmpeg擁有音頻/視頻編解碼庫libavcodec,它為流化的音視頻數據提供轉換和編解碼等的完整解決方案。經過ffmpeg解碼完成之后,使用VLC在移動客戶端視頻監控系統程序界面上進行視頻播放。

當live555將接收到的視頻數據包選擇網絡用戶數據報協議(UDP)作為視頻流的傳輸協議時,因UDP協議是基于非連接的、只負責發送不負責檢查發送結果的不可靠協議,這種不可靠性使得live555數據包進行視頻傳輸時產生數據幀丟失現象[2]。而當live555使用TCP協議實施數據傳輸時,由于TCP協議是基于連接的、按順序接收的可靠協議,這種可靠協議若遇到過大的網絡數據流量,很容易發生節點路由設備因數據堵塞而出現緩沖區溢出現象,從而會使視頻數據包發生丟失現象。以上兩種傳輸模式都會造成視頻播放出現馬賽克、花屏等影響播放效果的現象。

2 優化設計方案

2.1 視頻編譯環境優化設置

本優化設計主要基于Libvlcjni.so庫進行設計。在Android視頻播放應用程序開發中,libVLC給Android應用程序的接口庫提供了一個功能強大的Libvlcjni.so庫。在多個網絡協議支持層面,libvlcjni.so開發庫支持RTP、HTTP、RTSP等多種網絡應用協議,是一個成熟穩定的開源播放器開發庫。

客戶端視頻播放器通過libVLC提供的libvlcjni.so中的JNI接口函數來實現高清監控視頻控制和播放。在實際研究測試中,由于VLC項目對LINUX平臺的支持最好,因此首先需要依托LINUX平臺來編譯VLC,并從中下載獲取libvlcjni.so庫。

在編譯之前,首先需要搭建針對Android平臺的軟件編譯環境,包括:AndroidSDK、NDK、JDK等一些列開發配置工具。經過測試,發現在LINUX操作系統下的Ubuntu15.10環境中交叉編譯VLC for Android獲取libvlcjni.so庫效率較高,具體設計如下:

編譯宿主主機系統:Ubuntu 16.04 LTS;

Android原生開發包NDK版本:android-ndk-r10;

Android軟件開發包SDK版本:android-sdk-22;

Java開發包JDK版本:jdk-1.8.0_65;

VLC for Android的編譯環境搭建完成后,進入根目錄,使用shell腳本“./compile.sh”開始編譯實施[3]。在項目環境的編譯過程中,shell腳本文件會自動從網絡下載基于的源代碼。VLC作為具備多種格式音視頻解碼器的多媒體播放器,能作為基于unicast或 multicast設計的流媒體服務器在IPv4或 IPv6的高速有線無線網絡環境下使用。系統編譯完成后會在主文件夾下的libs文件夾中生成重要的libvlcjni.so庫和其他相關的接口類庫,此時可將整個libs文件夾拷貝到Android客戶端項目文件中,那么在后期的項目程序開發過程中便可調用libvlcjni.so庫,實現移動視頻播放功能的開發。

2.2 優化視頻播放器的設計

libVLC作為VLC for Android提供給用戶二次開發所封裝的接口庫[4]。它封裝了復雜的VLC架構,在開發過程中,只需要將這些類和接口函數包含到工程項目中,就可直接調用預置的、封裝好的類和函數。具體過程如下:

第一步:聲明對象。首先聲明一個IVideoPlayer對象m_videoPlayer,它代表視頻播放器對象。接著聲明一個libVLC對象m_libVLC,視頻播放、暫停等操作都由它來承擔。

IVideoplayer m_videoplayer;

LibVLC m_LibVLC;

第二步:創建LibVLC視頻播放器實例。首先利用已聲明的m_libVLC對象調用其中的getinstance()函數獲取到一個實例。然后利用m_libVLC調用attachSurface()函數來綁定播放器m_IVideoPlayer和視頻播放窗口視圖s_View。

m_libVLC=LibVLC. getinstance();

m_libVLC. attachSurface(s_ View, m_VideoPlayer);

第三步:創建視頻播放表。首先利用MediaList創建一個列表實例m_List,然后將網絡視頻地址添加到m_List實例中,該地址連接著視頻服務器的視頻源,等待用戶點擊鏈接地址的訪問。

MediaList m_List=m_LibVLC.getmediaList();

m_List.add(new media(m_Libvlc,libVLC.PathToURl(Url),false);

第四步:實現視頻播放功能。利用m_libvlc對象通過調用playIndex()函數來解析播放列表中的視頻鏈接地址。

m_libVLC.playIndex(0);

第五步:實現視頻播放器停止播放功能。實現這個功能的同時要完成三項任務。首先需要通過m_libvlc對象調用Stop()函數實現視頻播放的停止,然后利用m_libvlc對象的detachSurface()函數來解除s_View和m_LibVLC兩者之間的鏈接綁定,最后使用destroy()函數來釋放對象占用的資源,并銷毀m_libVLC對象。

m_libVLC.stop();

m_libVLC.detachSurface();

m_libVLC.destroy();

2.3 獲取H.264視頻數據設計

在高清視頻監控領域目前主要使用H.264這種視頻編碼標準。基于H.264的視頻流幀結構序列由I、B、P三部分組成。在視頻數據中,視頻都是由若干個順序圖像組成。在H.264序列圖像里的第一個圖像都由I幀圖像組成,也被稱為IDR圖像[5]。I幀圖像是圖像解碼的核心句法元素,I幀可直接解碼,一旦發生錯誤或丟失,該視頻序列的后續圖像信息幾乎不可能再被正確解碼出來。而P幀數據的解碼則需要在I幀的基礎上。當用戶觀看視頻時,通過移動終端點擊URL地址,VLC調用live555模塊展開H.264視頻流數據的獲取。H.264視頻數據獲取過程主要分為三個層次,RTP層、NAL層、VCL層。見圖1。

圖1 H.264視頻數據獲取層次

RTP視頻數據獲取層是基礎層。在這一層系統將通過RTP協議來傳輸H.264視頻,它對從H.264視頻中獲得的數據信息中剝離出每個網絡適配層單元,然后在每個單元前添加相應的起始碼:0x000001,用來指示一個 NALU的起始和終止位置。最后將包含RTP協議的起始碼和網絡適配單元數據包發送出去。

NAL視頻數據抽取層是中間層。在這一層基礎層傳輸來的數據包解析為NAL頭、RBSP原始字節序列負荷兩部分,對NAL數據包頭實施解析判斷,并做出兩種處理方式。第一判斷是否有特殊字符標記,若有錯誤則對數據包進行拋棄處理,若正確則將NAL數據包送到VCL視頻編碼層。在做完這個判斷后,系統自動釋放數據鏈表所占用的內存資源,并對下一個RTP數據包的起始編碼更新,以實現前后數據的連接。

VCL視頻數據編碼層處于最頂層,主要采用運動補償預測,變換編碼和熵編碼等一系列手段對數據重新編碼、壓縮、封裝,使視頻內容得以更高效地傳輸、播放,以確保送到客戶端解碼器端的網絡適配單元符合標準的順序。

2.4 建立緩沖驗證機制

視頻幀數據緩沖驗證機制工作建立主要是為了消除網絡狀況不佳或其他原因而引起的RTP數據包被動丟失和因延時時間過長而引起的數據主動丟棄所帶來的H.264視頻解碼錯誤。H.264視頻幀緩沖驗證機制運行處于RTP層與NAL層工作時序之間,基本設計思想如下:首先在數據獲取層和數據解析層之間建立一個H.264視頻幀數據緩沖驗證機制層。然后從RTP數據層中獲取一個完整視頻幀所有信息的RTP數據包,并把RTP數據包指針存儲在緩沖層的一個隊列中。接著利用NAL包頭中的結束標志位來定位一個視頻幀結束位置。最后對緩沖層中視頻幀數據進行前后序列號驗證,如果前后幀序列號連續且完整,則說明RTP數據正確,如果序列號有錯誤或不連續,則說明這一視頻幀信息不完整或有錯誤在其中。為了避免錯誤數據被VLC送到ffmpeg進行視頻解碼,該驗證機制有效防止了解碼錯誤的擴散,對在下一個I幀到來之前的視頻幀采用丟棄策略。

3 實驗測試

對于以上的優化設計策略的合理性和實際使用效果,實驗采用了模擬網絡丟包測試,即在視頻數據每隔500個數據包傳輸完成后,人工丟棄一個數據包的策略。在實驗過程中采用對比法利用同一視頻在“未經修改的VLC播放器”和“優化后的VLC播放器”中進行播放效果測試,測試視頻數據分為兩種,第一種為碼率上限1 024 Kbit/s,分辨率為720 P,測試結果如圖2所示;第二種為碼率上限2 048 Kbit/s,分辨率為1 080 P,測試結果如圖3所示。

b) 未經優化的視頻播放

a) 經過優化后的視頻播放

b) 未經優化的視頻播放

從上面兩組實驗測試效果圖可以看出,未經優化的視頻播放器在播放視頻時由于原始視頻數據在傳輸時發生了丟包錯誤,最終出現了因視頻幀數據信息不完整而無法正確解碼所產生的馬賽克、亮斑、雜色等影響觀看效果圖像,這一現象尤其是在暗部區域和邊緣區域表現更為明顯。而優化后的視頻播放器由于系統采取了一系列合理的優化處理方法,使得視頻播放器不會接收錯誤數據包并實施解碼,因而播放出來的視頻就沒有出現花屏和馬賽克等現象。因此,從本實驗數據可以得出:基于Android平臺的高清監控視頻系統的優化設計對于因數據傳輸丟包、編解碼誤差、網絡延時時間過長等引起的錯誤視頻數據能夠有效處理,保證了播放內容的清晰度。

4 結束語

在Android平臺上觀看高清監控視頻,由于受4G移動無線網絡帶寬和網絡穩定性方面的限制,要在有限的網絡條件下提升視頻的可視效果,則必須采用一定的視頻優化播放技術。本次研究從基礎環境配置到數據解碼重組策略均實現了一定的優化設計,在一定程度上解決了網絡視頻因丟包和延時帶來的視頻播放不清晰的問題,為基于Android平臺的移動客戶端在高清視頻監控應用領域提供了一種解決方法。

[1] 李宗辰,朱秀昌.基于VLC的Android多路視頻監控系統[J].現代電子技術,2013(24):63-66.

[2] 李校林,劉海波,張杰,等.RTP/RTCP,RTSP在無線視頻監控系統的設計與實現[J].電視技術,2011(19):89-92.

[3] 李校林,劉利權,張杰.基于RTP的H.264視頻流實時打包傳輸的研究[J].計算機工程與科學,2012(5):168-171.

[4] 陳建明.Android平臺的VLC播放器實現機制研究[J].單片機與嵌入式系統應用,2015(5):32-34.

[5] 陳鋒鋒.基于RTSP的流煤體傳輸系統的應用開發[D].南京:南京郵電大學,2013:23-35.

[責任編輯:李娟]

The Optimal Design of HD Video System Based on Android Platform

JIANG Dayang

(Information Center, Changzhou College of Information Technology, Changzhou 213164, China)

The video monitoring system based on Android platform acts as a back-end application for video surveillance systems. It relies on the wireless network and the monitoring system storage to communicate with the server, and receives wireless video packets in real time and plays video. Since the wireless video surveillance system is a large amount of data transmission system, it is vulnerable to wireless network bandwidth and stability factors. In order to improve the HD monitor video in the mobile client playback effect, this paper analyzes the characteristics of video playback, adopts the optimal design based on the Android platform in aspects of video signal transmission, codec and data validation. This provides a better technical solution for users to monitor HD video surveillance anytime and anywhere.Key words:video monitoring; Android; H.264

2017-04-07

2016年江蘇省教育廳定向研究課題

蔣達央(1978-),男,工程師,碩士,主要研究方向:計算機科學技術、現代教育技術

TN 948.6

A

1672-2434(2017)03-0016-04

猜你喜歡
優化系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
WJ-700無人機系統
由“形”啟“數”優化運算——以2021年解析幾何高考題為例
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
主站蜘蛛池模板: 毛片免费视频| 日本精品一在线观看视频| 日韩欧美国产另类| 91麻豆精品国产高清在线| 国产91视频观看| 污污网站在线观看| 国产成人av大片在线播放| 亚洲h视频在线| 伊人久久大香线蕉影院| 午夜啪啪网| 日韩黄色精品| 伊人国产无码高清视频| 国产欧美视频综合二区| 国产区91| 欧美精品在线免费| 欧美区日韩区| 国产精品男人的天堂| 色综合天天操| 欧美在线中文字幕| 欧美一区二区三区欧美日韩亚洲 | 亚洲第一成网站| 日韩高清一区 | 国产va在线观看免费| 国产高潮流白浆视频| 国产人成乱码视频免费观看| 国产成人在线无码免费视频| 国产日韩欧美成人| 91精品国产91欠久久久久| 国外欧美一区另类中文字幕| 91精品网站| 99视频国产精品| 国产一级毛片高清完整视频版| 四虎影视库国产精品一区| yjizz视频最新网站在线| 真人免费一级毛片一区二区| 亚洲天堂啪啪| 中国精品久久| 成人福利在线免费观看| 国产大片黄在线观看| 亚洲bt欧美bt精品| 亚洲第一精品福利| 91视频精品| 波多野结衣中文字幕久久| 亚洲福利一区二区三区| 亚洲欧美成人在线视频| 青青青亚洲精品国产| 色哟哟国产成人精品| 中文字幕首页系列人妻| 国产特级毛片aaaaaa| 黄片在线永久| 中文字幕在线播放不卡| 老司机精品99在线播放| 国产玖玖玖精品视频| 亚洲天堂视频网站| 色135综合网| 亚洲综合亚洲国产尤物| 不卡无码网| 亚洲精品不卡午夜精品| 国产毛片久久国产| 色婷婷在线播放| 无码免费视频| 国产精品区网红主播在线观看| 国产小视频免费| 久久综合丝袜长腿丝袜| 国产成a人片在线播放| 欧美日韩精品在线播放| 亚国产欧美在线人成| 亚洲国产中文在线二区三区免| 国产在线视频福利资源站| 五月天久久婷婷| 久久这里只有精品免费| 精品国产免费观看| 亚洲欧洲国产成人综合不卡| 国内精品视频在线| 亚洲综合第一区| 精品国产亚洲人成在线| 国产毛片高清一级国语 | 在线观看亚洲人成网站| 成·人免费午夜无码视频在线观看| 免费看美女毛片| 成人福利在线视频免费观看| 伊人久久大香线蕉影院|