亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

JavaCV實(shí)現(xiàn)RTSP流Web播放:轉(zhuǎn)碼推流到HTTP-FLV的完整實(shí)踐

JavaCV實(shí)現(xiàn)RTSP流Web播放:轉(zhuǎn)碼推流到HTTP-FLV的完整實(shí)踐 前陣子接了個(gè)監(jiān)控平臺(tái)的項(xiàng)目需求本身一句話就能講完管理后臺(tái)里要能點(diǎn)開攝像頭實(shí)時(shí)看到車間畫面。攝像頭是現(xiàn)成的???、大華RTSP 地址也能從設(shè)備管理頁面拿到可真正卡住的地方在于——Web 前端怎么把 RTSP 流播放出來。這個(gè)問題我估摸做過安防、物聯(lián)網(wǎng)、線上巡檢的同學(xué)都遇到過。瀏覽器不認(rèn) RTSP 協(xié)議直接把rtsp://admin:xxx192.168.1.64:554/...甩給video標(biāo)簽肯定不通。大多數(shù)人第一反應(yīng)是“用前端插件”或者“讓瀏覽器裝客戶端”但正經(jīng)做項(xiàng)目前端面對(duì)的是一堆不能裝插件的員工電腦和手機(jī)瀏覽器只能在服務(wù)端想辦法。這篇我把 Java 側(cè)接收 RTSP 流、解碼轉(zhuǎn)碼、再推給前端實(shí)時(shí)播放的完整鏈路拆開講一遍包含我從選型、編碼、聯(lián)調(diào)到排坑的實(shí)操記錄適合正在做類似功能的后端、全棧和流媒體入門開發(fā)者參考。1. 從 RTSP 到 Web 播放中間到底少了哪幾環(huán)先別急著寫 Java 代碼得先搞清楚為什么瀏覽器不能直接播 RTSP。RTSPReal Time Streaming Protocol本身是一個(gè)會(huì)話控制協(xié)議負(fù)責(zé)發(fā)起、暫停、結(jié)束流媒體會(huì)話實(shí)際音視頻數(shù)據(jù)靠 RTP 包傳輸另外還有 RTCP 做質(zhì)量控制。這一套組合拳在網(wǎng)絡(luò)攝像頭領(lǐng)域非常成熟但它和 Web 生態(tài)完全是兩個(gè)世界。打個(gè)比方RTSP 像是餐廳里的“點(diǎn)菜流程現(xiàn)炒現(xiàn)送”服務(wù)員問你吃什么、后廚炒完直接端到你面前。這個(gè)過程靈活但需要維持一整條獨(dú)立的溝通通道。瀏覽器里的video標(biāo)簽則更像是“便利店自取”只想通過 HTTP 地址從貨架上拿標(biāo)好格式的商品根本不關(guān)心你后廚怎么運(yùn)作。所以要讓攝像頭畫面進(jìn) Web 頁面服務(wù)端必須充當(dāng)一個(gè)“外賣中轉(zhuǎn)站”把 RTSP 的會(huì)話控制、RTP 傳輸轉(zhuǎn)換為瀏覽器認(rèn)識(shí)的 HTTP 流。除了協(xié)議差異還有編碼層面的問題。絕大多數(shù)網(wǎng)絡(luò)攝像頭輸出 H.264這個(gè)瀏覽器能解但很多新款設(shè)備默認(rèn)或可選輸出 H.265HEVC問題就來了Chrome 長期以來不原生支持 H.265 硬解只在部分系統(tǒng)和硬件環(huán)境下能軟解或通過系統(tǒng)解碼器間接播放Safari 對(duì) H.265 的支持也不統(tǒng)一。也就是說哪怕協(xié)議打通了編碼不合適依然白搭。這里有兩種處理思路一種是不動(dòng)編碼只把 H.264 裸流重新封裝成適合 Web 播放的容器格式這叫“轉(zhuǎn)封裝”transmux另一種是正兒八經(jīng)解碼后再重新編碼成 H.264這叫“轉(zhuǎn)碼”transcode。轉(zhuǎn)封裝性能開銷低但要求源流本來就是 H.264轉(zhuǎn)碼靈活任何 H.265 甚至 H.264 都能統(tǒng)一輸出成 H.264代價(jià)是吃 CPU/GPU。題目標(biāo)題里帶著“解碼”兩個(gè)字我理解就是包含了轉(zhuǎn)碼這個(gè)動(dòng)作后面我也著重講這條路。再有一個(gè)維度是延遲。監(jiān)控場(chǎng)景講究實(shí)時(shí)你對(duì)著畫面喊話或者盯著設(shè)備動(dòng)作延遲 3 秒還能忍延遲 10 秒基本沒法用。常見的分發(fā)協(xié)議里HLS兼容性最好大部分手機(jī)瀏覽器直接支持Safari 也能播但切片機(jī)制決定了延遲普遍在 3-15 秒HTTP-FLV延遲可以控制在 1-3 秒PC 端有 flv.js 這類 MSE 封裝庫支持移動(dòng)端兼容性差一些WebRTC延遲最低能到幾百毫秒但服務(wù)端接入復(fù)雜度高需要另外做信令服務(wù)和媒體協(xié)商。所以“先選傳輸再寫代碼”是最重要的。你要是沒想清楚前端到底跑在 PC 還是手機(jī)、延遲要求多高、并發(fā)幾路上來就寫 JavaCV 拉流后面很可能推倒重來。2. Java 拉流轉(zhuǎn)推的技術(shù)選型別急著寫代碼我見過不少人一拿到需求就直奔代碼用 JavaCV 把 RTSP 流接進(jìn)來然后塞進(jìn) WebSocket 里往瀏覽器推。這個(gè)方案在單路、內(nèi)網(wǎng)、實(shí)驗(yàn)性項(xiàng)目里能跑通但稍微上點(diǎn)規(guī)模就麻煩。選型階段多花半小時(shí)后面能省幾天。先把 Java 生態(tài)里常見的四條路線攤開看方案實(shí)現(xiàn)要點(diǎn)延遲優(yōu)點(diǎn)缺點(diǎn)JavaCV 流媒體服務(wù)器JavaCV 拉流轉(zhuǎn)碼推 RTMP/RTSP 給 SRS 或 MediaMTX前端從服務(wù)器取 HTTP-FLV / HLS / WebRTC1-3 秒分層清晰穩(wěn)定支持并發(fā)擴(kuò)展多部署一個(gè)流媒體服務(wù)JavaCV 自建 HTTP-FLV 輸出自己用 Netty/Tomcat 寫一個(gè)簡易分發(fā)服務(wù)1-3 秒減少外部依賴要處理大量連接細(xì)節(jié)運(yùn)維和排錯(cuò)成本高純 FFmpeg 命令行進(jìn)程Java 里ProcessBuilder調(diào) ffmpeg1-3 秒靈活不用寫 Java 編解碼進(jìn)程管理麻煩回傳狀態(tài)、停止重啟都不優(yōu)雅只上流媒體服務(wù)器SRS/MediaMTX 直接拉攝像頭 RTSP 并分發(fā)1-3 秒部署最簡單脫離了 Java 業(yè)務(wù)邏輯權(quán)限控制、動(dòng)態(tài)管理不方便我自己最終選了第一種也就是 JavaCV 負(fù)責(zé)“接入轉(zhuǎn)碼”SRS或者輕量一點(diǎn)的 MediaMTX負(fù)責(zé)“分發(fā)”。理由很現(xiàn)實(shí)Java 端的強(qiáng)項(xiàng)是業(yè)務(wù)集成、攝像頭上線下線管理、權(quán)限控制、和現(xiàn)有后臺(tái)系統(tǒng)對(duì)接而真正的流分發(fā)比如 HTTP-FLV 的 chunked 響應(yīng)、WebRTC 的 ICE/DTLS 協(xié)商、HLS 切片緩存SRS 這類成熟服務(wù)器已經(jīng)處理得非常好沒有必要自己在 Java 里重造輪子。那么問題來了什么時(shí)候才需要 Java 參與如果只是臨時(shí)看一路畫面你甚至可以不用寫代碼直接命令行跑/usr/local/srs/etc/...那樣的配置就能拉流。但如果你的系統(tǒng)里攝像頭有幾十路、幾百路需要?jiǎng)討B(tài)從數(shù)據(jù)庫讀取攝像頭列表、按用戶權(quán)限點(diǎn)播、隨時(shí)控制開啟和關(guān)閉這時(shí)候 Java 服務(wù)就是必不可少的“管家”。它負(fù)責(zé)按照業(yè)務(wù)規(guī)則拉起和停止一路一路的轉(zhuǎn)推任務(wù)而分發(fā)這件事繼續(xù)交給專業(yè)流服務(wù)器。還有一點(diǎn)我覺得值得提醒JavaCV 的依賴體積很大javacv-platform會(huì)帶入 OpenCV、FFmpeg、OpenBLAS 等一堆平臺(tái)動(dòng)態(tài)庫。如果你的服務(wù)器在內(nèi)網(wǎng)Maven 中央倉庫不一定能順利拉這些大包建議只引入真正需要的模塊dependency groupIdorg.bytedeco/groupId artifactIdjavacv/artifactId version1.5.9/version /dependency dependency groupIdorg.bytedeco/groupId artifactIdffmpeg-platform/artifactId version6.1.1-1.5.9/version /dependency這樣只帶 FFmpeg不拖 OpenCV 那些無關(guān)包部署包能小一大截。版本之間要注意對(duì)應(yīng)關(guān)系javacv和ffmpeg-platform的版本號(hào)后綴經(jīng)常一致比如1.5.9對(duì)應(yīng)6.1.1-1.5.9。3. JavaCV 上場(chǎng)拉流、解碼、再推流的完整鏈路JavaCV 本質(zhì)上是 JavaCPP 對(duì) FFmpeg 的封裝所以你幾乎可以把 FFmpeg 的命令行參數(shù)思維平移到代碼里。下面是我在一路攝像頭從“拉取”到“推送”過程中會(huì)涉及的核心代碼。3.1 拉流端配置參數(shù)比代碼更重要初始化一個(gè)FFmpegFrameGrabber看似簡單真正決定穩(wěn)不穩(wěn)定的是幾個(gè)隱藏參數(shù)。FFmpegFrameGrabber grabber new FFmpegFrameGrabber(rtspUrl); // 用 TCP 而不是 UDP 拉流。UDP 在內(nèi)網(wǎng)偶爾丟包畫面會(huì)花屏TCP 犧牲一點(diǎn)延遲換來穩(wěn)定。 grabber.setOption(rtsp_transport, tcp); // 設(shè)置套接字超時(shí)單位是微秒這里設(shè) 5 秒。攝像頭斷網(wǎng)后拉流線程不至于一直掛死。 grabber.setOption(stimeout, 5000000); // 減少緩沖區(qū)對(duì)實(shí)時(shí)性有幫助。 grabber.setOption(fflags, nobuffer); // 遇到損壞的幀嘗試跳過而不是直接中斷。 grabber.setOption(err_detect, ignore_err); grabber.start();stimeout這個(gè)參數(shù)我強(qiáng)烈建議設(shè)置。攝像頭或者交換機(jī)電一斷如果沒有超時(shí)grabber.start()或grabber.grab()會(huì)阻塞很久你的“重連機(jī)制”就沒法及時(shí)觸發(fā)。別問我怎么知道連續(xù)燒掉幾個(gè)重連線程之后我就把它列成默認(rèn)配置了。3.2 轉(zhuǎn)碼與推流配置盡量向低延遲編碼參數(shù)靠攏接下來是FFmpegFrameRecorder。這一步的目標(biāo)是把攝像頭原始流解碼后重新編碼成 H.264/AAC封裝成 FLV然后推給上游流媒體服務(wù)器。FFmpegFrameRecorder recorder new FFmpegFrameRecorder(pushUrl, width, height, 1); recorder.setFormat(flv); recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264); recorder.setVideoOption(preset, veryfast); recorder.setVideoOption(tune, zerolatency); recorder.setVideoBitrate(2000 * 1000); recorder.setFrameRate(frameRate); recorder.setGopSize((int) frameRate * 2); if (hasAudio) { recorder.setAudioCodec(avcodec.AV_CODEC_ID_AAC); recorder.setAudioBitrate(64 * 1000); recorder.setSampleRate(44100); recorder.setAudioChannels(1); } recorder.start();這里幾個(gè)選項(xiàng)要解釋一下presetveryfast犧牲一點(diǎn)壓縮率換取更快的編碼速度對(duì)實(shí)時(shí)轉(zhuǎn)碼來說比文件體積重要得多tunezerolatency要求編碼器不引入額外延遲會(huì)減少 B 幀的使用對(duì)低延遲很關(guān)鍵setGopSizeGOP 是關(guān)鍵幀間隔。如果設(shè)得太小比如 1 秒一個(gè)關(guān)鍵幀帶寬占用高設(shè)得太大比如 100 幀以上前端起播時(shí)可能要等一個(gè)關(guān)鍵幀黑屏?xí)r間會(huì)變長。我一般取幀率×2也就是 2 秒一個(gè)關(guān)鍵幀平衡起播速度和帶寬。pushUrl如果是推給 SRS/MediaMTX一般長這樣rtmp://127.0.0.1:1935/live/cam_001SRS 默認(rèn)監(jiān)聽 RTMP隨后對(duì)外提供 HTTP-FLV地址就是http://127.0.0.1:8080/live/cam_001.flv這塊前置服務(wù)怎么搭不是 Java 代碼的事我會(huì)放到后面第 5 章結(jié)合部署經(jīng)驗(yàn)一起說。3.3 主循環(huán)別把“拉取”和“錄制”寫死成一步核心的循環(huán)其實(shí)很短Frame frame; long lastTime System.currentTimeMillis(); while (running) { try { frame grabber.grab(); // 同時(shí)拉取視頻幀和音頻幀 if (frame ! null) { recorder.record(frame); } } catch (Exception e) { log.error(拉流/推流異常: {}, e.getMessage()); break; // 跳出循環(huán)交給上層重連邏輯 } }這里有個(gè)容易踩的坑grab()會(huì)同時(shí)返回視頻幀和音頻幀而grabImage()只返回視頻幀。如果你的攝像頭帶音頻又不想保存聲音那就別用帶音軌的參數(shù)初始化recorder否則會(huì)出現(xiàn)“av_interleaved_write_frame(): Invalid data”之類的報(bào)錯(cuò)。最穩(wěn)妥的做法是先用ffprobe看看攝像頭實(shí)際有沒有音頻軌道沒有音頻的設(shè)備就老老實(shí)實(shí)讓recorder保持純視頻模式。grab()返回的Frame本質(zhì)上是解碼后的原始數(shù)據(jù)所以recorder.record(frame)再編碼這就是完整的“解碼轉(zhuǎn)碼”過程。如果源流本身就是 H.264 且你不想折騰硬件編碼也可以走更低層的 AVPacket 接口做轉(zhuǎn)封裝但 JavaCV 里這套 API 比較繞一般項(xiàng)目沒必要。3.4 不要重復(fù)創(chuàng)建 grabber一個(gè)攝像頭一個(gè)任務(wù)線程真實(shí)項(xiàng)目中你會(huì)面對(duì)很多路攝像頭。我見過同學(xué)寫“開啟視頻”的接口每次請(qǐng)求都new FFmpegFrameGrabber().start()然后也不存引用過一會(huì)兒連接數(shù)爆炸。正確做法是給每路攝像頭維護(hù)一個(gè)獨(dú)立的“拉流轉(zhuǎn)推任務(wù)”任務(wù)內(nèi)部管理 grabber 和 recorder 的生命周期并提供停止、重啟兩個(gè)方法。我這里給一個(gè)簡單的任務(wù)骨架public class RtspPushTask implements Runnable { private final String rtspUrl; private final String pushUrl; private volatile boolean running true; public void stop() { running false; } Override public void run() { while (running) { FFmpegFrameGrabber grabber null; FFmpegFrameRecorder recorder null; try { grabber createGrabber(); grabber.start(); recorder createRecorder(pushUrl, grabber); recorder.start(); log.info(轉(zhuǎn)推已啟動(dòng): {} - {}, rtspUrl, pushUrl); Frame frame; while (running (frame grabber.grab()) ! null) { recorder.record(frame); } } catch (Exception e) { log.warn(轉(zhuǎn)推中斷: {}, e.getMessage()); } finally { closeQuietly(recorder); closeQuietly(grabber); } if (running !Thread.currentThread().isInterrupted()) { sleepSeconds(3); // 重連等待 } } } }這樣斷線之后任務(wù)會(huì)自動(dòng)重連不會(huì)讓一個(gè)異常就把整個(gè)服務(wù)拖垮。真正的業(yè)務(wù)層只需要維護(hù)一個(gè)MapString, RtspPushTask用戶點(diǎn)播就start()關(guān)閉就stop()。3.5 如果想脫離 SRS純 Java 輸出 HTTP-FLV 的思路有朋友會(huì)問我不想額外部署流媒體服務(wù)器Java 能不能直接把 FLV 推給前端能但要自己處理很多分發(fā)邊界。思路是FFmpegFrameRecorder支持把 FLV 數(shù)據(jù)寫入一個(gè)自定義OutputStream你的 HTTP 服務(wù)器Netty/Tomcat NIO把這個(gè) OutputStream 接到請(qǐng)求通道上flv.js 請(qǐng)求 URL 時(shí)你先把 FLV 文件頭寫出去然后不斷把編碼后的 FLV tag 寫進(jìn)響應(yīng)體保持連接不關(guān)。聽起來不算復(fù)雜實(shí)際做起來要命的是連接管理瀏覽器刷新要清理舊連接網(wǎng)速慢要背壓并發(fā)一多要控制內(nèi)存。我第一版為了圖省事這么搞過一次后來發(fā)現(xiàn)“能播”和“能穩(wěn)定播”之間差了十萬八千里。如果你不是特別明確知道自己在做什么還是讓 SRS/MediaMTX 去干這事Java 這邊做好拉流和轉(zhuǎn)碼就夠了。4. 前端播放接入flv.js 為主、HLS 兜底的落地姿勢(shì)后端推流鏈路通了前端反而簡單但也有一些細(xì)節(jié)直接影響用戶體驗(yàn)。4.1 flv.js 播放 HTTP-FLV先裝包npm install flv.js然后初始化播放器。這里面的參數(shù)優(yōu)化我實(shí)際調(diào)過很多遍import flvjs from flv.js; if (flvjs.isSupported()) { const videoElement document.getElementById(video); const player flvjs.createPlayer({ type: flv, isLive: true, url: http://your-server:8080/live/cam_001.flv, }, { enableStashBuffer: false, // 關(guān)掉緩存顯著降低延遲 isLive: true, lazyLoad: false, autoCleanupSourceBuffer: true, }); player.attachMediaElement(videoElement); player.load(); player.play().catch(console.error); }enableStashBuffer: false是低延遲的關(guān)鍵。默認(rèn)情況下 flv.js 會(huì)緩沖一部分?jǐn)?shù)據(jù)網(wǎng)絡(luò)波動(dòng)時(shí)不那么容易卡但實(shí)時(shí)性會(huì)變差。如果是監(jiān)控類應(yīng)用我會(huì)選擇關(guān)閉讓畫面盡量貼近實(shí)時(shí)如果是直播帶貨那種要極穩(wěn)的反而建議保留緩沖。在 Vue 3 里接入時(shí)要注意播放器實(shí)例的生命周期script setup import flvjs from flv.js; let player null; function playStream(url) { if (player) { player.destroy(); } if (!flvjs.isSupported()) { alert(當(dāng)前瀏覽器不支持 flv.js); return; } player flvjs.createPlayer({ type: flv, isLive: true, url }, { enableStashBuffer: false }); player.attachMediaElement(videoRef.value); player.load(); player.play(); } onBeforeUnmount(() { player player.destroy(); }); /script4.2 移動(dòng)端 H5 的兜底HLSflv.js 的兼容性在 Chrome、Edge、Firefox 上都很穩(wěn)唯獨(dú) iOS Safari 和部分 Android 廠商瀏覽器沒法用 MSE 處理 HTTP-FLV。遇到跨平臺(tái)需求我常規(guī)做法是后端同時(shí)讓 SRS 開啟 HLS 輸出前端用 hls.js 或者原生 HLS 播放。HLS 在 SRS 里幾乎不需要額外配置生成的是這樣的地址http://your-server:8080/live/cam_001.m3u8前端判斷邏輯可以簡單一點(diǎn)PC 上用 flv.js移動(dòng)端優(yōu)先走原生video標(biāo)簽的 HLS 播放能力。Safari 直接支持 HLSAndroid 上用 hls.js 兜底。function createPlayer(url) { const isIOS /iPhone|iPad|Mac/.test(navigator.platform) || (navigator.userAgent.includes(Mac) ontouchend in document); if (isIOS) { const video document.getElementById(video); video.src url.replace(.flv, .m3u8); video.play(); return; } // 否則 flv.js }4.3 必須說的 WebRTC 選項(xiàng)如果你的項(xiàng)目對(duì)延遲要求更高比如遠(yuǎn)程控制、在線對(duì)講HTTP-FLV 1-3 秒仍然不夠那就要考慮 WebRTC。SRS 4.0 以上已經(jīng)支持 WebRTC 分發(fā)可以直接拉 RTSP 轉(zhuǎn) WebRTC前端通過RTCPeerConnection拿流。但 WebRTC 的坑在于信令服務(wù)和客戶端的 ICE 配置不是一段代碼能跑起來的這里不展開。我只建議把 WebRTC 當(dāng)作延遲敏感型功能的進(jìn)階方案能不用就不用畢竟項(xiàng)目交付的穩(wěn)定性優(yōu)先級(jí)大于極致延遲。5. 真實(shí)項(xiàng)目里更值錢的部分兼容性、重連與性能調(diào)優(yōu)代碼能跑起來只是起點(diǎn)。下面這幾類問題是我在每個(gè)攝像頭流項(xiàng)目里幾乎都會(huì)遇到的提前寫在這能少走點(diǎn)彎路。5.1 先驗(yàn)證 RTSP 地址再用 ffprobe 摸清設(shè)備底細(xì)很多同事拿到的“RTSP 地址”是廠商或者施工人員隨手給的格式五花八門。??党R姷母袷绞莚tsp://admin:password192.168.1.64:554/Streaming/Channels/101大華類似的格式是rtsp://admin:password192.168.1.64:554/cam/realmonitor?channel1subtype0其中/Streaming/Channels/101里的101通常是主碼流102是子碼流。大華subtype0也是主碼流subtype1是子碼流。地址不對(duì)后面所有操作都是白費(fèi)所以第一步建議先在服務(wù)器上用 ffprobe 驗(yàn)證ffprobe -rtsp_transport tcp -i rtsp://admin:password192.168.1.64:554/Streaming/Channels/101ffprobe 會(huì)打印出流的編碼、分辨率、音頻參數(shù)。知道了這些你才知道該讓 JavaCV 按什么寬度高度去初始化 recorder。另外注意密碼里如果包含、:、/這些特殊字符一定要做 URL 編碼否則 RTSP 解析器會(huì)斷錯(cuò)位置導(dǎo)致認(rèn)證失敗。5.2 主碼流還是子碼流性能與畫質(zhì)的平衡攝像頭通常有兩路碼流主碼流分辨率高、碼率高適合事后查證子碼流分辨率低、碼率低適合實(shí)時(shí)預(yù)覽。做實(shí)時(shí)播放時(shí)如果設(shè)備數(shù)量不多、服務(wù)器 CPU 充足可以直接取主碼流如果一路 4K 都要在服務(wù)端解碼再轉(zhuǎn) H.264CPU 壓力會(huì)很大我遇到的實(shí)際場(chǎng)景里4K 轉(zhuǎn)碼單路就要吃掉不少 CPU 核。處理辦法很簡單實(shí)時(shí)預(yù)覽默認(rèn)用子碼流關(guān)鍵畫面“回放原始錄像”時(shí)再切主碼流。這在業(yè)務(wù)設(shè)計(jì)上要前置而不是等性能報(bào)警了再改。編碼格式上盡量在攝像頭后臺(tái)把編碼格式設(shè)為 H.264。如果設(shè)備強(qiáng)制輸出 H.265而前端又要 H.264JavaCV 轉(zhuǎn)碼是兜得住但那就是純 CPU 轉(zhuǎn)碼成本很高。有 NVIDIA 顯卡的服務(wù)器可以試試把編碼器切到硬件recorder.setVideoCodecName(h264_nvenc); recorder.setVideoOption(preset, p1);注意setVideoCodecName和setVideoCodec是兩種設(shè)置方式不要混用。硬件編碼能大幅降低 CPU 占用但部署機(jī)器必須帶對(duì)應(yīng)顯卡云服務(wù)器一般要選 GPU 實(shí)例成本自己權(quán)衡。5.3 斷線重連核心循環(huán)的異常處理攝像頭設(shè)備不像應(yīng)用服務(wù)器那么穩(wěn)定斷電、重啟、網(wǎng)絡(luò)波動(dòng)都很常見。如果轉(zhuǎn)推任務(wù)斷開后不重連前端畫面就是一把黑屏用戶只能刷新。前面給的任務(wù)骨架里有一個(gè)while (running)外層循環(huán)配合Thread.sleep(3000)就是斷線重連的基本實(shí)現(xiàn)。另外要小心一種情況攝像頭重啟后分辨率、幀率可能發(fā)生變化舊recorder還在用原來的寬高FFmpeg 會(huì)報(bào)Width or height change之類的錯(cuò)誤。遇到這種情況常規(guī)做法是捕獲異常后把舊的 recorder 關(guān)掉重新從 grabber 讀取新的寬高再創(chuàng)建 recorder。我在代碼里推薦的做法是每次異常退回到外層重連邏輯而不是在循環(huán)里嘗試“修復(fù)”這樣狀態(tài)管理最簡單。5.4 首屏黑屏和延遲調(diào)優(yōu)一個(gè)容易被忽略的源頭首屏打開慢經(jīng)常不是網(wǎng)絡(luò)問題而是 GOP 問題。攝像頭端的關(guān)鍵幀間隔GOP如果設(shè)置是 4 秒那新播放器接入時(shí)必須等到下一個(gè)關(guān)鍵幀才開始有畫面平均黑屏 2 秒。這個(gè)問題有兩個(gè)解法調(diào)小攝像頭的 I 幀間隔比如 2 秒一次在流媒體服務(wù)器上開啟 GOP 緩存。SRS 里 HTTP-FLV 域默認(rèn)會(huì)緩存最近一個(gè) GOP新用戶接入時(shí)直接用緩存的關(guān)鍵幀起播黑屏?xí)r間能降到幾百毫秒。代價(jià)是多占一點(diǎn)內(nèi)存但監(jiān)控場(chǎng)景這點(diǎn)開銷非常值。延遲問題則要前后端配合。前端關(guān)掉 flv.js 的 stash 緩沖后端編碼時(shí)用zerolatency參數(shù)如果中間還經(jīng)過了 SRSSRS 的mrmerged-reduce算法默認(rèn)開啟一般不需要額外動(dòng)。我在多路攝像頭、全鏈路 HTTP-FLV、局域網(wǎng)環(huán)境下實(shí)測(cè)延遲普遍能穩(wěn)定在 1 秒以內(nèi)公網(wǎng)環(huán)境會(huì)到 1-2 秒已經(jīng)足夠大多數(shù)業(yè)務(wù)使用。5.5 部署形態(tài)Java 和流媒體服務(wù)器怎么擺都行但邊界要清晰最后一句話給個(gè)實(shí)在建議別把 Java 服務(wù)里塞滿流媒體分發(fā)邏輯。我的部署習(xí)慣是一臺(tái)服務(wù)器上同時(shí)跑 Java 服務(wù)和 SRSDocker 起Java 只負(fù)責(zé)拉流、轉(zhuǎn)碼、推 RTMP 給 SRSSRS 對(duì)外提供 HTTP-FLV/HLS。這樣排查問題時(shí)有非常清晰的邊界前端放不出畫面先試 SRS 的 HTTP-FLV 地址能不能直接播放能播說明問題在前端不能播就看 SRS 日志再不行看 Java 日志五秒鐘就能定位問題出在哪一段。我自己也是踩過幾次坑才堅(jiān)定這個(gè)分層思路的。第一次做類似系統(tǒng)圖省事把 HTTP-FLV 直接寫在 Java 里結(jié)果同時(shí)在線十幾路時(shí)頻繁出現(xiàn)連接掛起和內(nèi)存上漲天天被運(yùn)維催著看堆棧。后來換成 SRS 做分發(fā)Java 端代碼反而更簡單了穩(wěn)定性還明顯提升。所以說選型階段不用迷信“All in Java”該交給專業(yè)組件的就交出去Java 把業(yè)務(wù)邏輯這塊做好做扎實(shí)這個(gè)項(xiàng)目基本就成了一半。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩欧美中文| 九九操久久国产免费视频| 操逼无毒无码免费视频| 高精欧美色| 国产特级毛片AAAAAA高潮流水| 男人天堂久久精品| 欧美激情内射| 九九碰九九爱97超碰| 99久久com免费视频′| 色香伊人| 强奸乱伦麻豆| 久久日本熟女精品一区| www.大香| 日本最新1区2区3区| 97资源视频| 99re3这里只有精品| 国产人妻久久精品一区二区三区| 国产小u女在线观看| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 国产精品视频自拍在线| 丁香五月性| 啊啊啊久久久视频| 亚洲精品a人片在线观看视| 久久鲁夜| 国产性爱乱伦AV| 97精品视频网站| 自拍偷拍草一草| 久久98| 欧美另类天堂| www久久久| 亚洲日韩美女丝袜美腿人妻视频| 影音综合网| 亚洲天天综合| 曰本91情色| 操我无码| 韩日欧亚a级| 91九色网| 国产97在线视频| 人妻天天操天天爽视频免费| 精品久久无码午夜福利| 麻豆精品天美| 亚洲综合色婷婷| 青青在线视频免费| 二对二中文字幕。| 亚欧成人中文字幕一区| 东京热伊久| 水澄无码AV| 97天天| 久久99国产综合精品女同| 91狠狠综| 天天操人人操骚逼网站| 啪啪综合网| 97干在线| 色偷偷综合91久久噜噜| 欧美日韩人人精品| 日本国产高清色www视频在线| 青青青草原| 日日夜夜天天| 1区2区3区视频| 久久香蕉国产传媒一区剧情天美| 亚洲av综合伊人久久| 97天天弄| 欧美亚洲综合色| 精品人妻视频入口| 久久的免费性爱视频| 色偷偷色偷偷欧美日韩| 操逼操操操91| 黄色香蕉视频网站一区| 亚洲欧美首页| 91草草草| 天天肏夜夜肏| 亚洲天堂一区二区久久| 国产深喉视频一区二区| 十八禁电影伊人网| 青青草吊丝| 久久久久九九九| 91色插| 亚洲日韩少妇一道本视频| 亚洲日本韩国在线| 熟妇的味道HD中文字幕| 久久精品国产Aⅴ| 久久视频少妇美女| 亚洲91网站| 狠狠激情综合狠狠操中文字幕| 97超碰欧美精品| 日本免费不卡二区| 亚洲精品一区中文字幕乱码| 亚洲婷婷五月天| 天堂无码精品国产久| 色欲av国内精品久久久久久| 久久久禁| 欧美韩国你懂得在线 | 东京热精品97综合网| 国产激情综合| 嫩草一区二区在线观看| 国产精品不卡高清在线观看| 校园春色亚洲| 97se亚洲| 久久精品人妻一区二区三区| 欧美在线大香蕉| 欧美日韩国产传媒在线精品| 色五月婷婷五月天| 日本午夜久久电影| 黄片在线免费在线观看| 1769一区| J?P?NESEHD熟女熟妇伦| 免费岛国一级片| 91精品久久久久久久久久| 欧美97日韩| 日日夜夜国产综合| 亚洲天天影视综合网| 亚洲综合小视频小说在线观看 | 无码一区免费在线不卡| 欧美91变态| 91无遮挡| 日本操逼视频免费| 国产精品视频91久久| 女人18精品一区二区三区| 男生女生啊啊啊啊| 天天操天天日青青草超碰av| 日本999精品| 综合97亚洲| 好吊妞转入那个网| 欧美亚涩| 91伊人大香蕉| 97久久国产亚洲精品超碰热| 久操| 97超碰9| 国产色图乱伦| 天啪| 在线小说视频一区| 91久久久久免| 欧美91网站| 午夜亚洲国产理论秋霞| 97 国产精品| 国产1769在线| 91美女在线| 女人一区| 中文字幕成人| 97爱综合| 人妻熟妇一区二区三区| av天堂影视中文在字幕在线中文| 九九九久千久久激情蜜桃在线看 | 欧美美逼| 美女露胸露尿口| 激情综合网激情综合| 一区二区偷拍拍视频| 一区二区中文| 久久成人午夜狠狠| 九九久久国产精品| 任你爽视频| 天天射天天操天天干天天吃2018 | 美女裸体无遮挡永久免费观看网站| 久久免费老司机精品| 搡老女人911熟妇老熟女| 丝袜美腿校园春色| 好吊妞转入那个网| 操操吧亚洲乱伦视频| 久久超碰大香蕉| 国产九九九九九九九九| 欧美色图片| 亚洲男人的天堂V| 婷婷丁香九月| 久久久久久久唑| 欧美在线伊人色| AV免费在线播放一区| 黄站在线免费观看| 日韩av熟女一区二区三区成人| 欧美一区二区三区另类精品| 亚洲精品蜜桃久久久| 欧美成人9797| 欧美丝袜制服久久| 久9无限国产| 天天弄欧美| 欧美三级中文字幕hd| 东京男人天堂| 亚洲视频,小说| 99热精品在线| 啪啪综合网| 国模私拍一区二区三区神乳| 欧美色图亚洲色| 青青草啪啪网| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 日本岛国黄色网址| 在线免费观看高清无码视频| 亚洲亚洲亚洲天堂天堂 | 欧美亚州综合图片| 国产大片精久久久久久| 久久99久久99久久99人受| 干干干天天| 天天综合~91| 少妇贴图| 色哟哟 日韩精品| 久久9免费视频| 精品一二三区四视频| 狼人久草| 婷婷亚洲五月***久久| 亚洲精品乱码线路中文字幕| 国内毛片欧美香蕉精品| 亚洲Av诱惑| 人人摸人人舔一区二区| 久久亚洲日韩熟女精品| 欧美 亚洲 综合 制服 另类| 亚洲精品骚逼| 色综合99999| 亚洲射综合网| 蜜桃不卡一区二区| 美女骚尻视频| 天美传媒av一区二区| 中 文字幕一区二区三四 五 区日 日 骚| 性吧在线视频| 激情五月综合| 狠狠色丁香| av天堂5| 国产综合网站在线播放| HEYZO高无码国产精品227| 欧美乱伦专区| 欧美激情性爱视频网站| 人人看人人插| 日韩国产欧美伦理在线| 天天色黄色影院天天操| 黄色片大香蕉| 九月丁香| 久久內射| 久久久91福利姬| 精品人妻伦一区二区三区久久| 色老牛| 无码视频一区二区| 色网亚洲人| 日韩欧美中文字亚洲慕| 色网亚洲人| 视频二区美腿制服人妻欧美| 亚洲国产精品无码AV久久| 日韩综合色图| 国产精品久久久久久久久久梁医生| 97色碰| 亚洲无码精品AV久久久| 亚洲国产奇米影视久久| 欧美熟女操屄| 91狠狠综合久久久| 91精品婷婷国产综合久久| 国产后入清纯| 少妇无码999| 日语五十路和六十路亚洲国产精品| 97在线观看| 亚洲AV成人无码一二三久久 | 麻豆蜜桃视频在线观看| 蜜桃视频精品一区二区三区| 长久操视频| 色偷偷超碰亚洲| 狠狠爱夜夜| 人人操人人摸人人骑| 国产午夜在线观看视频| 亚洲欧美中文日韩视频中国语| 激情五月综合网| 日本不卡卡一区| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 五月综合色| 国产suv精品一区二区四区999| 国产高清不卡视频| 97久久久久久久久久| w w w.久久精品| 国产三级中文有码在线视频| 亚洲精品 大香蕉| av亚洲天堂资源网站| 亚洲综合 欧美| 色吧 综合| 欧美精品成人在线播放| 日韩精品亚洲专区在线影视| 亚洲精品天天影视综合网| 人妻喷水| 思思热久久成人| 天天爽人人综合免费7799| 亚洲丝袜B诱惑| 久久9免费视频| 中文字幕五月婷婷免费| 第45页一区二区| 中文字幕色AV| 久久久久久国产无码精品| 区日韩亚洲乱码av电影| 九九九九九九九| 人妻一区二区三区四区视频| 亚洲少妇中文字幕网址| 任我爽在线视频免费观看| 久久久久九九九| 无遮挡猛进视频免费无限观看| 物尤视频一区二区| 欧美性暴力| 91精品丝袜在线观看| 91jk色拍| 啊啊啊好舒服视频| 超碰资源亚洲97| 亚洲图片 欧美电影| 人干人人人操人人摸| 日本天堂网| 亚洲图片另类| 亚洲国产一区二区三区在线| 亚洲 欧美 第一页 | 熟妇亚洲一区二区三区| 久久人| 国产 码在线成人网站| 国产免费一区| 啪一啪免费视频| 热热热热日日漂亮永久永久国产日| 综合亚洲欧美| 国产女上位好爽在线| 久久久555| 五月香婷婷| 人妻人久久精品中文字幕| 国产一区在线观看无码AV| 中文字幕丝袜美腿| A级在线视频| 四虎免费看黄| 国产性爱乱伦AV| 高清肉丝中文无码| 激情国产乱伦Av| 99蜜桃臀久久久欧美精品网站| 一区操逼| 夜夜操一区二区| 99久久精品无码一区二区| 久插综合| 秋霞视频一区二区| 国产91 丝袜在线播放00-百度| 91狠狠综合久久久| 欧美成人免费在线观看| 亚州综合色图| 色情五月综合婷婷| 欧美日韩妖精91com| 国产一区二区三区中文字幕| 三上悠亚在线毛片91| 国产伦精品免编号公布| 福利伊人玖玖国产| 青青草国产欧美非洲黑人| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 日韩精品三级片长长久久| 欧美人妻精品一区二区| 色亚洲欧美| 老女人爆菊| 老熟女乱伦一区| 天天操天天7| 狠狠久久亚洲欧美专区| 欧美日韩*字幕一区| 国产中文日韩欧美一区二区三区人妻丝袜美腿| 亚洲精品aa久久伊人| 精品人妻av区天天看片| 国产肏屁眼视频| 亚欧韩av| 欧美A片中文字幕| 九九九成人| 色色婷| 操逼逼中文字幕| 国产精品乱码久久| 91视频综合在线| 成人资源中文字幕在线观看天天| 狼狼色丁香久久婷婷综合五月| 啊啊啊啊啊啊啊在线| 国产福利视频精品视频| 青草地一本线一区二区三区| 最新精品久久蜜桃| 无码99| 成人免费福利网站国产| 国产亚洲性生活视频播放| 久久久久久人体| 亚洲AV无码久久精品蜜桃小说| 色色色欧美| 国产91啪| 色色色欧美| 极品色综合| 亚洲中文字幕久久无码精品| 老鸭窝黄色视频网站| 亚欧精品久久久久久久久久久| 黄色在线网站| 国产黄片在线免费观看| 国产肏逼网站| 欧美一区二区三区蜜桃| 欧美不卡在线一区二区| 日日超碰亚洲| 狠狠入| 91插B网站| 色香伊人| 中文字幕十五区| 999久久久九| 91操人| 婷婷丁香五月激情啪啪| 操逼逼无码| 中国国国产一级特黄毛片| 激情抓乳插进去啪啪啪日韩 | 欧美操人视频| 亚洲 欧美 精品专区 极品| 日韩欧视频| 偷拍亚洲情色| 色妇综合网| 伊香蕉综合久久久久久久噜噜噜| 东北女人性交| 久久久偷拍| 特污精品女优骚货黄色视频在线免费观看| yazhououmeizongya| 日韩BBN| 欧美色网络| 97国产超碰| 中欧人妻丝袜中文字幕| 无码一区免费在线不卡| 成年人黄色视频免费| 韩国三级一线观看久| 日韩免费在线视频观看| 久久久免费的精品| 大香蕉久操| 九九av| 艹我哪美一区无码| 国产白嫩精品久久| 久草精品视频| 91欧美色| 日韩欧美性吧婷婷乱伦大香蕉 | A片 AV一级在线播放观看免费| 十八禁成人网站在线观看| 高清无码国产亚洲| 人妻AV在线| 婷婷亚洲中文字幕在线| 香港成人一级视频在线青青草| 超碰99热中文字幕| 久久久婷| 蜜臀va69| 精品中文字幕第一页| 国产又大又硬又长又粗| 亚洲成人免费在线| 久久偷拍人| 国产精品夜夜夜| 天堂成人网| 黄色AAAAA欧美| 女人高潮大叫一级毛片| 色狠狠综合噜一二三区| 99www.bibizy香蕉资源国产一区二区三区高清 | 黑人精品XXX一区一二区| 色黄色美女大长腿午夜视频| 婷婷五月天福利| 欧美丝袜激情| 精产品久久| 国产在线能看的你懂的| 欧美黄片视频在线观看免费| 国产AV天美| 国产一二三在线视频五十路| 在线综合 亚洲 欧美中文字幕| 亚洲高清无码在线桃色| 一区二区 韩日AV| 青娱乐手机日韩在线视频| 国产精品伦理| 全球成人中文在线| 骚女高跟AV在线| 国内伊人久久久久久网站视频| 蜜乳Av成人片网站| 精品一区96| 欧美,日韩,中文,另类| 四虎精品一区二区| 五月激情小说| 99精品在线| 亚洲一曲日韩精品| 丰满少妇人妻久久久久久| 208天天久久九九九| 人妻9117c| 干B视频伊人网| 人妻丝袜一区二区三区在线| 日韩一区二区三区四区五区| 日韩激情视频| A级片日韩欧美国产欧美视频精选观看| 97任你吞精| 欲香欲色天天天综合和网| 又大又大又大又粗爽高潮观看 | 久久久久亚洲Aⅴ无码| 欧美大码在线视频| 一二三区精品视频| 国产激情综合五月久久| 国产亚热在线久久| 亚洲精品无码少妇久久| 操曰本熟女| 午夜精品久久久久久久久久蜜桃| 中文字幕乱码在线观看| 玖玖婷婷五月天| 青青青草伊人精品| 人人操人人摸人| 免费亚洲国产精品久久一区| 大香焦A片| 78p欧美| 岛国激情视频在线观看| 久草午夜| 国精综合一二三区影视| 操操逼视频| 亚州精品丝袜-不卡成人免费| 好色综合| 殴洲老熟女| 日韩卡一卡二卡三在线| 天天碰久久入| 99久久这里只有精品| www亚洲欧美| 久久黄黄| 激情小说图片亚洲首页| 美女干逼2| 亚洲欧美中文一区二区三| 国产情色第一第二页在线观看| 亚洲春色欧美激情自拍| 操亚州| 秋霞免费AV| 亚洲日韩美女丝袜美腿人妻视频| 97超碰色五月| 操逼天美3区| 91亚洲狠狠色| 无码9区| 97chaopengongkai| www.男人天堂| 五月色网| 三男一女不戴套的A片| 影音先锋一区二区在线资源| 国产精品不卡一区二区三区| 91九久| 青青操网| 97人人色| 国产性感在线观看| 日韩中文字幕在线视频观看| 五月天九九日国产精品一区二区三区| 国产a级午夜毛片| 婷婷爽人人婷婷爽视频| 人妻在线中出视频| 五月丁香社区婷婷日韩欧美精品影院| 九热久| 热热热热日日漂亮永久永久国产日| 久久久久久AⅤ无码免费肉站 | 看日韩操逼| 白丝av| 在线视频资源| 久偷拍| 97色五月天完| 久99热| 做爱A级亚欧| 九九九色| 97在线免费看视频| 91在线一起| 在线天堂999| av天堂影视中文在字幕在线中文 | 天堂九九九九九九九九九| 欧美成人黄网色网站| 熟妇xxxxx性春色| 国产成人在线观看网址| 日韩精品一区二区人人人| 国产精品在线一区二区| 天天综合网AV91| 99热精品国产| 男人干美女| 精品久久久久黄少妇| 91女神在线视频| 91AV老熟女视频| 国产色图乱伦| A 天堂| 国产福利视频精品视频| 午夜国产乱伦视频| 一区二区三区高清天码| 影音先锋少妇| 日本精品成人无码| 日韩人妻资源网| 91色碰| 精精夜夜| 99操| 91中文字幕制服丝袜免费视频| 天堂亚洲精品| 操操操五月天婷婷丁香影院| 国产极品精品美女视频| 欧美亚洲另类在线蜜桃| 五月天婷婷激情| 夜夜高潮夜夜爽| 91劲爆| 91少妇人妻| 影音先锋每日最新资源在线观看 | 在线 亚洲 网爆 自拍| 久久99999| 夜夜免费视频| 男人天堂网址| 日本人妻A片成人免费看片| 久久极品伊人| 91操人| 久久久性| 日韩乱插| 欧美熟妇亚洲版| 一区二区乱码福利| 一区二区娱乐网站| 亚洲在高跟鞋自慰久久在色线| 青娱乐黄色录像| 成人日韩3| 美女人妻色网站| 久久精品成人| 亚洲成a人在线观看久| 国产亚洲日韩欧| 色欲无码人妻日韩欧美精品| 人人操天天爽| 日韩一级二级三级| www色色色com| 992视频一区| 亚洲AV无码国产精品久久久久| 91在线免费观看处女| 婷婷激情四射| 色色色综合网| 99久草| 香蕉在线一区二区三区| 九九九九精| 亚洲天堂中文字幕无码男同| 午夜爽爽爽| 成人资源中文字幕在线观看天天| 日天天九九天堂666| 国产中文字幕曰本毛片| 亚洲人妻久久久| 国产激情综合五月久久| 九热久| 中出91| 九九色色| 火箭成精品视频884必出精品| 国产特级毛片AAAAAA高潮流水| 69人妻人人揉人人躁人人精品| 丰满人妻-区二区三区免费看 | A级毛片在线看免费| 男人亚洲91首页在线| 久久一二三四| 亚州乱码中文字幕综合久久久| 婷婷在线视频在线观看| 天天操天天日天天干| 无码聚合| 色婷婷国产精品一区在线观看| 97综合在线观看| 欧美伊人久久综合网| 国产精品天干天干综合网麻豆 | 久久亚洲不卡| 久久精品国产99精品亚洲蜜...| 色天堂综合| 91日产桃蜜| 国产性刺激| 日韩成人性爱AV| 91综合网在线| 久久久久久久久久久久欧美日| 性爱av在线免费观看| 成年人黄色| 色综九九九一区| 夜夜操夜夜爽夜夜高潮| 另类专区在线观看| 蜜乳av一区二区| 日本精品999| 亚洲少妇免费视频\| 操人妻少妇中文| 日本国产欧美高清在线| 囯戸精品高潮呻吟旡码| 老熟乱一区二区三区四区| 91成人国产综合久久精品蜜月| 人人考人人摸人人干| 一级AV性爱| 97免费视频在线观看| 久久风骚城市| 人妻夜爽夜夜爽| 人妻丝袜肏逼| 日韩大香蕉精品在线视频| 欧美综合色站| 人人妻人人操人人乐| 秋霞欧美性爰视频| 婷婷午夜成人色中色| 久艹伊人精品综合在线| 96AV精品| 能看的AV| 精品免费一区二区三区在线亚洲人成| 免费啪啪av| 欧美日韩激情无码专区| 2017人人操,人人摸| 国产精品久久久久无码A√| 国产探花日韩援交| a天堂视频| 成人电影一区| 韩国轻伦国内自拍一区| 看黑丝美女操逼青青网站| 天天日天天射天天干| 大香蕉综合久久| 久操免费电影| 欧美组图日韩亚洲中文字幕| 91午夜无码| 日本色婷婷| 人人摸人人干| 亚州高清色综合| 粉嫩AV一区夜夜嗨| 国产精品一区二区三区免费视频| 校园春色五月天| 精品久久久高清无码| 久久婷婷一区| 亚洲婷婷综合网| 国产精品免费美女视频| 丝袜熟女2P| 熟妇高潮二区三区| 久久久96| 亚洲色久| 精品欧美日韩在线观看| 综合亚洲欧美精品日韩?v| 国产亚州精品美女久久久免费| 欧美大码在线视频| 18精品一二区| a级理论午夜日本| 绑缚麻绳人妻寝取完整版| 亚洲无线观看久久| 欧美日韩国产在线| daxiangjiao你懂的| 日本十八禁免费看污网站| 啊啊啊啊啊啊在线看| 日韩无码第3页| 久草福利在线资源站| 蜜臀久久在线视频| 国产美女口爆吞精视频| 欧美福利视频啊啊啊啊| 国产日韩欧美三级片| 欧美性Fer办公室秘书| 国内亚洲精彩视频在线| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV| 91精品国产一区三一| 久久久无码国精品无码三区三区| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 97国产超碰| 欧美传媒一区| 久久美女国产| 色牛牛AV| 日韩少妇无码| 青青草亚洲一区| 综合国产影视三级| 色一射色一射| japan日本高清乱xxxx| 另类专区加勒比| 国产av白丝| 国产一区自拍欧美日韩| 美女网站黄页| 青娱乐亚洲热| 最近2019中文字幕国语免费版| 91社区拍啪人妻| 精品中文一区二区| 一品道视频一区二区三区| 人妻色偷色噜| 人妻少妇无码| 性爱综合网| 亚洲综合第一页| 亚洲国内精品成人不卡| 精品四五区| 曰韩av中文字幕专区| 国产狂喷潮在线精品| 亚州Av天美传媒| 午夜福利久久久噜久噜久久综合| 精品一区二区人妖| 强被迫伦姧在线观看无码网站| 日韩BBN| 无码91| 欧美天天插| 日本一区二区成人在线| 国产久久成人| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 久久爽爽精品| 性感女人网页在线观看视频| 99热久| 亚洲色啪| 五月天色五月| 丁香五月色情| 久久久久成人蜜桃精品| 婷婷五月av| 韩国一级婬片A片AAAAA| 中文字幕aⅴ在线视频| 欧美一级黄片视频在线| 中文字幕AV乱伦| 中文字幕一区二区免费在线| 91人妻人人澡人人爽人人精品| 一区在线精品中文字幕| 97超碰超欧美。| 国产av色网| 亚洲情色 无码专区| 超碰导航97| 国产精品片| 影音先锋每日最新资源在线观看| 午夜精品久久久久久久久久蜜桃| 婷婷午夜成人色中色| 17c在线成人免费A片观看| 变态综合色| 亚洲激情欧美色图| 亚洲国产97| 久操91视频| 日韩人妻播放| 国产精品电影| 亚洲AV无码久久精品蜜桃小说| 九九热精彩视频| 伊人青青草久久| 九九九久久久W精品| 91福利网在线观看| 91三级理论片播放器| 91oumei| 欧美天堂亚洲电影院一区在线播放| 一本大道青青| 91精品久久久| 性爱视频久久| 国偷自 一区| 翔田千里无码一区| 婷婷久草一区二区三区| 久久亚码| 国产日韩在线播放av| 婷婷五月天激情网| 白嫩妹子国产骚| 免费自拍三级综合| 艳美熟妇先锋一二三区| 久久久久久人| 97一区二压| 日本加勒比无码专区| 韩国一级AAA| 少妇500双飞99| 视频一区二区免费在线| 日日干夜夜干| 欧美丝袜中文字幕07在线| 欧美亚洲尤物久久| 欧美中字二区| 新久久AV| 性九九九九九九| 人妻系列无码专区中文有码| 欧美人妻中出| 一区二区三区免费岛国片| 乱码人妻一区二区三区| 久久精品国产99精品亚洲蜜...| 96AV久久久| 中国农村熟妇毛片视频| 欧美亚洲日韩16色| 日本操大逼| 强乱老妇中文字幕| 亚洲色五月| 蜜臀一区二区三区在线| 在线视频一区二区传媒| 国产精品 久久久精品一牛| 美日韩在线不卡人妻| 熟女五十路一区二区三| 国产精品69久久久久久久 | 久久精品国产97欧美精品亚洲 | 久久久久久九九九九| 五月丁香亭亭| 久久精品老司| 久久久无码av精| 夜夜肏2021| 青青操网| 日韩欧美丝袜诱惑| 日本精品不卡一二三区| 中文字幕乱码在线观看| 欧美大片一区二区三区| 婷婷五月成人| 东京热男人的天堂精品| 97亚洲在线| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 嫩草 人人网精品| 欧美啪啪女女| 能在线播放的国产三级| 超清中文乱码字幕| 久久久久久久久9| 91强在线播放| 在线观看十八禁| 综合色啪| 激情久久av一区av二区av| 天天夜躁日日躁狠狠2002| 大香蕉琪琪日本女优不卡| 欧美熟妇视频| 偷拍伦理视频| 骚逼高潮久久精品| 久久婷婷伊人| 久久98| 亚洲日本韩国在线| 国产剧情AV不卡在线观看| 国产精品久久天天干| 日韩三级在线观看网站| 91高潮| 激情小说日韩无码| 大香蕉乱级| 三级AV入口| 亚洲囯产精品女人久久久| 囯产精品久久久久久久久久梁医生| 熟女少妇视频| AV天堂因数| 少妇久久久久久| 久久岛国| 99婷婷一区二区| a男人的天堂久久一级A毛片| 78m成人视线| 17c嫩草51久久91嫩草| 欧美日韩1234| 日韩无码a片| 久久香蕉国产线看观看猫咪av| 午夜精品视频777| 国产欧美伊人| 日本曲间由美性生活片| 亚洲瓯美色图| 国产91 丝袜在线播放 | 97欧美综合| 大香蕉乱级| 国产乱伦一二三区| 国产性感骚丝袜在线| 我中文字幕6区| 久久啊啊啊| 亚乱色| 91网亚洲| 日骚逼视频| 97国产高清视频在线观看| aaaa少妇高潮大片| 国产自产91区13区| 日韩精品 欧美激情| 国产一级137片内射麻豆| 狠狠操天天干| 久久精品国产亚洲5555| 一区操逼| 精品亚洲一区在线观看| 尤物国产一区在线观看| 伊人久久国产免费观看视频| 欧美性性性| 人看人人摸人人操| 午夜天堂精品久久| 欧美第二页| 变态乱伦伪娘灌肠一区二区| 青青草视频久久| 97在线免费看视频| 大香蕉久操| yazhououmeizongya| 人人妻人人狠人人| 嫩草 我啊~嗯~在线| 亚洲人妻中文高清| 黄色一区三区| 尤物一级在线免费观看| 大香蕉手机在线| 岛国精品视频在线观看| 操久久久久| 青草视频在线看看看看看看看看看| 夜夜夜爽www精品视频| 色人久久| 男人天堂电影院| 884t在线| ?亚洲伊人伊成久久人综合网| 国产精品另类一区大香蕉| 色色操| 成人97人人超碰人人| 高潮内射在线| 青青操综合网| 欧美91变态| 久久久久78| 丁香婷婷久久 | 天色综合网| 国产精选三级在线观看| 97日亚洲欧美| 91性高| 最新国产亚洲精品精品国产亚洲综合 | 亚洲精品99999| 日韩视频小说在线观看 | 中文字幕亚韩| 一区二区中文| 97超碰精品图片| 日韩99神马视频片| 大香蕉啪啪啪| 日韩欧美一级特黄大片| 欧美亚洲高清| 巨乳特殊服务按摩| aaa淫乱视频| www.久久| av影片在线观看不卡| 日本免费一区二区不卡| 日本在线一二| 午夜一区| 强奸乱伦麻豆| 蜜桃视频成a人v在线| 毛片久久| 天天看天天干| 亚洲春色一区二区三区| 超碰九区| 丰满人妻-区二区三区免费看 | 8x福利精品第一福利视频导航| 中文字幕一二三| 中文字幕免费在线观看| 亚洲女人毛茸茸91| 热的中文 热的有码 热的国产| 国产AV天美| 伊人aaa| 97超碰这里只有精品| 中文字幕精品久久久久人妻红杏ⅰ| 日本少妇va7777| 大香蕉啪啪啪啪在线| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 亚洲图片偷拍欧美| 一二视频神马久久传媒| 欧美手机在线综合| 欧美天天综合站| 在线 欧美 亚洲| 老司机久久| 亚洲中文字幕av | 欧美日韩婷婷中文| 熟妇一区,二区,三区。| 99热在线播放| 性色av蜜臀av色欲aV| 不卡啪啪视频| 一区二区三区日韩欧美| 目产99999久久999| 99热一区二区三区四区| 亚洲无码国产探花在线观看| 婷婷超| 亚洲第一无码播放立川理惠| 1024久久高清视频| 久久水蜜臀亚洲AV无码精品| 91超碰丝袜制服| 狠狠操夜夜| 欧美72网页| 欧美大片91| 超碰超碰95| 大奶的诱惑| 五月婷婷激情综合| 天躁夜夜躁2021| 亚洲最大网站av| 人妻天天爽| 日本免费一级AAA大片器| 67914亚洲精品| 人妻熟女一区二区在线视频| 成人小说视频在线精品欧美| 欧美综合骚| 全国男人天堂网| 女人午夜视频777| 加勒比海成人视频网 | 美女露胸露屁股| 亚洲福利影院一区久久| 精品无码一区二区| 99人妻碰碰碰久久久久禁片| 射欧美综合| 亚洲成人性| 超碰97伊人| 99re这里只有精品中心播放| 丰满人妻一区二区三区色-百度| 天天爽爽爽爽| 精品人妻中文字幕4399| 久久中久文96| 欧美色偷拍 | 国产白丝在线| 99ri在线视频| 国产亚洲精品久久久久小| 国产欧美成人精品| 日日夜夜干| 日日噜噜夜夜狠狠视频无| 综合网亚洲在线| 男人的天堂2018.| 天美麻花大全视频| PMv在线观看| 妇女一区二区三区| 国产精品丝袜久久亚洲不卡| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 欧美一二三级精品在线| 日韩精彩视频| 久久超碰大香蕉| 日本天天吊| 国产欧美亚洲精品a第2页| 一本色道综合久久欧美| 久久国产精品m码| 人妻素股| 亚洲十八禁止| WWW.加勒比人妻一区不卡.com| 嗯嗯啊中文字幕| 国产一区二区啪啪视频| 淫荡少妇免费| 中文字幕一区二区三区字幕| 大肥女高潮bbwbbwhd视频| 蜜桃久久一区二区| 国产精品亚洲高清在线| 欧美一品道| 欧美精品另类人妖xxxx| 日本在线一二| 综合色图区| 国产精品对白内射| 日本一二区免费 | 97干色天堂| 区一二区日韩亚洲乱码av电影| 国产精品天美传媒| 男人的天堂成人的社区| 亚洲综合113页| 亚洲性少妇| 久久久性少妇| 国产精品人妻无码久久久互動交流| 加勒比综合88| 国产欧美在线观看免费观看| 中文字幕人成乱码熟女香港| 国产亚洲日韩在线三区黑人| 一级久久性爱视频| 综合五月天| 偷拍综合亚洲| 欧美日韩精品久久久久久久久东北老熟妇| 亚洲国产熟妇综合色专区| 人妻一区二区三区视频| 国产精品无码在线| 亚洲无套久久嗯嗯| 校园春色欧美| 精品免费视频国产一区| 久久精品中文字幕无码l| 午夜精品一区二区三区三上悠亚| 欧美熟妇乱码在线一区| 久久久久久99999国产精品| 欧美色www亚洲国产阿娇要播| 亚洲AV噜噜狠狠网址蜜桃动漫| 91蜜臀熟女| 久久久久人| 精品成人亚洲午夜电影| 色嘟嘟人妻天堂网| 欧美亚洲韩国视频十五区| 黑人白女精品一区| 亚洲情色五月天 | 蜜臀久久一区二区| 色吊丝 日日骚 清纯唯美| 在线免费观看日韩一区| 熟女中出视频| 999久久久免费精品国产牛牛| 午夜一区| 国产成人五月天丁香花| 亚洲欧美日韩夜夜| 东京热99999| 日逼国产| 久久久96精品| 人人做,人人操,人人摸| 久久男人的天堂| 色色激情五月天| 91美| 青青国产精品在线| 无码高清操逼| 鸥美精品一区二区久久婷婷| 国产成久久综合片| 99re69综合| 日韩亚洲中文字幕在线| 欧美玖玖爱免费玖玖| 多乙久久久久久| 97超碰欧美精品| 国产av青草| 18禁中文字幕| 久久久免费高清中文视频| 中文字幕 码 自拍 视频 区| 啊啊啊免费| 国产二区三区粉嫩在线| 秋霞蝌科网日本一区| 97国产精品在线观看| 天天综合精品| 日韩人妻有码免费视频| 国产精品3| 色哟哟-国产专区| 无码免费精品高清| 欧差乱伦二三| 96精品久久久| 97久久精品国产| 日韩啪啪网| 人人人人插| 操逼网站网站| 久久亚洲日韩熟女精品| 麻豆婷婷成人一二三| 丁香六月婷婷| 国产 热久久久久国产精品| 亚洲人成在线放东京热| 91欧美巨乳| 97爱b| 性色av一区二区| 丁香五月天婷婷姐| 嗯嗯啊操我| 人妻少妇久久久| 成视频在线观看免费看| 中国东北熟女老太婆内谢| 欧美Aⅴ| 久久成人国产精品| 国产黄色剧情影片麻豆免费播放| 97视频在线观看免费高清| 国偷自 一区|