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

        ?

        基于Android平臺的實(shí)時監(jiān)控系統(tǒng)客戶端設(shè)計

        2015-06-22 14:40:44趙紅超
        電視技術(shù) 2015年20期
        關(guān)鍵詞:音視頻線程解碼

        趙紅超,李 琦,韓 瑾,李 鼎

        (河北工業(yè)大學(xué) 電子信息工程學(xué)院,天津 300401)

        基于Android平臺的實(shí)時監(jiān)控系統(tǒng)客戶端設(shè)計

        趙紅超,李 琦,韓 瑾,李 鼎

        (河北工業(yè)大學(xué) 電子信息工程學(xué)院,天津 300401)

        提出了一種基于Android手機(jī)平臺的遠(yuǎn)程監(jiān)控系統(tǒng)客戶端的設(shè)計方案。對系統(tǒng)中的各個模塊做了詳細(xì)地研究,并針對Android平臺設(shè)計了基于FFmpeg的解碼方案。系統(tǒng)采用P2P技術(shù)、多線程機(jī)制,并對數(shù)據(jù)做了緩存處理,從而實(shí)現(xiàn)了實(shí)時的監(jiān)視與控制性能。采用OpenGL ES渲染技術(shù),大大提高了繪圖效率。

        實(shí)時監(jiān)控;H.264;FFmpeg;AAC;GLSurfaceView;OpenGL;多線程

        隨著4G時代的到來,移動終端設(shè)備的高速智能化發(fā)展,各類智能手機(jī)操作系統(tǒng)性能不斷提高。由Google開發(fā)的Android操作系統(tǒng)基于開源Linux系統(tǒng)實(shí)現(xiàn),其中底層采用C語言設(shè)計,而應(yīng)用層采用簡便的Java語言進(jìn)行開發(fā)[1]。其免費(fèi)開源特性促進(jìn)了智能手機(jī)以及平板電腦的快速發(fā)展[2],也為無線視頻監(jiān)控提供了很好的軟、硬件平臺。

        視頻監(jiān)控具有悠久的發(fā)展歷史,在安防領(lǐng)域擁有重要角色,對人身安全和家庭財產(chǎn)安全的保護(hù)起到了關(guān)鍵的作用[3]。近年來,隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展[4],以網(wǎng)絡(luò)、移動通信技術(shù)為平臺的移動視頻監(jiān)控,已經(jīng)越來越成熟,應(yīng)用范圍也越來越廣闊。移動實(shí)時視頻監(jiān)控不受空間上的制約,實(shí)現(xiàn)了遠(yuǎn)程實(shí)時監(jiān)控。隨著“Any Time,Any Where,Any Device”等目標(biāo)[5]的提出,舊式的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)已經(jīng)滿足不了公民對生活質(zhì)量日益增長的需求?;贏ndroid平臺的移動實(shí)時視頻監(jiān)控使這個問題得到了解決,這項(xiàng)應(yīng)用在安防領(lǐng)域得到推廣后,很快將會在人民大眾家庭中得到普及。

        本文在Android平臺下提出了實(shí)時監(jiān)控客戶端的設(shè)計與實(shí)現(xiàn)方法。通過Google提供的NDK開發(fā)工具編譯生成可供Java調(diào)用的動態(tài)鏈接庫,利用JNI機(jī)制實(shí)現(xiàn)Java與C的交互和相互調(diào)用,從而實(shí)現(xiàn)高效的系統(tǒng)性能。通過調(diào)用開源的功能強(qiáng)大的FFmpeg多媒體編解碼框架[6]以及OpenGL ES圖像庫來對媒體數(shù)據(jù)進(jìn)行解碼和播放,實(shí)現(xiàn)了實(shí)時高清的監(jiān)控系統(tǒng)性能。

        1 系統(tǒng)結(jié)構(gòu)

        1.1 系統(tǒng)設(shè)計

        本系統(tǒng)采用P2P技術(shù),與傳統(tǒng)的客戶端——服務(wù)器模式不同,在P2P工作方式中每個客戶終端既是客戶機(jī)又是服務(wù)器。因此本系統(tǒng)不單單具有普通的客戶端監(jiān)視功能,還有對設(shè)備的控制功能,從而真正實(shí)現(xiàn)了實(shí)時的監(jiān)視與控制。本系統(tǒng)有兩個角色,分別是Client與Server。在Client模式下,手機(jī)作為Client來實(shí)時接收和顯示媒體數(shù)據(jù),完成監(jiān)視視頻畫面、音頻播放、拍照及錄像功能;在Server模式下,手機(jī)又可以充當(dāng)Server角色來實(shí)現(xiàn)對設(shè)備的控制功能,包括視頻畫質(zhì)控制、燈的開關(guān)控制、報警開關(guān)控制、對攝像頭的方向調(diào)整控制以及與設(shè)備的對講。總體功能框架如圖1所示。

        圖1 系統(tǒng)功能框架

        1.2 系統(tǒng)Client模式

        本視頻監(jiān)控系統(tǒng)的Client模式整體分為4個模塊,分別是數(shù)據(jù)接收模塊、數(shù)據(jù)解碼模塊、數(shù)據(jù)播放模塊和數(shù)據(jù)存儲模塊。接收模塊主要是利用LinkedList對音視頻數(shù)據(jù)進(jìn)行接收與緩存,解碼模塊負(fù)責(zé)對接收到的多媒體數(shù)據(jù)進(jìn)行相應(yīng)的解碼,數(shù)據(jù)播放模塊則根據(jù)一定的同步原則進(jìn)行音視頻的同步播放,存儲模塊即對拍照所獲圖片與錄像所得視頻進(jìn)行保存。系統(tǒng)Client模式流程如圖2所示。

        圖2 系統(tǒng)Client模式流程

        Android中的一個應(yīng)用程序?qū)?yīng)著一個進(jìn)程,一個進(jìn)程中有一個主線程(UI Thread),主要負(fù)責(zé)UI界面的渲染、更新和控件間的交互,所以在主線程中執(zhí)行任務(wù)所需時間越短越好,為了避免阻塞,主線程應(yīng)將耗時較長的事件交由子線程來處理。

        由于對媒體數(shù)據(jù)的接收和解碼以及播放都是非常耗時的復(fù)雜和持續(xù)過程,若其中有一個過程阻塞就會影響整體程序的運(yùn)行,從而導(dǎo)致視頻卡頓不連續(xù)的現(xiàn)象,所以本系統(tǒng)使用多線程來并行處理對數(shù)據(jù)的接收、解碼和播放。本系統(tǒng)中共有6個子線程在同時工作,包括視頻接收子線程VideoThread、視頻解碼子線程VideoDecodeThread、視頻渲染子線程RenderThread、音頻接收子線程AudioThread、音頻解碼子線程AudioDecodeThread以及音頻播放子線程AudioWriteThread,從而使對音視頻數(shù)據(jù)的接收、解碼與播放分別處于不同的子線程,并將結(jié)果交由主線程來處理,有效地解決了主線程阻塞問題。

        1.2.1 數(shù)據(jù)接收模塊

        數(shù)據(jù)接收模塊主要與遠(yuǎn)程服務(wù)會話,然后根據(jù)會話結(jié)果接收遠(yuǎn)程攝像頭所監(jiān)控的視頻數(shù)據(jù)。由于受到網(wǎng)絡(luò)不穩(wěn)定性的影響,到達(dá)客戶端的數(shù)據(jù)包會出現(xiàn)抖動或時延,為了避免這種現(xiàn)象的發(fā)生,接收模塊采用緩沖機(jī)制。首先為了能夠完成保存每一幀數(shù)據(jù)和信息,創(chuàng)建VideoData類和AudioData類,其中VideoData類中保存著編碼類型、幀數(shù)據(jù)、幀類型、幀大小、時間戳和幀編號,同樣AudioData類中保存著編碼類型、幀數(shù)據(jù)、幀大小、時間戳和幀編號;然后利用Java中的LinkedList對數(shù)據(jù)進(jìn)行緩沖,緩沖示意圖如圖3所示。

        圖3 緩沖示意圖

        LinkedList是Java中的雙向列表,是基于鏈表的數(shù)據(jù)結(jié)構(gòu)。LinkedList列表中的每個節(jié)點(diǎn)都包含了對前一個和后一個元素的引用,可以被當(dāng)作堆棧、隊(duì)列或雙端隊(duì)列進(jìn)行操作,以方便在內(nèi)存區(qū)域的隊(duì)尾插入(add)數(shù)據(jù)以及在隊(duì)頭進(jìn)行讀取刪除(remove)數(shù)據(jù)。本系統(tǒng)中的緩沖機(jī)制即利用LinkedList的size()方法進(jìn)行實(shí)時觀測緩沖區(qū)中的數(shù)據(jù)長度,當(dāng)緩沖區(qū)的數(shù)據(jù)達(dá)到所設(shè)定的值時,人為進(jìn)行remove操作,經(jīng)實(shí)驗(yàn)測試當(dāng)緩沖區(qū)最大長度設(shè)為10幀的時候既能起到緩沖的效果又不至于給手機(jī)內(nèi)存造成太大負(fù)擔(dān)。

        1.2.2 數(shù)據(jù)解碼模塊

        Android自帶的Media Player支持的媒體格式僅局限于OpenCore中所支持的媒體格式。FFmpeg是一種包含音視頻錄制、轉(zhuǎn)換以及編解碼等功能的開源解決方案,其支持包括H.264在內(nèi)的多種編碼格式的編解碼,具有較高的執(zhí)行效率。Android平臺的應(yīng)用程序是由Java來實(shí)現(xiàn)的運(yùn)行效率較慢,為了滿足速度的要求,本系統(tǒng)在C層采用FFmpeg開源方案對H.264視頻和AAC音頻進(jìn)行解碼。

        1.2.3 數(shù)據(jù)播放模塊

        播放媒體數(shù)據(jù)就是對視頻畫面的渲染和音頻數(shù)據(jù)的播放。為了提高畫面渲染效率,本系統(tǒng)使用OpenGL ES來渲染實(shí)時視頻圖像。OpenGL ES是為了充分利用硬件加速,專門針對手機(jī)、PDA和游戲主機(jī)等嵌入式設(shè)備而設(shè)計的,適合復(fù)雜的、圖形密集的程序。

        Android中使用GLSurfaceView來顯示OpenGL視圖,該類繼承SurfaceView并包含了一個專門用于渲染3D的接口Renderer,主要通過實(shí)現(xiàn)onSurfaceCreated、onSurfaceChanged及onDrawFrame等函數(shù)來完成圖像渲染。

        1.2.4 數(shù)據(jù)存儲模塊

        在視頻監(jiān)控過程中有時會檢測到異常情況,而為了現(xiàn)實(shí)生活中的現(xiàn)取留證有時需要拍照或者錄像功能,從而保存數(shù)據(jù)以待以后查詢調(diào)取。因本系統(tǒng)是實(shí)時監(jiān)控系統(tǒng),若像普通視頻監(jiān)控系統(tǒng)一樣將數(shù)據(jù)保存到本地,當(dāng)長時間錄制視頻時則需要很大的內(nèi)存空間,從而給設(shè)備帶來很大的內(nèi)存負(fù)擔(dān)。為此,本系統(tǒng)的解決方法是將拍照和錄像后得到的媒體數(shù)據(jù)保存到云上,而在手機(jī)上保存的僅是在云上的鏈接地址,當(dāng)用戶想要查看時則可直接從云上調(diào)取數(shù)據(jù)并進(jìn)行播放。

        該模塊以保存存儲路徑來代替?zhèn)鹘y(tǒng)的本地保存數(shù)據(jù),能夠給用戶設(shè)備節(jié)省很多內(nèi)存,從而解決了因占用內(nèi)存過多導(dǎo)致設(shè)備性能差的問題。但是存在的缺點(diǎn)是如果用戶想翻看錄制的視頻或者是所拍的照片則都必須連接網(wǎng)絡(luò),不過這比起占用內(nèi)存來說是可以接受的。

        1.3 系統(tǒng)Server模式

        本視頻監(jiān)控系統(tǒng)的Server模式即客戶端給設(shè)備發(fā)送控制命令或音頻數(shù)據(jù),從而控制設(shè)備進(jìn)行相應(yīng)的操作以及與設(shè)備進(jìn)行對講。

        系統(tǒng)中燈的設(shè)置是為了方便用戶在晚上或者光線不好的情況下對所關(guān)心區(qū)域進(jìn)行監(jiān)控;遠(yuǎn)程控制警報的開關(guān)能夠很好地避免因誤判而造成的長時間擾民的警報聲;視頻質(zhì)量的選擇能夠避免在網(wǎng)絡(luò)狀況不佳的狀態(tài)下因進(jìn)行高質(zhì)量的傳輸而造成視頻的卡頓;云臺控制攝像頭的轉(zhuǎn)動能夠方便用戶查看所監(jiān)控區(qū)域每個方向的狀況。綜上所述本系統(tǒng)的Server模式的設(shè)計給用戶帶來了很大的便利,使用戶不僅僅是被動地接收和顯示數(shù)據(jù),還可以操作控制設(shè)備,方便地控制設(shè)備監(jiān)測用戶所想要看到的區(qū)域。

        2 FFmpeg音視頻解碼

        Android應(yīng)用層程序是由Java高級語言來實(shí)現(xiàn)的,每個應(yīng)用程序都對應(yīng)存在著一個獨(dú)立的駐留在一個由Linux內(nèi)核管理的進(jìn)程中的Dalvik虛擬機(jī)實(shí)例。Dalvik虛擬機(jī)支持Java Native Interface編程方式,JNI即連接Java與C或C++之間通信的橋梁,Android應(yīng)用層可以通過JNI實(shí)現(xiàn)Java與C的交互。Java與C/C++之間的通信實(shí)質(zhì)上最終是通過生成庫來實(shí)現(xiàn)的,所以要想調(diào)用Native方法就要利用NDK來編譯C文件并生成相應(yīng)的動態(tài)鏈接庫[7]。

        Android NDK與Linux系統(tǒng)有一定的差異,在跨平臺編譯FFmpeg源代碼時不能采用原有makefile文件,而要通過編寫Android.mk文件來指定所要編譯生成的so庫名、引用的頭文件目錄、需要編譯的.c或.cpp文件以及.a靜態(tài)庫文件等,通過編寫Application.mk來描述在應(yīng)用程序中所需要的靜態(tài)庫或動態(tài)庫。

        2.1 音視頻解碼

        FFmpeg擁有龐大的功能體系,在解碼方面其包含多種格式解碼器,所以利用FFmpeg能夠解碼多種格式的媒體數(shù)據(jù),并且在解碼后可以對媒體數(shù)據(jù)進(jìn)行相應(yīng)的轉(zhuǎn)碼,從而得到想要的數(shù)據(jù)格式,故而可以靈活方便地對多媒體進(jìn)行解碼。解碼主要流程如圖4所示。

        圖4 視頻解碼流程

        由于本系統(tǒng)是實(shí)時的,所以要不斷接收媒體數(shù)據(jù)并對其進(jìn)行解碼,所以將整個解碼流程封裝成3個接口,分別是初始化init、解碼decode和關(guān)閉close。這樣系統(tǒng)只需在開始和結(jié)束時分別執(zhí)行一次init和close,中間循環(huán)調(diào)用decode來解碼,避免了因頻繁初始化和開啟釋放內(nèi)存空間帶來的不必要操作,提高代碼執(zhí)行效率。

        具體工作流程是:首先在init中,要用av_register_all來注冊所有容器格式和CODEC,以備后面進(jìn)行相應(yīng)的調(diào)用,然后要用av_init_packet來使用默認(rèn)值初始化AVPacket,其中AVPacket是存儲壓縮編碼數(shù)據(jù)相關(guān)信息的結(jié)構(gòu)體,調(diào)用avcodec_find_decoder來查找特定的解碼器,并調(diào)用avcodec_open來打開該解碼器,并用av_frame_alloc來為解碼幀分配內(nèi)存空間。然后在decode中要利用avcodec_decode_video2和avcodec_decode_audio4分別進(jìn)行解碼視頻和音頻數(shù)據(jù),并將結(jié)果返回。最后在close中要調(diào)用av_free_packet和av_free來分別釋放AVPacket與AVFrame對象,并關(guān)閉初始化時所開辟的內(nèi)存。

        2.2 視頻轉(zhuǎn)碼

        調(diào)用avcodec_decode_video2解碼出的視頻數(shù)據(jù)格式是YUV420P,而Android中不支持直接渲染YUV數(shù)據(jù),故需要將解碼后的YUV420P格式數(shù)據(jù)轉(zhuǎn)碼成在Android中可渲染的RGB格式。

        調(diào)用FFmpeg中的函數(shù)可以很容易地將視頻轉(zhuǎn)換成某一格式,而Android中的Bitmap配置中支持的ARGB_8888數(shù)據(jù)格式在pixmft.h中并沒有定義,所以要想渲染ARGB_8888格式的數(shù)據(jù)則需要自己研究轉(zhuǎn)碼方法。本文采用的方法是先將byte類型RGB數(shù)據(jù)當(dāng)作無符號數(shù)轉(zhuǎn)換成int類型RGB數(shù)據(jù),再按位操作轉(zhuǎn)換成ARGB數(shù)據(jù),按位操作大大提高了計算效率,從而節(jié)省解碼時間。其中涉及到的數(shù)學(xué)轉(zhuǎn)換公式為

        R=Y+(360(V-128))>>8

        (1)

        G=Y-(88(U-128)>>8)

        (2)

        B=Y+(455(U-128))>>8

        (3)

        3 音視頻同步

        對媒體數(shù)據(jù)的播放最關(guān)鍵的就是音視頻的同步問題,而解決同步問題的最好方法就是時間戳,在生成媒體數(shù)據(jù)時給其分別添加時間戳,播放時將音視頻數(shù)據(jù)都參考某一特定的時間來播放。音視頻基于時間戳的同步有三種方案,第一種是以外部時鐘為參考,第二種是以音頻時間戳為參考,第三種是以視頻時間戳為參考。以外部時鐘為參考需要設(shè)立一個滿足要求的外部時鐘比較浪費(fèi)資源,故不采納。由于人對影像的敏感度比對聲音的敏感度要高,所以本文采用第二種方案,以音頻時間為參考,將視頻同步于音頻。

        本系統(tǒng)中的音頻播放是需要用戶控制的,當(dāng)用戶按下音頻按鈕,該客戶端將給設(shè)備發(fā)送音頻請求指令。當(dāng)系統(tǒng)接收到音頻數(shù)據(jù)并解碼完成等待播放時,要將該AudioData對象的時間戳apts與此時將要播放的VideoData對象時間戳vpts作對比,vpts大于apts則將當(dāng)前AudioData對象丟棄,否則正常播放。

        4 媒體播放

        視頻渲染采用GLSuerfaceView渲染器進(jìn)行,通過實(shí)現(xiàn)GLSurfaceView中Renderer接口中的3個方法onSurfaceCreated、onSurfaceChanged、onDrawFrame來完成持續(xù)渲染。onDrawFrame在渲染的過程中起主要作用,系統(tǒng)每一次重畫GLSurfaceView都要調(diào)用onDrawFrame方法并在其中綁定紋理,使用這個方法去作為主要的繪制和重新繪制graphic對象的執(zhí)行點(diǎn)。傳統(tǒng)的ImageView渲染方法只能在UI主線程操作,會經(jīng)常造成UI線程的阻塞,而GLSuerfaceView則是直接在子線程進(jìn)行渲染,不用回到主線程,從而提高了系統(tǒng)性能。

        由于MediaPlayer只能播放文件流,而監(jiān)控系統(tǒng)是實(shí)時的,所以音頻播放采用的是AudioTrack,其中的play()與write()方法均調(diào)用由C編寫的Native方法,大大提高了執(zhí)行效率。

        通過實(shí)際測試,本系統(tǒng)有效地解決了視頻延遲等問題,達(dá)到了實(shí)時監(jiān)控的要求。圖5為實(shí)時監(jiān)控系統(tǒng)界面圖。

        5 結(jié)束語

        隨著生活質(zhì)量的提高,實(shí)時監(jiān)控越來越受大眾歡迎,同時對監(jiān)控系統(tǒng)的性能要求也越來越高,流暢清晰的畫面也是必須實(shí)現(xiàn)的功能。本文采用GLSuerfaceView來對視頻畫面進(jìn)行渲染,采用AudioTrack來完成聲音的播放,并利用多線程分別處理音視頻的接收、解碼和播放,通過緩沖機(jī)制有效地解決了視頻延遲卡頓現(xiàn)象,達(dá)到了實(shí)時性的要求。

        [1] 李向軍,張小菲,王書陣.一種基于Android平臺的移動終端多媒體播放器的擴(kuò)展設(shè)計[J].微電子學(xué)與計算機(jī),2014,31(2):118-121.

        圖5 實(shí)時監(jiān)控系統(tǒng)界面(截圖)

        [2] 胡顧飛,湯文兵,朱成亮.基于Android平臺的紋理映射分析與實(shí)現(xiàn)[J].中國新技術(shù)新產(chǎn)品,2011(12):33.

        [3] 王咸鋒,林華.手機(jī)遠(yuǎn)程視頻實(shí)時監(jiān)控系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].微計算機(jī)信息,2007,23(34):111-112.

        [4] 郝明磊.基于Android實(shí)時視頻監(jiān)控客戶端設(shè)計與實(shí)現(xiàn)[D].寧波:寧波大學(xué),2014.

        [5] 楊明極,畢晶.基于Android視頻客戶端的設(shè)計[J].電視技術(shù),2012,36(3):43-47.

        [6] 馬洪堂.基于FFmpeg的視頻轉(zhuǎn)換系統(tǒng)的模塊研究[J].電腦知識與技術(shù),2009(5):3545-3546.

        [7] 李煒鋒,于鴻洋.基于Android的視頻軟硬解碼及渲染的對比研究與實(shí)現(xiàn)[J].電視技術(shù),2014,38(9):67-70.

        [8] 劉云粼,王樹東.基于SSE2的YUV與RGB色彩空間轉(zhuǎn)換[J].中國圖象圖形學(xué)報,2010,15(1)45-49.

        趙紅超(1989— ),女,碩士生,主研嵌入式系統(tǒng)開發(fā)、視頻處理;

        李 琦(1974— ),教授,碩士生導(dǎo)師,主要研究方向?yàn)闊o線通信、嵌入式系統(tǒng);

        韓 瑾(1991— ),女,碩士生,主研無線網(wǎng)絡(luò)技術(shù);

        李 鼎(1987— ),碩士生,主研無線通信與網(wǎng)絡(luò)。

        責(zé)任編輯:許 盈

        Design of Real-time Monitoring System Client Based on Android Platform

        ZHAO Hongchao, LI Qi, HAN Jin, LI Ding

        (School of Electronic and Information Engineering, Hebei University of Technology, Tianjin 300401,China)

        A design scheme of remote monitoring system client based on Android mobile platform is proposed in order to realize mobile real-time monitoring system. Every module of this system is researched in detail, and the decoding scheme based on FFmpeg is designed on Android platform. The P2P technology, multi-thread mechanism and data processing cache are used to realize the real-time performance. The efficiency of drawing image is improved greatly by OpenGL ES rendering technique.

        real-time monitoring; H.264; FFmpeg; AAC; GLSurfaceView; OpenGL; multithread

        河北省自然科學(xué)基金項(xiàng)目(F2012202116)

        TN919.85

        A

        10.16280/j.videoe.2015.20.026

        2015-05-08

        【本文獻(xiàn)信息】趙紅超,李琦,韓瑾,等.基于Android平臺的實(shí)時監(jiān)控系統(tǒng)客戶端設(shè)計[J].電視技術(shù),2015,39(20).

        猜你喜歡
        音視頻線程解碼
        《解碼萬噸站》
        解碼eUCP2.0
        中國外匯(2019年19期)2019-11-26 00:57:32
        3KB深圳市一禾音視頻科技有限公司
        NAD C368解碼/放大器一體機(jī)
        Quad(國都)Vena解碼/放大器一體機(jī)
        WIFI音視頻信號傳輸?shù)年P(guān)鍵問題探究
        電子制作(2018年12期)2018-08-01 00:48:06
        高速公路整合移動音視頻系統(tǒng)應(yīng)用
        淺談linux多線程協(xié)作
        Roland專業(yè)音視頻新技術(shù)研討會在上海召開
        Linux線程實(shí)現(xiàn)技術(shù)研究
        在线播放中文字幕一区二区三区| 日本熟日本熟妇中文在线观看| 国产ww久久久久久久久久| 好吊色欧美一区二区三区四区 | 亚洲在线精品一区二区三区| 亚洲国产日韩a在线乱码| 亚洲熟女一区二区三区| 亚洲色大成网站www尤物| 亚洲中文字幕日产喷水| 我想看久久久一级黄片| 五月开心婷婷六月综合| 国内成+人 亚洲+欧美+综合在线| 久久精品国产亚洲av高清漫画 | 国产一级片内射在线视频| 精品老熟女一区二区三区在线| 亚洲国产a∨无码中文777| 国产性生交xxxxx无码| 成人动漫久久| 精品视频一区二区杨幂| 亚洲伊人av天堂有码在线| 欧美丰满熟妇bbbbbb| 国产乱人伦av在线a| 国产在线h视频| 亚洲桃色蜜桃av影院| 日韩精品 在线 国产 丝袜| 亚洲av成人无码精品电影在线| 99精品成人片免费毛片无码| 在线观看免费人成视频国产| 亚洲色图专区在线观看| 亚洲av永久无码一区二区三区| 少妇被爽到高潮动态图| 精品国产亚洲av麻豆尤物| 极品少妇人妻一区二区三区| 国产激情无码视频在线播放性色| 风韵饥渴少妇在线观看| 中文字幕无码免费久久9| 熟女少妇精品一区二区三区| 极品尤物一区二区三区| 99精品国产综合久久久久五月天| 亚洲日本无码一区二区在线观看| 毛茸茸的女性外淫小视频|