日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

uniapp接入云臺(tái)相機(jī):三條路線與PTZ控制避坑指南

uniapp接入云臺(tái)相機(jī):三條路線與PTZ控制避坑指南 1. 先聊清楚uniapp 接云臺(tái)相機(jī)這件事到底難在哪我做安防類項(xiàng)目有幾年了最近半年被問得最多的一個(gè)問題就是uniapp 能不能接云臺(tái)相機(jī)云臺(tái)插件到底好不好用。這個(gè)問題表面上是問插件實(shí)際上是問一整套取流、控制、跨端適配的技術(shù)路線能不能成立。我前后在三個(gè)項(xiàng)目里試過不同做法一個(gè)園區(qū)值班室的中控屏、一個(gè)連鎖門店的巡店應(yīng)用、還有一個(gè)設(shè)備巡檢的移動(dòng)作業(yè)端規(guī)模都不大但把該踩的坑基本都踩了一遍。先給結(jié)論uniapp 跨平臺(tái)監(jiān)控方案是可行的但它的可行有明確邊界。你能用一套代碼同時(shí)出 H5、安卓 App、iOS App甚至小程序這個(gè)誘惑太大尤其是團(tuán)隊(duì)只有一兩個(gè)前端的時(shí)候。可視頻監(jiān)控這個(gè)場(chǎng)景天生重原生——解碼、渲染、硬件加速、低延遲傳輸每一環(huán)都貼著操作系統(tǒng)底層走而 uniapp 的強(qiáng)項(xiàng)是視圖層和業(yè)務(wù)層的跨端復(fù)用兩者中間隔著一層原生橋接摩擦就發(fā)生在這一層。下文我把標(biāo)題里說的云臺(tái)插件統(tǒng)一理解為某安防廠商下文簡(jiǎn)稱 A 廠商提供的、封裝了設(shè)備登錄、實(shí)時(shí)預(yù)覽、云臺(tái)控制PTZ、錄像回放、抓圖等能力的 SDK 插件形態(tài)產(chǎn)品。它可能是一個(gè) uni 原生插件也可能是一個(gè) H5 播放頁還可能只是一套 HTTP 接口加標(biāo)準(zhǔn)流地址。形態(tài)不同優(yōu)劣差別巨大這也是很多人測(cè)評(píng)結(jié)果互相矛盾的原因——大家測(cè)的壓根不是同一個(gè)東西。這篇文章適合三類人看正在做技術(shù)選型的項(xiàng)目負(fù)責(zé)人、準(zhǔn)備動(dòng)手接入的前端或移動(dòng)端開發(fā)、以及被一套代碼多端跑打動(dòng)但還沒踩過坑的產(chǎn)品同學(xué)。我會(huì)把三條主流路線的架構(gòu)、云臺(tái)指令的細(xì)節(jié)、跨端差異、實(shí)測(cè)數(shù)據(jù)和排錯(cuò)經(jīng)驗(yàn)全部攤開講參數(shù)和計(jì)算過程都給出來能直接抄的部分我會(huì)寫得足夠具體。2. 三條技術(shù)路線的架構(gòu)拆解與優(yōu)劣勢(shì)對(duì)照2.1 路線一web-view 內(nèi)嵌廠商 H5 監(jiān)控頁改動(dòng)最小的偷懶方案這是上手最快的一條路。A 廠商通常會(huì)提供一個(gè)免插件的網(wǎng)頁版預(yù)覽頁地址里帶上設(shè)備序列號(hào)、通道號(hào)、token 之類的參數(shù)你只要在 uniapp 里放一個(gè)web-view組件把地址塞進(jìn)去畫面就出來了云臺(tái)控制按鈕廠商也已經(jīng)畫好了。我在門店巡店那個(gè)項(xiàng)目里第一版就是這么干的從拿到地址到跑通兩個(gè)小時(shí)。它的優(yōu)勢(shì)非常直接零原生開發(fā)、零協(xié)議理解、零解碼邏輯。廠商網(wǎng)頁內(nèi)部已經(jīng)把取流、解碼、云臺(tái)指令封裝好了你不需要知道背后用的是 WebSocket 推流還是 HTTP-FLV也不需要關(guān)心 H.264 還是 H.265。對(duì)于只要求能看、能轉(zhuǎn)、能回放的輕量場(chǎng)景這條路性價(jià)比最高。但坑也很密集。第一是通信問題網(wǎng)頁和 uniapp 之間只能靠postMessage或者 URL 傳參雙向通信在 App 端勉強(qiáng)能用小程序端受限于業(yè)務(wù)域名校驗(yàn)?zāi)茏龅降氖虑楦?。第二是UI 不可控廠商頁面永遠(yuǎn)帶著自己的 logo、自己的按鈕布局你想把它嵌進(jìn)自己的設(shè)計(jì)體系里幾乎不可能只能整頁鋪滿。第三是拿不到視頻幀截圖、AI 識(shí)別、本地錄像這些需求直接判死刑。第四是登錄態(tài)和 token 管理A 廠商的 H5 地址一般有效期很短頁面切后臺(tái)再回來經(jīng)常要重新鑒權(quán)用戶看到的就是一片黑屏加一個(gè)轉(zhuǎn)圈。我印象最深的一次是客戶要求點(diǎn)擊畫面任意位置云臺(tái)自動(dòng)把那個(gè)點(diǎn)移到畫面中心也就是常說的 3D 定位。廠商 H5 頁面本身支持但它是內(nèi)部邏輯我們無法從外部觸發(fā)最后只能改成讓用戶自己按方向鍵。這就是路線一的本質(zhì)你借用了別人的能力也接受了別人的邊界。2.2 路線二原生插件直連 SDK延遲最低但維護(hù)成本最高第二條路是把 A 廠商的移動(dòng)端 SDK 封裝成 uni 原生插件。安卓側(cè)通常是幾個(gè).aar加一堆.so動(dòng)態(tài)庫iOS 側(cè)是.framework然后按 uniapp 原生插件的規(guī)范暴露方法給 JS 調(diào)用比如login、startRealPlay、ptzControl、stopRealPlay、startPlayback。這條路是性能天花板。SDK 直連設(shè)備或者直連廠商的流媒體服務(wù)走的是私有協(xié)議延遲能壓到 200 到 500 毫秒云臺(tái)指令也是走專用通道按下按鈕到畫面轉(zhuǎn)動(dòng)體感幾乎是實(shí)時(shí)的。功能也最全預(yù)置位、巡航、抓圖存本地、雙向?qū)χv、本地錄像、碼流切換主碼流/子碼流全都有。代價(jià)是雙端各寫一遍。安卓和 iOS 的 SDK 接口長得完全不一樣安卓里叫PTZControliOS 里可能是ptzControlWithCommand參數(shù)順序也不同你得寫兩套橋接代碼。包體積也會(huì)明顯變大我做過的一個(gè)版本加上.so之后安裝包從 18MB 漲到了 62MB雖然可以做 ABI 拆分只保留arm64-v8a但還是要多出二十多兆。更麻煩的是版本耦合。uni 原生插件要跟 HBuilderX 的版本、基座版本對(duì)齊云打包的自定義基座一旦和插件不匹配就是白屏或者方法找不到。我遇到過一次升級(jí)了 IDE 之后插件里某個(gè)回調(diào)不再觸發(fā)排查了半天才發(fā)現(xiàn)是基座緩存沒清。另外這條路完全放棄了 H5 和小程序如果你老板一開始說我們要多端最后發(fā)現(xiàn)只有 App 能用返工成本很高。注意封裝 A 廠商 SDK 時(shí)要特別留意.so的架構(gòu)裁剪只保留arm64-v8a能省一半體積但部分老舊的安卓一體機(jī)是 32 位系統(tǒng)砍掉armeabi-v7a之后會(huì)直接崩在UnsatisfiedLinkError。上線前一定要確認(rèn)目標(biāo)機(jī)型的 CPU 架構(gòu)。2.3 路線三自建流媒體網(wǎng)關(guān)加通用播放器折中但最費(fèi)運(yùn)維第三條路是我現(xiàn)在最推薦的中間方案服務(wù)端把設(shè)備的 RTSP 流拉過來轉(zhuǎn)成 WebRTC 或 HTTP-FLV前端用統(tǒng)一的播放器組件播。設(shè)備側(cè)只需要開放 RTSP 地址和賬號(hào)密碼剩下的交給網(wǎng)關(guān)。H5 和 App 用flv.js或者 WebRTC 播放器小程序用live-player組件播 RTMP 或 FLV。這條路的最大好處是前端徹底統(tǒng)一。同一套播放器封裝邏輯通過條件編譯在三個(gè)端上跑業(yè)務(wù)代碼復(fù)用率能到 90% 以上。云臺(tái)控制走的是廠商的 HTTP 接口跟播放器解耦前端只要發(fā)一個(gè)請(qǐng)求就行不需要任何原生能力。代價(jià)轉(zhuǎn)移到了服務(wù)端。你要維護(hù)一個(gè)流媒體服務(wù)要算帶寬要處理設(shè)備斷線重連要管會(huì)話和鑒權(quán)。以 1080p 主碼流 4Mbps 為例如果網(wǎng)關(guān)不做轉(zhuǎn)碼只做轉(zhuǎn)封裝一臺(tái) 4 核 8G 的服務(wù)器扛二三十路拉流問題不大但一旦要做 H.265 轉(zhuǎn) H.264因?yàn)闉g覽器對(duì) H.265 支持很差CPU 立刻成為瓶頸一路轉(zhuǎn)碼大概要吃掉一個(gè)核心的 30% 到 50%。這個(gè)成本很多人在選型階段根本沒算進(jìn)去。延遲上WebRTC 能做到 300 到 800 毫秒HTTP-FLV 大概 1 到 3 秒HLS 就別考慮了動(dòng)輒 5 秒以上云臺(tái)轉(zhuǎn)一下要等半天才看到畫面體驗(yàn)極差。2.4 三條路線橫向?qū)Ρ冗x型時(shí)到底看哪幾個(gè)指標(biāo)光講感受不夠我把關(guān)鍵維度整理成表格你對(duì)著自己的項(xiàng)目勾一下就知道該走哪條。對(duì)比維度路線一 web-view路線二 原生插件路線三 自建網(wǎng)關(guān)首幀延遲1 到 3 秒200 到 500 毫秒WebRTC 300 到 800 毫秒FLV 1 到 3 秒云臺(tái)控制體感一般有 0.5 秒左右滯后幾乎實(shí)時(shí)較好取決于接口響應(yīng)端覆蓋App、H5僅 AppApp、H5、小程序包體積增量幾乎為 020 到 40MB2 到 5MBUI 可控性極低高高截圖/錄像/AI不支持完整支持需網(wǎng)關(guān)側(cè)配合服務(wù)端成本無無有按路數(shù)和帶寬增長前端開發(fā)量極低高雙端各寫中長期維護(hù)難度受廠商頁面變更影響受 SDK 與 IDE 版本影響受運(yùn)維能力影響我的經(jīng)驗(yàn)是如果三個(gè)月內(nèi)要交付且只需要 App選路線一如果對(duì)延遲和控制精度有硬要求、長期迭代選路線二如果有小程序端訴求、或者未來要接多家廠商設(shè)備選路線三。最怕的是需求沒說清楚就先動(dòng)手做完發(fā)現(xiàn)方向不對(duì)那才是真的浪費(fèi)。3. 云臺(tái)控制才是真正的地雷區(qū)指令下發(fā)的細(xì)節(jié)與兜底3.1 控制通道和媒體通道必須解耦別把云臺(tái)指令塞進(jìn)播放鏈路新手最容易犯的錯(cuò)是把云臺(tái)控制和視頻播放當(dāng)成一件事。比如用 web-view 內(nèi)嵌播放頁就想著云臺(tái)按鈕也用它自帶的吧或者用原生插件云臺(tái)指令只能通過播放器的實(shí)例發(fā)。這兩種做法都會(huì)讓你在后期極其被動(dòng)——播放器崩了云臺(tái)就轉(zhuǎn)不了播放器換了云臺(tái)邏輯要重寫。正確的做法是把兩者徹底分開。視頻走視頻的通道云臺(tái)走云臺(tái)的通道兩者只在業(yè)務(wù)層做狀態(tài)同步。云臺(tái)通道的最優(yōu)解是廠商的 HTTP 接口形如POST /api/ptz/control參數(shù)里帶設(shè)備序列號(hào)、通道號(hào)、動(dòng)作命令、速度、持續(xù)時(shí)間。這條通道你可以用uni.request發(fā)三個(gè)端完全一致不依賴任何原生能力也不受播放器狀態(tài)影響。分離之后有個(gè)好處你可以做指令隊(duì)列和狀態(tài)機(jī)。比如用戶按住向左前端每秒發(fā) 5 次指令不是必須但某些廠商協(xié)議要求持續(xù)心跳松開時(shí)發(fā)一次停止。如果網(wǎng)絡(luò)抖動(dòng)導(dǎo)致某次停止指令丟了隊(duì)列里會(huì)有重試。而如果用播放器自帶的控制方法你根本不知道指令有沒有發(fā)出去。還有一點(diǎn)云臺(tái)指令的響應(yīng)要跟 UI 反饋配合。按下按鈕后按鈕變高亮收到接口返回成功之后再取消高亮如果 3 秒內(nèi)沒返回顯示控制超時(shí)請(qǐng)重試。這種細(xì)節(jié)看著小但在值班室場(chǎng)景里特別重要——值班員按了半天沒反應(yīng)會(huì)以為系統(tǒng)壞了反復(fù)狂點(diǎn)最后云臺(tái)轉(zhuǎn)過頭。3.2 方向、速度、時(shí)長三要素一次完整的指令封裝應(yīng)該長什么樣不同廠商的云臺(tái)指令字段長得不一樣但本質(zhì)都是三要素方向、速度、持續(xù)時(shí)間。方向一般有八個(gè)上、下、左、右、左上、左下、右上、右下加上變倍放大縮小、聚焦遠(yuǎn)/近、光圈大/小、預(yù)置位調(diào)用。速度是個(gè)整數(shù)檔位常見的是 1 到 8 檔或者 1 到 7 檔數(shù)字越大轉(zhuǎn)得越快。速度檔位和實(shí)際角速度的關(guān)系廠商手冊(cè)里通常會(huì)寫1 檔約等于最大轉(zhuǎn)速的 1/8。假設(shè)某球機(jī)的水平最大轉(zhuǎn)速是 200 度每秒那 4 檔就是 100 度每秒轉(zhuǎn)動(dòng) 90 度大概需要 0.9 秒。這個(gè)換算在調(diào)試時(shí)非常有用你可以據(jù)此判斷按一下按鈕轉(zhuǎn) 90 度大概要按多久也能據(jù)此設(shè)定前端的默認(rèn)速度。// 以某廠商 HTTP 接口為例封裝一個(gè)通用的云臺(tái)控制方法 const PTZ_SPEED_MAX 8 /** * param {Object} opts * param {String} opts.deviceId 設(shè)備序列號(hào) * param {Number} opts.channel 通道號(hào)通道 1 表示第一路 * param {Number} opts.command 1上 2下 3左 4右 5左上 6左下 7右上 8右下 9放大 10縮小 11停止 * param {Number} opts.speed 1-8 檔默認(rèn) 4 檔 * param {Number} opts.duration 持續(xù)毫秒數(shù)0 表示一直轉(zhuǎn)到收到停止指令 */ export async function ptzControl({ deviceId, channel 1, command, speed 4, duration 0 }) { // 速度檔位歸一化避免前端傳 0 或者 9 這種越界值 const safeSpeed Math.min(Math.max(Number(speed) || 4, 1), PTZ_SPEED_MAX) const res await uni.request({ url: ${BASE_URL}/api/ptz/control, method: POST, timeout: 5000, header: { Content-Type: application/json, Authorization: Bearer ${getToken()} }, data: { deviceId, channel, command, speed: safeSpeed, duration } }) if (res.data.code ! 0) throw new Error(res.data.msg || 云臺(tái)指令下發(fā)失敗) return res.data }配套還需要一個(gè)停止的兜底邏輯后面一節(jié)細(xì)說。這里先強(qiáng)調(diào)一個(gè)細(xì)節(jié)不要在前端做速度的百分比換算。有些同學(xué)喜歡把滑動(dòng)條做成 0 到 100然后除以 12.5 轉(zhuǎn)成檔位結(jié)果就是滑到 50 這個(gè)位置時(shí)四舍五入到 4 檔但用戶以為速度是一半。直接在 UI 上暴露 1 到 8 這八個(gè)檔位或者用慢/中/快三檔映射到 2/4/6比百分比直觀得多也少一類溝通成本。3.3 停止指令丟失的四種典型場(chǎng)景以及我用的三層兜底這是我在項(xiàng)目里踩得最狠的一個(gè)坑。云臺(tái)開始轉(zhuǎn)和停止轉(zhuǎn)是兩條獨(dú)立指令一旦只發(fā)了開始沒發(fā)停止云臺(tái)就會(huì)一路轉(zhuǎn)到機(jī)械限位撞上去發(fā)出咔咔的聲音長時(shí)間這樣對(duì)電機(jī)是實(shí)打?qū)嵉膿p傷。我遇到過的觸發(fā)場(chǎng)景有四個(gè)場(chǎng)景一手指滑出按鈕范圍。用戶按住向左手指往外一滑touchend在按鈕上沒觸發(fā)touchcancel如果沒監(jiān)聽停止指令就丟了。場(chǎng)景二頁面切后臺(tái)。用戶按住按鈕的時(shí)候來了個(gè)電話應(yīng)用進(jìn)后臺(tái)JS 線程被掛起回來的時(shí)候按鈕已經(jīng)不在按下狀態(tài)了。場(chǎng)景三路由跳轉(zhuǎn)。按住按鈕的同時(shí)點(diǎn)了返回頁面卸載未發(fā)出的指令沒了。場(chǎng)景四網(wǎng)絡(luò)抖動(dòng)。停止指令發(fā)出去了但接口超時(shí)前端拋異常走了錯(cuò)誤分支沒有重試。我的解決方案是三層兜底實(shí)測(cè)下來再?zèng)]出過問題第一層事件層面全覆蓋。除了touchstart和touchend必須同時(shí)監(jiān)聽touchcancel并且在document級(jí)別App 端用plus的全局事件監(jiān)聽指針抬起保證手指離開屏幕的任何方式都能觸發(fā)停止。第二層定時(shí)器兜底。每次下發(fā)開始轉(zhuǎn)動(dòng)時(shí)同時(shí)啟動(dòng)一個(gè)定時(shí)器時(shí)長等于預(yù)期的最大轉(zhuǎn)動(dòng)時(shí)間比如 5 秒超時(shí)后強(qiáng)制發(fā)一次停止指令并彈一個(gè)輕提示云臺(tái)轉(zhuǎn)動(dòng)超時(shí)已自動(dòng)停止。第三層狀態(tài)回讀校驗(yàn)。停止指令發(fā)出后延遲 500 毫秒調(diào)一次廠商的查詢?cè)婆_(tái)狀態(tài)接口如果返回的狀態(tài)仍是在轉(zhuǎn)動(dòng)再補(bǔ)發(fā)一次停止最多重試兩次。let ptzTimer null let isMoving false async function startMove(command) { if (isMoving) await stopMove() // 防止上一條指令還沒停就發(fā)新指令 isMoving true await ptzControl({ deviceId, command, speed, duration: 0 }) clearTimeout(ptzTimer) ptzTimer setTimeout(() { stopMove(超時(shí)自動(dòng)停止) }, 5000) } async function stopMove(reason ) { if (!isMoving) return clearTimeout(ptzTimer) isMoving false const cmd 11 try { await ptzControl({ deviceId, command: cmd }) } catch (e) { // 失敗重試一次 try { await ptzControl({ deviceId, command: cmd }) } catch (e2) {} } setTimeout(async () { try { const status await queryPtzStatus(deviceId) if (status.moving) await ptzControl({ deviceId, command: cmd }) } catch (e) {} }, 500) } // 頁面卸載時(shí)也要停 onUnload(() { stopMove(頁面卸載) }) onHide(() { stopMove(應(yīng)用進(jìn)入后臺(tái)) })提示isMoving這個(gè)狀態(tài)鎖一定要加。用戶連點(diǎn)方向鍵的時(shí)候沒有鎖的話會(huì)并發(fā)發(fā)出十幾條指令設(shè)備端處理不過來表現(xiàn)就是畫面卡一下然后猛地轉(zhuǎn)一大截非常嚇人。4. 跨端適配的差異清單三個(gè)端根本不是一回事4.1 小程序端live-player 的能力邊界要先摸清很多人默認(rèn)uniapp 一套代碼多端跑以為小程序端也能跑原生插件這是錯(cuò)的。小程序不支持原生插件只支持live-player組件而這個(gè)組件對(duì)協(xié)議有限制——一般支持 RTMP 和 FLV不支持 RTSP也不能播放 HLS 的直播流點(diǎn)播可以。所以如果你的設(shè)備只能出 RTSP小程序端就必須要有一個(gè)轉(zhuǎn)封裝的網(wǎng)關(guān)繞不開。live-player還有幾個(gè)特點(diǎn)要提前知道它是原生組件層級(jí)永遠(yuǎn)在最上面普通的view蓋不住它只能用cover-view和cover-image。要做云臺(tái)控制按鈕浮在畫面上就得用cover-view寫而cover-view支持的樣式非常有限圓角、陰影、漸變基本都不生效。我做過一版最后干脆把控制區(qū)放在畫面下方不做懸浮反而更清爽。另外live-player的清晰度和碼流切換需要在初始化時(shí)通過mode參數(shù)指定運(yùn)行中切換要銷毀重建組件會(huì)有明顯黑屏。如果業(yè)務(wù)需要頻繁切主/子碼流建議直接固定用子碼流720p、1Mbps 左右畫質(zhì)夠看延遲和流量都友好。關(guān)于小程序的準(zhǔn)入live-player屬于實(shí)時(shí)音視頻類組件對(duì)小程序主體的服務(wù)類目有要求不是隨便注冊(cè)一個(gè)號(hào)就能用。上線前一定先確認(rèn)自己賬號(hào)是否具備條件這個(gè)環(huán)節(jié)卡住的話前端做得再好也發(fā)不出去。這一點(diǎn)在項(xiàng)目排期的時(shí)候就要問清楚別等到提審才發(fā)現(xiàn)。4.2 App 端nvue 與 vue 的組件層級(jí)問題App 端如果走原生插件畫面通常是一個(gè)原生view它和 uniapp 的 vue 頁面不在一個(gè)渲染層里。在 vue 頁面里這個(gè)原生 view 會(huì)蓋住所有普通元素跟小程序的原生組件一個(gè)毛病。解決辦法是用nvue頁面weex 渲染它的層級(jí)控制更接近原生可以把原生 view 嵌進(jìn)去。但 nvue 的坑也不少。它不支持大部分 CSS 選擇器只支持 flex 布局position: fixed的行為跟普通 vue 不一樣列表必須用list組件而不是scroll-view。我的做法是把監(jiān)控畫面單獨(dú)做成一個(gè) nvue 頁面控制面板、設(shè)備列表這些用普通 vue 頁面通過uni.navigateTo跳轉(zhuǎn)兩邊只傳設(shè)備 ID 和通道號(hào)。這樣既繞開了層級(jí)問題又不用把整個(gè)應(yīng)用改寫成 nvue。還有一個(gè)容易忽略的點(diǎn)App 端的硬解碼。低端安卓機(jī)軟解 1080p 會(huì)直接卡成幻燈片一定要在插件里開啟硬解。安卓的硬解兼容性是出了名的差不同芯片平臺(tái)高通、聯(lián)發(fā)科、紫光展銳表現(xiàn)差異很大有些機(jī)型開硬解會(huì)花屏。我的經(jīng)驗(yàn)是做一個(gè)開關(guān)默認(rèn)開硬解同時(shí)在設(shè)置里留一個(gè)兼容模式給用戶手動(dòng)關(guān)掉遇到花屏讓他自己切比你在代碼里到處加機(jī)型白名單靠譜。4.3 H5 端解碼能力和跨域是兩個(gè)繞不過去的門檻瀏覽器端的問題主要是兩個(gè)。一是編碼格式H.265 在 Chrome 上的支持非常差基本要靠 WebAssembly 軟解1080p 軟解 CPU 直接拉滿風(fēng)扇狂轉(zhuǎn)。所以面向 H5 的方案一定要在網(wǎng)關(guān)側(cè)把 H.265 轉(zhuǎn)成 H.264或者干脆把設(shè)備的子碼流編碼格式設(shè)成 H.264。二是跨域和鑒權(quán)。flv.js播 HTTP-FLV 需要服務(wù)端允許跨域Access-Control-Allow-Origin要配好。如果流地址帶 tokentoken 過期后播放器不會(huì)自動(dòng)重新拉流表現(xiàn)就是畫面卡住不動(dòng)也不報(bào)錯(cuò)。我一般會(huì)監(jiān)聽播放器的error和statistics_info事件超過 5 秒沒有新數(shù)據(jù)就主動(dòng)銷毀重建同時(shí)刷新 token。H5 還有一個(gè)隱形問題瀏覽器的自動(dòng)播放策略。帶聲音的流必須用戶交互之后才能播所以監(jiān)控頁面的初始狀態(tài)最好是靜音畫面出來后給一個(gè)開啟聲音的按鈕。不然用戶進(jìn)去看到一片黑其實(shí)是播放被攔了控制臺(tái)里一行提示非技術(shù)的同事根本找不到原因。5. 實(shí)測(cè)數(shù)據(jù)延遲怎么量、并發(fā)怎么算、內(nèi)存怎么控5.1 延遲的逐段拆解與測(cè)量方法先說測(cè)量方法這個(gè)很實(shí)用用兩臺(tái)手機(jī)一臺(tái)打開高精度秒表網(wǎng)頁另一臺(tái)顯示監(jiān)控畫面把兩臺(tái)手機(jī)放在一起用第三臺(tái)手機(jī)的高速攝像120 幀或 240 幀拍下來看秒表數(shù)字和畫面里秒表數(shù)字差多少幀。這個(gè)土辦法比任何工具都準(zhǔn)我在項(xiàng)目驗(yàn)收時(shí)經(jīng)常用客戶一看就服。延遲的構(gòu)成可以拆成四段設(shè)備采集編碼 80 到 150 毫秒、網(wǎng)絡(luò)傳輸 30 到 200 毫秒取決于是否走公網(wǎng)、服務(wù)端轉(zhuǎn)封裝緩沖 100 毫秒到 3 秒這里是最大的變量、前端解碼渲染 50 到 150 毫秒。優(yōu)化的重點(diǎn)全在第三段。如果走 HTTP-FLV播放器默認(rèn)會(huì)緩存一個(gè) GOP 的數(shù)據(jù)才開始播GOP 設(shè)成 4 秒的話光等待就是 2 秒起。解決辦法是讓設(shè)備把 I 幀間隔調(diào)到 1 秒甚至 0.5 秒同時(shí)關(guān)閉 B 幀播放器側(cè)把enableStashBuffer設(shè)為false、stashInitialSize調(diào)小。我實(shí)測(cè)過這樣一套組合拳能把 FLV 的延遲從 3 秒壓到 1.2 秒左右。如果對(duì)延遲有硬要求比如需要跟著云臺(tái)轉(zhuǎn)動(dòng)實(shí)時(shí)看畫面變化延遲超過 1 秒會(huì)非常難受那就只能上 WebRTC。它沒有 GOP 緩沖的概念靠 NACK 和 PLI 做丟包重傳和關(guān)鍵幀請(qǐng)求做到 500 毫秒以內(nèi)不稀奇。代價(jià)是服務(wù)端的復(fù)雜度和 CPU 開銷上去了得權(quán)衡。傳輸方式實(shí)測(cè)首幀延遲云臺(tái)跟隨體感服務(wù)端開銷適用場(chǎng)景HLS5 到 10 秒完全不能用低只看回放不做控制HTTP-FLV1.2 到 3 秒勉強(qiáng)可用中一般預(yù)覽、值班監(jiān)看WebRTC0.3 到 0.8 秒流暢高需要精準(zhǔn)控制的場(chǎng)景原生 SDK 直連0.2 到 0.5 秒流暢無App 專屬追求極致體驗(yàn)5.2 多路并發(fā)、內(nèi)存與帶寬的賬要提前算做監(jiān)控方案必算兩筆賬帶寬和內(nèi)存。帶寬方面假設(shè)一路 1080p 主碼流 4Mbps一個(gè) 4 宮格頁面就是 16Mbps。如果有 10 個(gè)用戶同時(shí)看 4 宮格網(wǎng)關(guān)的出口帶寬就是 160Mbps換算成下載速度是 20MB/s。這個(gè)數(shù)字很多人在方案評(píng)審時(shí)才意識(shí)到然后回頭要求前端降碼流。我的建議是默認(rèn)走子碼流720p 大概 1 到 1.5Mbps4 宮格 6Mbps10 個(gè)用戶 60Mbps一臺(tái)常規(guī)云服務(wù)器就能扛住需要看細(xì)節(jié)時(shí)再單畫面切主碼流。存儲(chǔ)方面如果要做本地或服務(wù)端錄像按 4Mbps 算一天一路就是4Mbps × 86400 秒 ÷ 8 43.2GB。存 30 天就是 1.3TB 一路十路就是 13TB。這個(gè)賬一定要在需求階段就算給客戶看否則他覺得錄個(gè)像能有多大。內(nèi)存方面安卓機(jī)上每一路 1080p 解碼大概占 80 到 150MB 內(nèi)存4 宮格就是 400 到 600MB加上應(yīng)用本身低端機(jī)3GB 內(nèi)存很容易被系統(tǒng)殺掉。所以我把并發(fā)路數(shù)硬性限制在 4 路超過就提示最多同時(shí)預(yù)覽 4 路并且做分頁加載——用戶滑到第二頁時(shí)才初始化新的播放實(shí)例滑走的立刻銷毀。實(shí)測(cè)下來這樣一來內(nèi)存峰值能降 40% 左右長時(shí)間運(yùn)行8 小時(shí)以上也不會(huì)出現(xiàn)明顯的內(nèi)存增長。還有一個(gè)細(xì)節(jié)頁面切后臺(tái)要主動(dòng)停流。很多應(yīng)用切到后臺(tái)還在拉流解碼手機(jī)燙得厲害電量掉得飛快。onHide里調(diào)stopPlayonShow里重新startPlay兩行代碼的事用戶口碑差別很大。6. 排錯(cuò)速查這些坑我基本都踩過一遍6.1 畫面類問題黑屏、花屏、卡頓的排查順序黑屏是最常見的報(bào)障但原因可能有七八種按下面的順序查能省很多時(shí)間。第一步看播放器有沒有觸發(fā)播放成功回調(diào)。沒有觸發(fā)就是取流地址或鑒權(quán)的問題先用 VLC 之類的通用播放器驗(yàn)證地址本身通不通排除設(shè)備側(cè)故障。第二步看控制臺(tái)有沒有跨域報(bào)錯(cuò)。有就是服務(wù)端 CORS 沒配或者用了 HTTPS 頁面去拉 HTTP 的流混合內(nèi)容被瀏覽器攔截這是 H5 端最高頻的原因。第三步看編碼格式。花屏大概率是 H.265 用軟解或者硬解兼容性問題切成 H.264 試試如果是綠屏加馬賽克一般是碼流不完整或者網(wǎng)絡(luò)丟包嚴(yán)重。第四步看內(nèi)存??D但不報(bào)錯(cuò)用開發(fā)者工具看一眼內(nèi)存曲線如果持續(xù)上漲就是播放實(shí)例沒有銷毀切頁面時(shí)stopPlay沒調(diào)。6.2 控制類問題指令發(fā)出去了但云臺(tái)不動(dòng)云臺(tái)不動(dòng)的情況我的排查順序是先確認(rèn)接口返回碼很多廠商接口返回 200 但 body 里的 code 是錯(cuò)誤碼前端只看 HTTP 狀態(tài)就誤判成功了再確認(rèn)通道號(hào)多通道設(shè)備比如 NVR 下掛多個(gè)攝像機(jī)通道號(hào)從 1 開始還是從 0 開始不同廠商不一樣填錯(cuò)了指令發(fā)給了不存在的通道最后確認(rèn)設(shè)備是否被其他客戶端占用某些設(shè)備同時(shí)只允許一個(gè)控制端值班室的大屏占著控制權(quán)你這邊發(fā)指令就沒反應(yīng)。還有一種情況是能轉(zhuǎn)但轉(zhuǎn)得很慢或者很快。這就是速度檔位的問題檢查一下前端傳的是 1 到 8 還是 0 到 100映射錯(cuò)了就會(huì)出這種效果。我有一次就是因?yàn)閮商状a里一套傳檔位一套傳百分比聯(lián)調(diào)了半天。6.3 打包與兼容類問題插件在真機(jī)上失效原生插件最常見的報(bào)錯(cuò)是方法未定義八成是自定義基座沒打。標(biāo)準(zhǔn)基座里沒有你的插件必須打自定義基座才能調(diào)試這個(gè)新人幾乎必踩。其次是**.so架構(gòu)缺失**報(bào)UnsatisfiedLinkError檢查build.gradle里的abiFilters和目標(biāo)機(jī) CPU 架構(gòu)是否匹配現(xiàn)在主流是arm64-v8a但工控機(jī)、一體機(jī)不少還是 32 位。第三是iOS 的隱私權(quán)限描述。訪問麥克風(fēng)對(duì)講、相冊(cè)截圖保存都需要在Info.plist里配描述文案缺了會(huì)在調(diào)用瞬間閃退日志里還不一定有明確提示。最后是插件版本與 IDE 版本不匹配表現(xiàn)是編譯通過但運(yùn)行時(shí)找不到方法。解決辦法是清基座緩存、重新打自定義基座別在這上面浪費(fèi)時(shí)間猜。現(xiàn)象最可能原因快速驗(yàn)證方式處理方式畫面全黑無報(bào)錯(cuò)token 過期或跨域用通用播放器驗(yàn)證流地址刷新 token、配置 CORS畫面花屏H.265 硬解兼容性切 H.264 或關(guān)硬解加兼容模式開關(guān)云臺(tái)無響應(yīng)通道號(hào)錯(cuò)誤或設(shè)備被占用看接口 body 的 code校正通道號(hào)、釋放控制權(quán)云臺(tái)轉(zhuǎn)不停停止指令丟失抓包看是否有停止請(qǐng)求加三層兜底邏輯插件方法未定義未打自定義基座看控制臺(tái)報(bào)錯(cuò)棧重打自定義基座運(yùn)行一段時(shí)間卡死播放實(shí)例未銷毀觀察內(nèi)存曲線頁面切換時(shí) stopPlay7. 選型建議與落地節(jié)奏別一上來就啃硬骨頭7.1 按團(tuán)隊(duì)規(guī)模和訴求對(duì)號(hào)入座如果團(tuán)隊(duì)只有一兩個(gè)前端且只做 App、交付周期緊直接走路線一用廠商的 H5 頁面把流程跑通先把業(yè)務(wù)價(jià)值交付出去后面再優(yōu)化。如果對(duì)云臺(tái)精度、截圖、AI 識(shí)別有硬需求且團(tuán)隊(duì)有安卓或 iOS 的封裝能力走路線二性能是最優(yōu)的。如果要多端覆蓋、要接多家廠商設(shè)備、團(tuán)隊(duì)有服務(wù)端運(yùn)維能力走路線三前期投入大但天花板最高。還有一個(gè)混合策略我經(jīng)常用App 端走原生插件H5 和小程序端走網(wǎng)關(guān)加 FLV。同一個(gè)業(yè)務(wù)頁面通過條件編譯區(qū)分播放組件上層的設(shè)備列表、云臺(tái)控制面板、報(bào)警信息這些邏輯完全復(fù)用。這樣既保證了主場(chǎng)景的體驗(yàn)又覆蓋了次要場(chǎng)景代價(jià)只是多維護(hù)一個(gè)網(wǎng)關(guān)。7.2 我給一個(gè)三個(gè)月的落地節(jié)奏第一個(gè)月做驗(yàn)證不要寫業(yè)務(wù)代碼。拿一臺(tái)真實(shí)設(shè)備把三條路線各跑一個(gè)最小 demo重點(diǎn)測(cè)三件事延遲用秒表法量、云臺(tái)控制體感、目標(biāo)機(jī)型的兼容性。這一步做完路線基本就定了而且后面的返工風(fēng)險(xiǎn)能降一大半。第二個(gè)月做骨架。把播放組件、云臺(tái)控制器、設(shè)備管理三個(gè)模塊拆開播放組件對(duì)外只暴露play、stop、snapshot三個(gè)方法云臺(tái)控制器對(duì)外只暴露move、stop、gotoPreset。用接口約束住后面換實(shí)現(xiàn)只改一個(gè)文件。第三個(gè)月做適配和打磨。集中處理各端差異、內(nèi)存優(yōu)化、異常兜底然后拉真實(shí)用戶值班員、巡檢員試用一周。他們對(duì)卡不卡、轉(zhuǎn)得準(zhǔn)不準(zhǔn)的感知比任何測(cè)試用例都準(zhǔn)往往能挖出你在實(shí)驗(yàn)室里發(fā)現(xiàn)不了的問題。最后分享一個(gè)我自己踩出來的小體會(huì)云臺(tái)控制這件事寧可讓用戶多點(diǎn)兩下也不要讓它轉(zhuǎn)得太猛。我給所有項(xiàng)目的默認(rèn)速度都設(shè)成 4 檔中速并且在設(shè)置里提供精細(xì)模式2 檔。用戶第一次用會(huì)嫌慢但用一周之后沒人愿意調(diào)回去——轉(zhuǎn)太快根本對(duì)不準(zhǔn)尤其是要看清車牌或者人臉的時(shí)候?qū)幙陕病_@個(gè)參數(shù)看著不起眼卻是使用體驗(yàn)里最容易被忽略、也最容易調(diào)好的一環(huán)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
热久久国产精品视频大陆精品| 色综合尤物| 中文字幕精品亚洲熟女| 激情 欧美 亚洲 小说| 天天日天天爽| 日本天天干天天操一区| 97超碰碰碰| 亚洲同性aV综合| 91熟女熟妇视频网站| 国产sv美女内射| 亚洲精品一区二区三区在线播放 | www.色婷婷.com| 强奸少妇AV导航网| 大香蕉AV丝袜| 一本大道久| 香蕉人人操tv| 国产一区二区三区,在线观看观看| 立川理惠被中出无码| 五月天激情小说网| 日本爽爽爽爽爽爽免费视频| 亚洲资源网| 另类 日韩 熟女| 台湾一区国产高清在线| 亚洲男人的天堂一区二区| 亚洲一级黄色毛片| 亚洲色天堂九9| 欧美精品99久久久| 园内精品自拍视频在线播放| 91宗合网| 亚洲第一男人天堂| 91free福利| 99999亚洲| 国产综合久久久鬼色| 在线观看日韩av不卡| 精品国产乱子伦一区二区三区,精品一| 国产精品极品美女视频| 操逼网站网站| 日本操逼视频免费| 一本色道熟妇| 人妻丝袜肏逼| 久久精品国产亚洲5555| 99色日| 白 大 人妻 区 在线| 91黑丝美女| 一道本东京热加勒比一区二区三区| 九九九九久久久| 日韩美女久久一区二区三区| 性性久久| 大香蕉淫人| 性色亚洲| 肉嘟嘟www视频在线观看高清| aⅴ日韩成人电影av在线免费看av大全 | 天堂亚洲精品| 污色区网站| 亚洲另类小说卡通动漫| 亚洲AV操| 婷婷色香| 精品人妻一区二区三区四区| 亚洲性天堂| 成人性爱免费播放| 色色五月婷| 蜜桃视频一区二区三区在线观看| 99这里只有精品| 一区二区三区高清| 一起草精品人妻| 日韩AV中文字幕电影| 青草园大香蕉| 日韩av电影成人在线| 免费综合亚洲中文| 色妇91| 91五月天| 中文字幕88av在线| 久草电影网| 国产日韩人人| 亚洲在钱| 国产精品免费久久久久久久久久| 欧美 亚洲| 97欧美久久久久久久| 日日妻色网| 亚洲AV免费在线观看| 国内毛片无码一级毛片| 亚洲最大无码中文字幕网站| 天天色图| 97超碰欧美精品| 91操熟女视频| 亚洲天堂在线怕怕视频| 强奸乱伦大香蕉| 久久久久久网址| 91天堂| 九九久久久| 性91| 欧美三四五区| 欧美日韩在线视频网站| 亚洲精品官网在线观看| 黄色av一区二区在线| 综合激情97 | 国产女人高潮嗷嗷嗷叫小说| 377p欧洲日本亚洲大胆| 综合欧美日本三级| 超碰国产情侣自拍网| 蜜桃在线观看一区二区三区| 亚洲s色图| 国产午夜精品在线观看| 亚洲九九夜夜| 久久久久幕乱码| 天天视频黄| 97超碰国产亚洲精品资源| 久色99999| 国产AAAAAABBBBB| 加勒比综合九九99视频在线播放| 天天天肏屄肏屄肏屄欧美欧美| 亚洲性高潮| 无码免费在线观看黄色片| 91精品国产91综合久久蜜臀| 人人透人人操| 亚洲青青草| 亚洲国产av中文字幕久久| 五月婷婷综合网| 日韩精彩视频| 欧美综合娱乐久久| 国产精品乱码久久久久久久久久久久| 国产欧美日产一区二区三区 - 国产欧美日 | 欧美亚洲宗合色性图| 国内偷拍精品一区二区| 97在线观视频免费观看| 亚洲一区二区三区播放在线| 日韩熟女视频二区| 九九黄色视频在线观看| 日日日大屁股骚女人精品| 欧美性夜| 亚洲棕合电彰| 中文人妻av高清一区| 91嫩草在线| 十八禁av无码免费网站APP| 91久青| 99热这里都是精品| 国产二区三区粉嫩在线| 欧美有码激情视频一区二区三区| 久久精品国产精品一区| 亚洲欧美日韩电影网站一区 | 在线欧美亚洲| 91粉芽高清在线一区二区| 麻豆九九九| 国产日韩久久| 综合久欧洲| 99久久精品欧美国产| 日韩78m视频| 家庭乱伦性爱av| 青娱乐黄色录像| 超碰爽人妻熟女Av| 久久久精品无码亚免费| 国产白丝AV| 日韩国产十八禁| 欧美日韩另类在线播放| 国产在线激情| 91欧美美女日韩国产婷婷| 国产一级αv免费看片| 久久久久久九九九| 黄色成年| 国产9熟妇视频网站| 日韩资源网| 日本三级久| 久久丁香五月婷婷| 性做久久久久久久| 偷拍综合亚洲| 97在线免费看| 4399成人黄A片| 美國A片| 久久六六| 美女91| 综合另类| 资源新线在线天堂| 97干在线视频| 夜夜免费视频| 欧美综合第一| 人妻天天爽夜夜爽爽| 综合久久六月久久婷婷| 精品人体无圣光凹凸| 亚洲精品自拍| 欧美日韩午夜精品一区二区三区| 欧美特黄视频网站| 2020中文字幕在线| 亚洲AV色图一区| 国产乱码久久久久久| 奇米四色网| 高潮嗯啊性感美女久久久| 亚洲,欧美,春色,另类| 黄色电影在线播放综合网站 | 视频在线观看一二三区| 亚洲综合色图欧美| 欧美,日韩综合久久| 色色综合网站| 天美麻豆黄色录像| 91爆操视频| 欧美 亚洲 偷拍自拍| 欧亚综合一卡二卡中文字幕| 九热超碰| 国产成人午夜视频网址| 一区中文字幕二区日韩| 另类专区加勒比| 成人小说另类在线| 99re9在线| 超碰地址久久| 亚洲午夜免费狠狠干| 亚洲综合色在线| 激情五月天插| 久久久久久性爱片| 丰满人妻一区二区三区四区| 夜夜一区二区| 97美日韩视频| 天天插天天干| 亚洲码在线中文在线观看| 青青青国产手线观看视频2| 加勒比久久综合网高清| 国产视频小说| 草莓精品视频| 丰满熟女人妻一区二区三五十一路| 亚洲精品性爱片| 亚洲色 国产 欧美 日韩| 91精品国产综合久久久蜜臀| 日韩欧美女求操每天更新| 91粉嫩萝控精品福利网站_精品影音先锋国 | 99精品九九九九九九| 欧美亚洲日本视频久久久| 一区二区三区蜜桃成人撸久久东京热| 呦呦一区| 91在线丝袜视频| 国产精品 久久久精品一牛| 97超碰亚洲| 精品久久久久久中文字幕视频免费| 九九九九久久久| 成人性交免费视频| 青草香蕉网| 人人操肉肉| av东京热男人的天堂| 约操熟妇| 91高清欧美| 欧美亚洲日韩人妻在线观看| 久久精品一区一起草| 新版天堂中文资源8在线| 福利五区| 中文字幕啊啊啊在线观看视频| 999久久久国产精品| 日韩女优中文字幕| 久久精品日韩| 亚洲激情欧美色图| 国产13区| 日本高清一区二区在线| 69一区二区三区| 蜜臀亚洲中文| 青青久久手机线视频| 精品国产乱码久久久久久免费| 91精品国产麻豆国产自产在| 人妻三级在线中文字幕| 大香蕉92| 超碰性爱97| 操逼1区| 丝袜视频网国产90| 国产性感在线观看| 久久久激情| 亚洲成人黄色在线观看| 久一区久久蜜桃| 亚洲男人天堂Av| 一级毛片电影免费看| 精品九九九九九九九| 久久一区二区三区入口| 在线视频 亚洲精品| 欧美亚州综合图片| 小草精彩毛片| 五月色网| 国产偷拍自拍在线视频| 精品日韩人妻视频| 人妻久久| 天天色综合影视网| 麻豆精品天美| 亚洲精品aa久久伊人| 亚洲青青草| 国产蜜臀在线| 天天干少妇| 国产隔壁老王影院在线| 97亚洲色图| 九一屌逼| 99热99色| 亚洲免费成人在线高清无码视频| 一起草视频在线| 91色综合色| 天天亚洲综合| 亚欧精品久久久久久久久久久| 亚洲蜜乳av| 肉动漫无遮挡h在线观看| 88在线一区二区三区| 久久久9品一区二区三区| 曰韩av中文字幕专区| 午夜精品久久一区二区| 97天天插| 天天射夜夜| 欧美情色男人的天堂| 久久草草欧美精品| 99操视频| 久久精品99| 欧美一级AAAAAAA| 凹凸精品熟女在线观看| 天天干人人看综合| 亚洲日韩电影| 大香蕉淫人网| 欧美综合第一页| 骚熟女AV网| 91劲爆| 男人的天堂日本东京热| 色九月综合| 91夜色chaopeng| 东京太热久久久| 成人资源中文字幕在线观看天天| 99在线精品观看99| 日本高清久久| 色99在线| 鲁鲁色综合网| 色大师网站www永久网站视频| 大香蕉手机在线| 日韩亚洲97| 欧美日韩国产色五月综合在线| 91综合国产精品| 亚州中文字幕超碰97| 久久鲁夜| 福利五区| 91天天综合网| 成人性爱av| 亚洲最大成人a毛毛片| 国产一区二区a毛片| 国产黄片在线免费观看| www.91理论| 日本在线不卡v二区| 欧美成人性爱视频大全| 99re6国产精品99re在线| 日本一区二区电影网站| 蜜臀久久久国产| 伊人久久亚洲色欲综合网站| 精品人妻一区二区三区四区不卡在| 东京热男人的天堂| 国产在线观看一区二区三区| 色婷婷激一区二区三区 | 人人操,人人插| 色哟哟AⅤ| 黄色小视频日本txt| 色色色网站| 性欧美天天| 熟妇高潮精品一区二区三区下载| 久久这里只精品| 亚洲色天| 色综合久| 日韩精品区二区三区不卡| 91在线美女| 鸥美插入视频| 欧美姓爱综合网| 91操操操操| 一级黄色性爱A级片| 久久婷婷视频| 伊人大香蕉在线| 日本免费一区二区不卡 | 日本女厕偷拍| 大色网久久| 97超碰色| 四虎影院成年人片| 精品一区二区三区丰满熟女-亚洲欧美一区| 国产97综合| 久区视频| 久久久久久亚洲中文| 九九黄色网| 伊人伊人LD| 精品国产乱码久久| 国产精品日韩在线一区| 日韩成人色图| 少妇精品| 手机看av网站在线看| 亚洲图片 91| 人妻美腿丝袜日韩| 日本一区二区三区四区五区六区七区八区九区| 奇米狠999| 色色色色色色色色色色色色色色综合| 绑缚麻绳人妻寝取完整版| 欧美视频一区二区三区| 东北丰满熟女国产一区| 99国产天美| 人妻91少妇| 久久九九视频九九视频| 久久只有精品一区二区三区| 中国熟妇| 99ri视频| 性爱欧美五月| www久久国产精品| 乱伦3P视频| 午夜性生活av免费在线看| 亚洲区限制级| 国产麻豆91欧美一区二区久久婷婷国产精品| 密臀视频三区免费网站| 日韩性爱高清免费视频| 久草精品一区| 岛国视频一二三区| 性色国产东北露脸精品视频| 亚洲 欧美 精品专区 极品| 另类视频在线| 东京热毛片调教| 91三级理论片播放器| 日韩偷拍色图| 黑人娇小av在线播放| 色噜噜综合网| 97超碰中文在线| av天天在线观看| 亚洲色图欧美色18直播在线| 国产精品成人在线| 久久东京热成人| 婷婷大香蕉| 亚洲人码13| 久久久久国产精品喷潮免费观看臀| 国产精品肉丝自拍| 97干在线| 日韩啪啪啪视频| 久久首页| 欧美性Fer办公室秘书| 亚洲一卡2卡3卡4卡乱码网站| 日韩人妻精品中文字幕| 国内亚洲精彩视频在线| 青青草视频在线观看一区二区| 男女无套 免费网站| 97亚洲性爱| www.色吧5.com| 欧美国产成人在线| 日本日皮视频逼| 亚熟hd视频在线| 亚洲制服欧美另类内射| www男人天堂| 密桃99999| 超清中文乱码字幕| 五月天综合网| 无码视频黄色网战| 精品无码一区二区三区色欲| 999 久久久| 亚洲码专区| 午夜男人的天堂| 男人的天堂啪啪| 亚洲精品自拍| 欧美第五页| 国产成人自拍视频在线| 熟妇一区二区| 91 丝袜在线观看| 另类视频在线| 国产美女销魂在线观看不卡| 97天天在线| 天天干少妇| 操操逼视频| 婷婷久久久精品| 久久婷婷色| 蜜桃狠狠色伊人亚洲综合网站| 超碰精品| 日韩一级二级| 夜嗨影院| 日本性交操一区二区不卡系列| 熟女露脸激情自拍视频| 日韩熟女精品无码专区一区二区| 久久伊人亚洲AV无码网站| 亚洲乱熟女一区二区| 九九九久千久久激情蜜桃在线看 | 日本狂喷奶水在线播放212| 黄页网站成人免费| 亚洲欧洲激情| 久久久久久久久久久999| www.久久久久| 欧美大香蕉同搞| 青青草久草| 91色s| 欧美人妻二区三区| 久操网线| 国产精品ⅴ无码大片在线看.| 亚洲国产精品久久久男人的天堂| 黄页大片在线观看| 亚洲人妻中文高清| 97超碰色色| 97视频在线观看网站| 日韩紧密久久| 五月综合色| 免费一级毛片在线视频观看| 亚洲第一免费视频| 久久午夜鲁丝片| 天天综合-91入口| 亚洲另类色综合网站| 欧美制服网站美腿丝袜| 小少妇| 九九久久综合| 不卡免费av在线播放| av一区二区三区四区| 国产精品ww久久| 欧美综合传媒| 香蕉大久久久| 人妻天天爽夜夜爽2| 欧美少妇性乱| 欧美曰韩国产精品| 91N五十路| 久久人人妻| 一区二区偷拍拍视频| 久9视频| 色综合尤物| 无码高清专| 影音先锋每日最新资源在线观看 | 久久色一区| 久热69九色熟妇97| 精品久久久av| 夜夜嗨av午夜成人| 亚洲有码 视频一区| 欧美色亚洲| 天天肏视频| 亚洲男人电影天堂| 国产操逼网站亚洲一级黄色| 日本黄大片在线观看视频| 日韩免费三级黄片电影| 亚洲一区二区三区中文字幕| 立川理惠被中出无码| 国产Av超碰| 欧美操逼熟女| 久99热| 日韩AV电影网站| 艳美熟妇先锋一二三区| 绯色AV粉色AV蜜臀AV| 亚洲欧洲日产国产综合网| 欧美青青视频| 中文字幕一区二区三区四五区| 91黑丝操| 麻豆国产精品午夜视频| 18禁免费视频| 岛国精品视频在线观看| 看日韩美女二区三区免费操逼视频| 日本一二区免费| 天天天天做夜夜夜夜做| 天天色综合影视网| 日韩免费一级性爱视频| 中文字幕av亚洲在线| 97中文天堂| 丁香五月激情网| 国产亚州精品美女久久久免费| 大伊香蕉在线视频免费| 超碰资源亚洲97| 60秒免费小视频| 色97欧美| 强奸抽插av| 在线视频五十市| 九九人妻| 亚洲男人久久综合天堂| 六月婷婷综合| 91新在线欧美| 亚洲少妇视频| 欧美黑人精品在线播放| 天天日天天爽| 欧美性Fer办公室秘书| 日本加勒比无码专区| 激情抓乳插进去啪啪啪日韩| 五月天婷婷成人网| 久久同城AV| 久99在线免费观看视频| 一级黄色性爱A级片| 国产女人高潮视频| 亚洲精品97久久中文字幕| 2023天天操夜夜操| 人妻久久久| 国产一区二区三区,在线观看观看| 大逼色网站| 成人a大片在线观看| 久久久久久午夜男人的天堂| 天欧美在线| 韩日性爱av| 国产白领连续中出在线观看| 91情色在线| 殴美在线AⅤ| 色老汉色| 可免费观看的av毛片中日美韩| 手机看片1025| 日本性一区| 日本操逼视频不卡直接放| 91老司机在线视频免费观看| 性一级黄色录像片网站导航| 国产成人自拍视频在线| 天天天天天天天天综合| 91国产操逼视频| 欧美日韩高潮喷水91| 亚洲,欧美,综合网| 欧美性爱伊人| 久久久91福利姬| 韩国一级AAA| 欧美一二在线| 久久亚洲国产成人| 美女AV一区二区| 大香蕉乱级| 激情图片亚洲色图| 日韩熟女无码| 久久精品72| 国产传媒午夜理伦精品| 久久久久久91香蕉国产| av爱爱爱| 久操B网| 久久久久久AⅤ无码免费肉站| 婷婷综合久久| 啪啪啪综合| 婷婷五月天色| 欧美不在线| 欧亚综合一卡二卡中文字幕| 丰满熟女一区二区三区在线播放| 先锋精品av色鲁| 亚洲色图欧洲| 久久免费中文字幕在线观看| 色综合1991| 五月丁香六月激情| 蜜臀久久99精品久久久久久-DVD| 日韩另类色图| 在线日韩精品一区二区三区| 久久的网站啊啊啊啊啊| 国产精品蜜臀久久久久无码AV| www.99热在线只有精品| 91社操逼| 哈哈操 大香蕉| 日韩影片中文字幕一区二区三区| www.色吧5.com| 亚洲综合射| 90后性网国产欧美| 色姑娘综合网| 尤物视频视频官网| 日本999精品视频| 超碰97久久| 国产亚卅97| 国产在线视频午夜精华在| 一起草在线视频| 亚洲另类久操网| 777琪琪午夜免费A片| silk lablo在线观看一区二区| 国产亚洲日韩在线三区黑人| 日韩BBN| 欧美嗯啊……在线观看视频免费| 国产黄色在线播放观看| 立川理惠被中出无码 | 日韩99999| 国产精品人人爽人人做可爱福利| 亚洲大胆人体av| 日本福利二区视频| 国产精品露脸在线观看| 一区超碰一区| 人妻精品综合中文字幕在线 | 99这里有精品| 欧亚 另类 久| 欧美不卡五十路| 999 久久久| 亚洲欧洲综合视频在线| 亚洲中文字幕熟女| 国产蜜臀在线| 免费的av网| 日韩人妻一区二区精品| 99热线麻豆 | 日韩有码 一区二区三区| 试看60秒| 99啪| 超碰成人国产| AA级电影三区| 欧美激情1区| 9精品久久| 精品性爱一二三区| xxxx网站亚洲精品| 日本一二区不卡| 日韩人妻精品| 日本999精品视频| 久热伊人| 欧洲一级性爱视频在线观看| 秋霞网无码| 欧美日韩人妻精品系列一区二区三区| 夜夜高潮夜夜爽高清视频一| 欧美性生活综合| 少妇人妻好深太紧了vr91| 国产97在线 | 亚洲| 后入式999| 欧美国产一区二区三区麻豆传媒 | 中国女人内射6XXXXX| 一中国女人毛片水真多| 一区二区三区高清| 夜夜嗨免费视频| 91中文精品日韩欧美在线| 欧美成人都市人妻| 久久综合九九| 国产农村一一级特黄毛片| 大香蕉黄色一级片免费看| 国产久久久久久| 日韩本不卡视频在线观看| 国产精品不卡一区二区三区| 天堂麻豆天美| av婷婷色网| 欧美亚洲今日在线| 亚洲揄拍网| 欧插网站| 日本少妇va7777| 激情自拍 校园春色| 99无码视频| 综合色色网| 国内毛片无码一级毛片| 天天天天天天天天天天干美女| 熟妇的味道HD中文字幕| 日韩中文字幕国产| 亚洲性爱电影| 在线综合 亚洲 欧美中文字幕| 尤物网址| 激情综合网五月婷婷五月天| 国产91精品福利在线| 亚洲色色探花| 久久久久久国产无码精品| 先锋色眉乱伦资源| 久久精品一区二区三区不卡| 欧美三级不卡| 99这里都是精品| 中文字幕精品丝袜| 神马久久久久久久久久| 久久一二三四不卡 | 亚洲国产成人福利在线观看| 十八禁av无码免费网站APP| 91丨豆花丨熟女| 国产操操日韩三级黄| 伊人一级免费黄片| 亚洲超碰AV| 色丁香五月婷婷| 长长久久曰曰夜夜成人网| 亚洲综合春色| 10000部十八禁看电影| 亚洲自拍一区夜夜操| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 亚洲精品一卡二卡三卡福利视频网站| A男人的天堂| 大色网久久| 亚洲天天在线| 操逼日批| 91精品国产麻豆国产自产在| 天美国产精品| 大香蕉综合在线| 国产蜜臀精品一区二区尤物| 天天色图| 搡老人老9丨女老熟人| 日本免费亚洲欧美| 久久久影院| 天美av在线观看| 福利天堂| 日躁天天爽爽| 国产精品点击进入在线影院| 国产三级日产三级韩国三级| 亚洲天堂区| 欧美色图私拍91| 吉川爱美98堂在线| 久久精品成人| 亚洲最新Av| 日韩av在线免费网站| 欧美1727免费观看视频| 亚洲AV无码久久精品蜜桃小说| 丰满少妇精品一区二区| 国产午夜精品理论片一二三区区| 操逼片中文| 午夜情侣自拍网站| 欧美亚洲首页| 国产熟女完整版中字 | 久久久免费高清中文视频| 亚洲 欧美 日韩 国产一区二区| 国产高清成人mv在线观看| 国产免费一区二区三区最新不卡 | 亚洲日韩精品在线播放| 九九九九日本 | 亚洲色图 图片| 久久久久幕乱码| 啪啪资源网| 四虎在线观看视频| 9久久9综合| 性欧美第一页| 欧美黄片视频在线观看免费| 91女人的网站| 欧美亚洲特P| 亚洲最新av无码成人精品区| 91女网站| 久久一区二区蜜桃| wwwxxx日本爽| baiduhicn.com。| 人人搞人人插人人操| 国产激情视频在线观看| 久草久日| 人人操av| 啊啊啊慢点| 在线观看黄色电话| 91碰碰| 国内偷自视频区视频综合| 青青11操操操操操操操操| 日韩欧美三级| 国产精品久久久三级无码| 91欧美丨精品丨入口| 精品日韩人妻视频| 九九九九88| 亚州综合色| 狠狠操夜夜操蜜桃视频三区| 久久国语| 人妻精品一区二区在线| 午夜无码熟妇丰满人妻| 99re公开精品免费视频| 啊啊啊啊啊啊啊啊啊啊在线观看| 伦激情人妻另类人妻| 少妇天堂网络| 蜜臀AV秘一区翔田千里| 91亚洲欧美色图| 先锋激情∨在线视频播放| 久草色悠悠在线视频| 欧美日韩插逼视频| 超碰97玖玖爱| 日韩综合成人免费视频| 狠狠图片青青草| 日韩精品在线观看观看| 91中出| 伊人色综合网| 亚洲视频精选| 超碰亚洲欧美日韩无| 久久狠狠色噜噜狠狠狠狠97| 18一区二区三区| 女人与公拘交酡2020视频| 欧美日韩一干二干| 日本操大逼| 91AV国产精品| WWW4虎| 8x福利精品第一福利视频导航| 精品免费国产二区三区| 色官网色综合| 久久风骚城市人| 国产亚洲一黄| 国模无码人体一区二区三| 91久久堂| 国产成人网站在线观看| 97天天| 国产AV天美| 日韩精品免费高清视频在线| 97精品视频在线播放| 天天干天天干天天| 中日韩免费看男女操逼大全| 欧美乱妇狂野欧美在线视频| 无码人妻丰满热妇又大又粗| 懂色Av一区二区三区| 超碰 另类 欧美| 国产精品福利视频播放| 另类老少妇| 东北女人av| 一牛影视成人片免费| 屁股久久久久久久久| 99久久这里只有精品| 高清国产成人无码| 欧美色97| 天天碰操中国年青熟妇| 亚欧高清v| 在线视频亚洲无码| 欧美成人国产精品| 婷婷99| 亚洲啪啪视频一区二区| 欧美翘臀视频网站一区二区三区 | 96久久久久| 综合天天网| 久久久久久国产精品| 日韩无码操逼片| 日韩精品亚洲一二三| 欧美视频第二页| 欧洲色| 久96热在线观看视频| 91天天爽| 久久一二三四不卡| 伊人久久88国产女| 久操网址| 毛片一区二区| 综合亚州欧美| 小骚逼被操的爽不爽| 内射日韩大臀美女| 国产67194| 神马久久久久久伦理片| 免费成人自拍视频在线| 精品丰满熟妇人妻一区| 男人的天堂欧美| 天美国产精品| 久久亚洲AV无码专区国产精品| 亚洲男人综合| 久久春色| 日韩91网| 激情情色五月天| 人妻酒店出差被中出免费在线播放| 亚欧精品久久久久久久久久久| 婷婷丁香成人| 美国一区二区免费视频| 岛国色情视频在线观看| 成全动漫视频观看免费下载| 欧美视频一| 超碰九7免费| 超碰97COm中文| 精品国产乱码久久久影院| 国产午夜福利合集| 无遮挡猛进视频免费无限观看| 激情网色| 操逼无码操逼| 国产极品粉嫩馒头一线天av| 91精品丝袜久久久久久| 国产成人五月天丁香花| 国产AV人人 夜夜人人澡| 在线女人91| 国产大学生高潮在线播放| 秋霞午夜成人福利片片| 视频在线中文字幕| 亚洲精品久久久久久| 中国熟女91| 热的中文 热的有码 热的国产| 日日黄色三级网站| 啊啊啊啊在线观看网址| 内射黑人| 久久成人午夜狠狠| 后入式五六区| 日韩欧美中文字亚洲慕| 91麻豆天美国产欧美高潮| 久久精品成人一区二区三区蜜臀| 久久综合久色欧美综合狠狠| 另类图片五月天| 色97欧美| 玖玖久久久| 天天做天天爱| 亚洲无码国产探花在线观看| 蜜乳视频网站| 久久一区无码| 国产专区路线| 亚洲综合性网址| 九9精品| 97视频一区| 91亚洲欧洲| 99久久久无码国产精品性啊聊| 成人26uuu| 久操网视频| 看日韩操逼| 丝袜夫妻自拍| 日日橹狠狠爱欧美超碰| 日本好吊色视频| 日韩欧美三级| 免费精品无码一级毛片牛牛影视| 囯戸精品高潮呻吟旡码| av凤凰久久久| 中文字幕一区av| 双插在线| 国产精品久久久午夜夜伦鲁鲁| 好涩综合| 欧美极品| hd成人一区二区在线| 99在线免费视频| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 超碰成人公开| 五月天丁香| juliaann丝袜大战黑鬼| 国偷自 一区| 九九九九精品九九九九| 欧美一级特黄淫片在线观看| 9l视频自拍9l九色成人| 黑人与人妻| 欧美劲爆第一页| 国产乱伦亚洲色图高清无码| 99久久久无码国产精品性男| 亚洲欧洲美腿丝袜| 大但人体久久久久| 天天躁日日躁成人字幕aⅴ| 男男H黄动漫啪啪无遮挡网站| 中文字幕黑人大片| 日韩综合97P| 国产91 丝袜在线播放00-百度| 人妻无一区二区三区| 青娱乐日韩无码| 日韩一级二级在线| 高精欧美色| 色综合久久av| 亚洲综合色男人网| 偷偷人人精品女女久久| 国产精品原创巨作?v网站| 亚洲乱熟女一区二区三区大香蕉| 欧美狠狠弄| 精品日日人妻| 精品亚洲黄色片 国产精品导航一区二区 | 亚洲在线a| 美国aaaaa一级黄片| 偷拍 亚洲| 久久精品噜噜噜成人看免欧美大片| 乱伦图一区| 成人精品视频一区二区| 一级AAA片一区二区三区| 三级色综合| 人人澡人人爽人人精品| 亚洲精品不卡一二三区| 欧美性爱91| 99精品丰满人妻无| 99热销国产这里有精品| 自拍偷拍 日韩无码| 久久精品老司| 超碰97丝袜| 五月色网| 亚洲熟女少妇免费视频| 成人a大片在线观看| 亚洲综合另类欧美久久久| 夜夜国自区| 国产高潮AA片免费看| 一本久久精品中文字| 国产家庭乱伦表演| 好看的91视频| 99久久无码| 97亚洲资源| 91狠狠综合久久| 久热免费视频| 豆1无夜无码| 黄片com.| 人澡逼| 久久精品国产亚洲AV片多多| 女人的天堂大香蕉网| 国产精品视频麻豆入口| 久久久穴999| 亚洲性爱成人| 后入人妻一区| 黄色免费网| 蜜臀久久久国产| 6080YYY午夜理论片在线观看| 欧洲中文字幕| 97无码视频在线播放| 图色综合网| 欧美爆乳精品一区二区| 操B久久| 蜜乳av一区二区| 草b在线 | 蜜乳成人AV| av麻豆啪啪| www.yeyecao| 大香蕉之青青草原| 人妻在线视频| 色女免费在线观看视频网址| 亚洲精品一区二区三区在线播放| 久久久久婷婷精品av电影| 偷看洗澡一二三区美女| 欧美激情 一区| 欧美激情内射| 色五月综合| 91丨人妻丨国产丨丝袜| 人人色97| 一级乱伦网站| 蜜臀99999| 青娱乐国产盛宴视频| 激情婷婷丁香网| 女优免费一区二区永久| 啊啊啊啊啊在线| 天天综合欧美综合| 18禁网站在线播放| 五十路熟女工口| JIZZJIZZ国产精品喷水| 99re在线视频| 亚洲欧美精品91| 成年人黄色视频免费| 人妻丝袜肏逼| 丁香五月av| 人人看黄色视频| 亚洲大色鬼| 欧美做爰无码A片视频| 免费看黄片现成| 亚洲熟女偷拍在线观看| 国产麻豆福利av在线播放| 后入人妻无码| yiren97| 国产精品视频麻豆入口| 99久久99九九99九九九| 欧美18禁91| 久久久久亚洲Aⅴ无码| 亚洲日韩电影| 麻豆天美AV传媒第一页| 日本一区二区三区欧美日韩中文字幕 | 2021久久国产综合精品青草 | 无码99| 亚洲 小说 欧美 激情 另类| 日韩丨制服丨中文|在线| 欧美在线官网| 偷拍自拍在线视频观看| 女上位精品在线| 青青草在线成人视频| 午夜福利精品| 亚洲欧美日韩偷拍色图| 四虎在线免费视频| 秋霞午夜视频一区二区| 99自拍视频| WWW啪啪的com| 人妻第一页| 亚州日韩97| 国产伊人自拍| 妺妺跟我一起洗澡没忍住| 丝袜剧情| 一区二区三区免费视频入口| 亚洲蜜臀精品视频久久| 久久成年精品| 伊人影院在线理论播放| 97干在线视频| 国产黄片在线免费观看| 蜜臀久久99精品久久久| 后入福利| 干B| 丝袜狠狠草尤物人妻av91| 操狠狠| 99久久99九九99九九九| 一牛影视成人片免费| 视频一区二区三区精品| 神马麻豆福利院 | 偷窥自拍亚洲色图| 三级片网站在线播放| 在线A日本| 91chinese在线| 欧美不卡二区| 久艾草在线精品视频在线观看| 91免费看一区二区三区 | 综合网色| 操逼日韩无码| 人妻乱仑一区二区三区| 成在线人在线观看视频| 亚洲成人性爱网站在线播放| 亚洲精品自拍| 97久久久| 亚洲另类天堂| 国产自制av蜜乳| 97资源久久| 欧美91变态| 天天射天天操天天干天天吃2018| 久久加勒比| 久久超碰日韩精品| 精品国产乱码久久| 天天日天天干少妇日| 久久久久久久| 91久久久亚洲| a亚洲欧美色欲| 91社区伊人| 亚洲熟女综合网| 亚洲人妻中文在线视频| 亚洲阿v天堂在线| 美女裸体无遮挡永久免费观看网站| 强奸乱伦 亚洲一区| 天天上日日上日韩精品| 玖玖爱在线视频免费观看| 欧美日韩免费性爱| 韩日性爱av| 手机在线人成免费视频| 国产又粗又长又爽又色| 99色视频| 久热伊人99re| 亚洲aw毛茸茸在线| 久久夜精品一区二区三区| 青草视频人妻在线观看| 日本久久999| 久操视频在线| 欧美色图校园春色| 青草成人免费视频一com| 殴美性天天| 黄色大片免费在线| 淫荡少妇免费| 日本天天操| 国产玖玖| 黄色二级片网站| 麻豆国产av网| 大干人妻| 91天堂网| 男人的天堂2018| 大香网站|