久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

基于ffmpeg的錄屏軟件開(kāi)發(fā):編碼選型與音畫(huà)同步工程實(shí)踐

基于ffmpeg的錄屏軟件開(kāi)發(fā):編碼選型與音畫(huà)同步工程實(shí)踐 簡(jiǎn)介面向從零開(kāi)始學(xué)習(xí)音視頻編程的開(kāi)發(fā)者這套最終完善版的錄屏軟件開(kāi)發(fā)工程基于Qt 4.8.4與FFmpeg 2.5.2演示如何用FFmpeg完成屏幕采集、編碼與封裝并集成到界面中。壓縮包共289個(gè)文件含226個(gè)頭文件、8個(gè)C源文件、2個(gè)UI界面文件以及14個(gè)靜態(tài)庫(kù)、12個(gè)動(dòng)態(tài)庫(kù)和若干SDL依賴整體約17.43MB頭文件與源碼負(fù)責(zé)界面邏輯靜態(tài)庫(kù)、動(dòng)態(tài)庫(kù)處理音視頻編解碼與播放依賴目錄結(jié)構(gòu)清晰可配合Qt Creator直接打開(kāi)工程梳理代碼。已有1075人學(xué)習(xí)下載適合需要參考完整錄屏實(shí)現(xiàn)、研究FFmpeg調(diào)用方式或希望基于現(xiàn)成項(xiàng)目二次開(kāi)發(fā)的入門(mén)與中級(jí)開(kāi)發(fā)者。工程內(nèi)附界面布局與核心邏輯頭文件標(biāo)注了主要接口庫(kù)文件覆蓋了FFmpeg、SDL等常用依賴既能用于理解音視頻數(shù)據(jù)流也可作為環(huán)境配置與排錯(cuò)的對(duì)照樣本是一份難得的完整學(xué)習(xí)示例。1. 錄屏軟件開(kāi)發(fā)沒(méi)有想象中簡(jiǎn)單ffmpeg 只是起點(diǎn)封裝與同步才是分水嶺錄屏軟件這個(gè)項(xiàng)目做出來(lái)的“能跑”版本和“能交付”版本之間隔著一條很寬的溝。用 ffmpeg 拉桌面、推編碼器半小時(shí)能出一個(gè) Demo但真正到了需要長(zhǎng)時(shí)間錄制、音畫(huà)同步、文件可修復(fù)、CPU 占用可控的階段問(wèn)題會(huì)一個(gè)接一個(gè)冒出來(lái)。這個(gè)系列的最后一篇就把錄屏開(kāi)發(fā)里那些“就差最后一步”的完善工作講清楚從采集參數(shù)怎么定、編碼器怎么選到音畫(huà)不同步怎么排查、錄制文件損壞怎么兜底。適合已經(jīng)能用 ffmpeg 命令行錄出視頻、但想把工具做成產(chǎn)品的開(kāi)發(fā)者也適合正在調(diào)試錄屏功能卻總被詭異問(wèn)題卡住的從業(yè)者。2. 錄屏鏈路選型先定采集方案和編碼器再談功能完善2.1 各種采集方式的適用邊界gdigrab、x11grab、avfoundation 怎么選錄屏開(kāi)發(fā)第一步不是寫(xiě)代碼是確認(rèn)目標(biāo)平臺(tái)和畫(huà)面源類(lèi)型。常見(jiàn)的采集方案各有限制選錯(cuò)后面全是坑。Windows 上ffmpeg 的 gdigrab 是默認(rèn)選擇它基于 GDI 抓取屏幕簡(jiǎn)單、兼容性好但有兩個(gè)明顯短板一是對(duì) DirectX 游戲或者硬件加速渲染的畫(huà)面抓不到表現(xiàn)為黑屏或花屏二是幀率不穩(wěn)定尤其在多顯示器、動(dòng)態(tài)壁紙這類(lèi)場(chǎng)景下時(shí)間戳跳動(dòng)明顯。如果你只錄普通桌面、PPT、瀏覽器窗口gdigrab 夠用但你得把-framerate參數(shù)顯式傳給它否則默認(rèn)只有 25fps而且它抓取的是經(jīng)過(guò)合成后的桌面畫(huà)面跟用戶看到的是一致的。macOS 上對(duì)應(yīng)的是 avfoundation可以直接指定屏幕索引和麥克風(fēng)索引。Linux 上常見(jiàn)的是 x11grab配合 X server 的 MIT-SHM 擴(kuò)展能拿到較高性能的抓取。坦率講跨平臺(tái)錄屏如果想省事先按平臺(tái)分別封裝采集封裝器不建議一上來(lái)就搞統(tǒng)一抽象層因?yàn)槿齻€(gè)后端的參數(shù)語(yǔ)義差別不小強(qiáng)行統(tǒng)一的代價(jià)是調(diào)用鏈變長(zhǎng)出了問(wèn)題反而難排。如果你的目標(biāo)是錄制游戲或者高幀率畫(huà)面gdigrab 這條路就走不通了。Windows 上比較可靠的做法是用 DirectX 的 Desktop Duplication APIffmpeg 里對(duì)應(yīng)的設(shè)備是 dshow 配合采集 filter或者直接走 N 卡提供的 Capture SDK。但要注意這條路牽涉到幀同步和 GPU 資源管理復(fù)雜度明顯上了一個(gè)臺(tái)階。在“最終完善”這個(gè)階段我一般建議先把桌面采集做穩(wěn)游戲錄制作為獨(dú)立模塊往后放。2.2 編碼器選型libx264 與 nvenc 的取舍以及預(yù)設(shè)和碼率控制編碼器選型直接決定錄屏軟件的 CPU 占用和產(chǎn)物質(zhì)量。頭號(hào)選擇是 libx264軟編兼容性最好。代價(jià)是 CPU 占用高1080p30 下presetmedium時(shí)一顆 6 核處理器要吃掉大約 30%50% 的算力而且這是平均占用瞬時(shí)波動(dòng)更嚇人。preset參數(shù)越往后slow、slower走CPU 越吃緊壓縮率也越高。錄屏場(chǎng)景下我一般不用默認(rèn) medium而是用presetveryfast或faster視頻不太復(fù)雜時(shí)質(zhì)量損失很小但 CPU 壓力能降一個(gè)檔位。如果你的目標(biāo)機(jī)器有 N 卡或者 Intel 核顯、AMD 顯卡硬件編碼是更合理的選擇。ffmpeg 里用-c:v h264_nvenc或-c:v hevc_nvenc走硬編。硬編的好處不只是 CPU 占用低還在于“編碼耗時(shí)”穩(wěn)定這對(duì)長(zhǎng)時(shí)間錄制很重要。軟編在畫(huà)面復(fù)雜度突然升高時(shí)編碼器可能會(huì)因來(lái)不及處理而產(chǎn)生延遲導(dǎo)致時(shí)間戳異常硬編的吞吐量遠(yuǎn)高于實(shí)時(shí)要求所以幀間隔更均勻。碼率控制方面錄屏不推薦固定碼率。屏幕內(nèi)容大多是靜止或局部變化的靜態(tài)畫(huà)面用固定碼率純屬浪費(fèi)帶寬。我習(xí)慣用-crf模式libx264 給 1822nvenc 給 1824 之間再設(shè)置一個(gè)-maxrate做上限避免畫(huà)面劇烈變化時(shí)碼率失控。還有一個(gè)容易被忽略的參數(shù)是-gGOP 大小錄屏?xí)r建議設(shè)成幀率的整數(shù)倍比如 30fps 下-g 60這樣關(guān)鍵幀間隔穩(wěn)定后期剪輯時(shí)拖動(dòng)進(jìn)度條不那么卡。提示如果你不確定目標(biāo)機(jī)器有沒(méi)有硬件編碼能力發(fā)布前先在用戶機(jī)器上跑一次ffmpeg -encoders | findstr nvenc把它作為安裝包的“環(huán)境檢測(cè)”步驟。硬件編碼頻繁翻車(chē)多半是驅(qū)動(dòng)版本太老而不是代碼邏輯有問(wèn)題。2.3 顏色與像素格式為什么錄出來(lái)的顏色發(fā)灰或者飽和度不對(duì)錄屏過(guò)程里有個(gè)坑特別隱蔽畫(huà)面發(fā)灰、顏色偏淡。原因大多出在像素格式的轉(zhuǎn)換上。默認(rèn)情況下ffmpeg 會(huì)把采集到的畫(huà)面轉(zhuǎn)成 yuv420p這個(gè)格式是視頻編碼的標(biāo)準(zhǔn)輸入但它在色彩范圍的理解上有個(gè)細(xì)節(jié)——TV rangelimited range數(shù)值范圍 16235與 PC rangefull range0255。屏幕內(nèi)容是 PC range編碼器卻按 TV range 處理時(shí)暗部被裁掉變成黑白墻變成灰看起來(lái)就是整體發(fā)蒙。處理方式有兩個(gè)思路。其一是在編碼前把 pixel format 顯式標(biāo)成 yuv420p 并追加-color_range pc讓編碼器按完整范圍理解數(shù)據(jù)。這個(gè)改動(dòng)的風(fēng)險(xiǎn)是播放器不一定尊重這個(gè) flag有的播放器照樣按 TV range 渲染反而更糟。更穩(wěn)的做法是在采集端設(shè)置 GPU 或系統(tǒng)級(jí)色彩配置但這對(duì)錄屏工具不現(xiàn)實(shí)。所以在實(shí)際項(xiàng)目里我一般默認(rèn)輸出 yuv420p保持兼容性如果用戶反饋顏色不對(duì)再提供一個(gè)“增強(qiáng)顏色”開(kāi)關(guān)內(nèi)部做一次 colorspace 轉(zhuǎn)換而不是讓這個(gè)轉(zhuǎn)換默認(rèn)開(kāi)啟。還有一個(gè)相關(guān)的點(diǎn)不要在采集端就用 RGB 直接編碼。h264 等主流編碼器對(duì) RGB 的支持是有的但兼容性差播放器支持參差不齊。硬編碼進(jìn) RGB 視頻用戶拿到文件可能直接花屏。3. 搬運(yùn)工與總管把 ffmpeg 當(dāng)模塊用而不是當(dāng)命令行工具用3.1 進(jìn)程 vs 動(dòng)態(tài)庫(kù)錄屏軟件承載方式的現(xiàn)實(shí)選擇很多剛接觸這個(gè)方向的開(kāi)發(fā)者會(huì)把 ffmpeg 理解成一個(gè)“可執(zhí)行的命令行工具”。這沒(méi)錯(cuò)但從軟件開(kāi)發(fā)的角度看你要考慮的是你的錄屏程序是殼它調(diào)度 ffmpeg 進(jìn)程還是 ffmpeg 是庫(kù)你的程序把采集、編碼、封裝邏輯全部揉進(jìn)自己的進(jìn)程里。進(jìn)程方案的優(yōu)勢(shì)非常明顯解耦。ffmpeg 崩潰不會(huì)帶崩你的主程序最多是錄制中斷升級(jí) ffmpeg 只要替換二進(jìn)制文件不需要重新編譯。通過(guò)解析標(biāo)準(zhǔn)輸出來(lái)監(jiān)控進(jìn)度也簡(jiǎn)單-progress pipe:1就能把幀數(shù)、碼率、時(shí)間戳推給父進(jìn)程。缺點(diǎn)是進(jìn)程間通信有開(kāi)銷(xiāo)以及控制粒度稍粗比如想動(dòng)態(tài)切換編碼參數(shù)就得重建進(jìn)程。動(dòng)態(tài)庫(kù)方案SDK 方式控制粒度細(xì)能拿到每一幀的回調(diào)可以做自定義水印、動(dòng)態(tài)字幕、局部錄屏高亮適合功能深度集成。代價(jià)是 ffmpeg 的 API 復(fù)雜度高內(nèi)存管理、線程同步、異常處理都得自己兜底。我見(jiàn)過(guò)不少項(xiàng)目在 “ffmpeg 庫(kù)方式接入” 上卡了兩三周最后退回進(jìn)程方式實(shí)現(xiàn)速度反而更快。我的建議是第一版錄屏工具用進(jìn)程方案把精力集中在錄制邏輯本身等功能穩(wěn)定后再按需把高頻路徑切到動(dòng)態(tài)庫(kù)。真到了非庫(kù)不可的場(chǎng)景你往往會(huì)發(fā)現(xiàn)你要的不是庫(kù)而是要對(duì)視頻流做實(shí)時(shí)處理那正確路線是引入 filter 或 GPU 算子而不是把整個(gè) ffmpeg 請(qǐng)進(jìn)內(nèi)存。3.2 命令行拼裝的工程化參數(shù)模板與錯(cuò)誤識(shí)別進(jìn)程方案里最容易埋雷的兩個(gè)地方一個(gè)是參數(shù)拼裝一個(gè)是錯(cuò)誤解析。參數(shù)拼裝方面我強(qiáng)烈建議用結(jié)構(gòu)化方式組織 ffmpeg 命令行而不是用字符串拼接。比如用std::vectorstd::string或 Python 的list把每個(gè)參數(shù)作為一個(gè)獨(dú)立元素最后統(tǒng)一exec。這樣做的好處是能避免路徑里出現(xiàn)空格時(shí)參數(shù)斷裂也能方便在 debug 模式打印出完整命令復(fù)現(xiàn)問(wèn)題。以下是一個(gè)典型的進(jìn)程式錄屏封裝段偽代碼示意import subprocess def build_record_cmd( output_file: str, framerate: int 30, preset: str veryfast, crf: int 20, audio_device: str | None None, ) - list[str]: cmd [ ffmpeg, -hide_banner, -loglevel, error, -f, gdigrab, -framerate, str(framerate), -video_size, 1920x1080, -i, desktop, ] if audio_device: cmd [ -f, dshow, -i, faudio{audio_device}, ] cmd [ -c:v, libx264, -preset, preset, -crf, str(crf), -pix_fmt, yuv420p, -g, str(framerate * 2), -c:a, aac, -b:a, 128k, -y, output_file, ] return cmdcmd 是一個(gè)列表每項(xiàng)都是一個(gè)獨(dú)立參數(shù)包括輸入設(shè)備名、輸入路徑、編碼設(shè)置和輸出路徑。關(guān)鍵在于不使用 shellTrue直接用列表傳參從而繞開(kāi) shell 轉(zhuǎn)義導(dǎo)致路徑含空格或特殊字符時(shí)命令被拆散的問(wèn)題。-hide_banner可以避免輸出里混入版本信息干擾解析-loglevel error讓錯(cuò)誤輸出干凈方便程序捕獲。錯(cuò)誤解析方面最核心的一條經(jīng)驗(yàn)是不要用返回值判斷成功要用輸出文件的存在性和時(shí)長(zhǎng)來(lái)兜底。ffmpeg 進(jìn)程退出碼為 0 只能說(shuō)明它“自己認(rèn)為正常結(jié)束了”但錄制時(shí)間過(guò)短、音頻設(shè)備斷流、磁盤(pán)空間不足導(dǎo)致尾部文件寫(xiě)失敗這類(lèi)情況退出碼很可能依然是 0。所以我的檢查邏輯是先看進(jìn)程返回碼再看文件是否存在、時(shí)長(zhǎng)是否超過(guò)預(yù)期閾值兩者同時(shí)通過(guò)才算成功。3.3 錄制的生命周期控制開(kāi)始、暫停、停止的進(jìn)程管理進(jìn)程方式下“暫停”是個(gè)需要小心的功能。用戶點(diǎn)了暫停你以為只是不寫(xiě)幀了但 ffmpeg 進(jìn)程還活著緩沖還在漲時(shí)間戳還在走。如果直接停掉進(jìn)程再起一個(gè)新的輸出文件會(huì)有一個(gè)斷層后續(xù)拼接時(shí)音畫(huà)可能對(duì)不上。比較務(wù)實(shí)的處理方式是暫停時(shí)不中斷進(jìn)程而是“凍結(jié)畫(huà)面”后讓編碼器繼續(xù)工作或者干脆把暫停實(shí)現(xiàn)為“停止本次錄制生成片段文件”恢復(fù)時(shí)另起一個(gè)分段最后統(tǒng)一用 concat demuxer 合并。后者雖然多了一個(gè)合并步驟但邏輯清晰出錯(cuò)后更容易定位。很多成熟的錄屏工具也是這么做的——它們?cè)谖募飳?xiě)的是分段索引而不是真的去拼接底層流。停止流程同樣要看錄像時(shí)間和寫(xiě)入緩沖。ffmpeg 收到 SIGINT 或要求正常結(jié)束時(shí)會(huì)先把編碼器 flush把緩沖里的幀寫(xiě)完再進(jìn)行文件 box 的收尾。有些開(kāi)發(fā)者直接 kill 進(jìn)程結(jié)果文件時(shí)長(zhǎng)短一截播放到尾部直接卡死。正確做法是先向進(jìn)程發(fā)送終止指令再等待超時(shí)超時(shí)未退出才強(qiáng)制清理。4. 音頻采集與混音從靜音到回聲問(wèn)題往往不在編碼而在設(shè)備4.1 音頻設(shè)備鏈路的正確姿勢(shì)麥克風(fēng)、立體聲混音與系統(tǒng)聲音錄屏如果不做音頻采集那功能是不完整的。但音頻恰恰是錄屏軟件里最容易出現(xiàn)“偽成功”的模塊——錄出來(lái)的文件能播、有聲音可聲音是空的或者只有麥克風(fēng)沒(méi)有系統(tǒng)聲用戶一用就會(huì)發(fā)現(xiàn)。在 Windows 上系統(tǒng)聲音的采集通常依賴“立體聲混音”設(shè)備。這個(gè)設(shè)備默認(rèn)是禁用的需要用戶在錄音設(shè)置里手動(dòng)開(kāi)啟程序?qū)用鏇](méi)法繞過(guò)。如果開(kāi)發(fā)時(shí)直接用-f dshow -i audio立體聲混音去錄而用戶沒(méi)開(kāi)混音ffmpeg 會(huì)直接報(bào)錯(cuò)或無(wú)限等待。比較穩(wěn)妥的做法有兩條路第一安裝驅(qū)動(dòng)時(shí)加一個(gè)虛擬音頻設(shè)備如 VB-Audio 類(lèi)的驅(qū)動(dòng)把系統(tǒng)輸出重定向到虛擬設(shè)備上再采集第二也是更常見(jiàn)的選擇用 WASAPI 的 loopback 模式直接采集系統(tǒng)輸出不需要依賴混音設(shè)備是否開(kāi)啟。ffmpeg在 Windows 下可以通過(guò) dshow 的audiovirtual-audio-capturer等虛擬設(shè)備來(lái)采集但這屬于依賴第三方驅(qū)動(dòng)。就平臺(tái)原生能力而言我的建議是Windows 錄屏工具的音頻采集走 WASAPI loopback 實(shí)現(xiàn)ffmpeg 只負(fù)責(zé)把 PC 的采集回調(diào)數(shù)據(jù)寫(xiě)進(jìn)編碼器。這樣繞開(kāi)了“用戶沒(méi)開(kāi)啟立體聲混音”這個(gè)變量行為可預(yù)期。macOS 上簡(jiǎn)單一些avfoundation 原生能枚舉出屏幕和音頻輸入設(shè)備但系統(tǒng)聲音默認(rèn)拿不到需要安裝一個(gè)虛擬聲卡驅(qū)動(dòng)做路由。Linux 這邊則依賴 PulseAudio 的 monitor 源pactl list sources能看到名為.monitor的虛擬源采集它就是采集聲卡輸出。4.2 雙音軌策略麥克風(fēng)與系統(tǒng)聲音分開(kāi)錄的意義很多錄屏軟件默認(rèn)把系統(tǒng)聲和麥克風(fēng)混成一條音軌輸出。這個(gè)設(shè)計(jì)對(duì)最終觀眾來(lái)說(shuō)是合理的但對(duì)錄制者來(lái)說(shuō)存在隱患如果某段系統(tǒng)聲里有通知提示音而麥克風(fēng)恰好錄到了不該出現(xiàn)的內(nèi)容后期想去掉就沒(méi)辦法了。稍微講究一點(diǎn)的方案是在錄制時(shí)就輸出雙音軌音軌一是系統(tǒng)聲音音軌二是麥克風(fēng)。編碼方面用 AAC 支持多音軌是沒(méi)問(wèn)題的封裝成 mkv 或 mp4 都行。ffmpeg 命令行里做雙音軌錄制核心是給每個(gè)音頻輸入顯式分配輸出流順序ffmpeg -f gdigrab -framerate 30 -i desktop \ -f dshow -i audio麥克風(fēng)輸入 \ -f dshow -i audio立體聲混音 \ -map 0:v -map 1:a -map 2:a \ -c:v libx264 -preset veryfast -crf 20 \ -c:a aac -b:a 128k \ -metadata:s:a:0 titleMicrophone \ -metadata:s:a:1 titleSystem \ -y output.mkv命令里-map 0:v表示取第一個(gè)輸入桌面的視頻流-map 1:a取麥克風(fēng)音頻-map 2:a取系統(tǒng)聲音三路流同時(shí)被送進(jìn)輸出容器。封裝的 mkv 文件里會(huì)有三條獨(dú)立的流播放器里可以手動(dòng)切換音軌。-metadata:s:a:0 title給每條音軌打上標(biāo)簽在后期剪輯軟件里一目了然。這樣設(shè)計(jì)還有一個(gè)隱形好處發(fā)布時(shí)只需要把麥克風(fēng)音軌刪掉就能生成一版不含隱私信息的版本比混音后再做聲音分離省事太多。4.3 回聲與音量平衡聲學(xué)問(wèn)題的軟件兜底方案如果錄制對(duì)象是“自己在講話 屏幕上有視頻或游戲聲”回聲幾乎是躲不掉的。系統(tǒng)聲音通過(guò)音箱播放麥克風(fēng)再把音箱的聲音采集回來(lái)形成回聲。ffmpeg 有一個(gè)afftdn降噪濾鏡和一個(gè)aresample重采樣工具但對(duì)回聲的處理并不理想真正能用的回聲消除器在 ffmpeg 里幾乎不存在。實(shí)踐中常用的兜底做法是在混音之前給麥克風(fēng)加一個(gè)高通濾波切除 80Hz 以下低頻和一個(gè)動(dòng)態(tài)壓縮器限制峰值再?gòu)南到y(tǒng)聲音那條軌上做側(cè)鏈衰減。這屬于民用級(jí)的“半回聲消除”效果有限但對(duì)大多數(shù)錄屏場(chǎng)景已經(jīng)夠看了。如果你的目標(biāo)用戶是專(zhuān)業(yè)內(nèi)容創(chuàng)作者那恐怕需要接入聲學(xué)算法庫(kù)這是另一個(gè)量級(jí)的工作量錄屏軟件一般不做。音量平衡方面我有兩個(gè)數(shù)字可以分享麥克風(fēng)增益到 -6dB 到 -3dB 之間是比較穩(wěn)的起點(diǎn)系統(tǒng)聲音建議不做增益而只做衰減限制因?yàn)橄到y(tǒng)音量本身不受控用戶隨時(shí)可能把播放器音量拉到 100%這時(shí)你再不做限制爆音直接削頂。ffmpeg 里處理這個(gè)用alimiter濾鏡limit0.9可以防止超過(guò)閾值的部分削波。5. 錄屏開(kāi)發(fā)避坑指南黑屏、音畫(huà)不同步、文件損壞的排查路徑5.1 現(xiàn)象一畫(huà)面是黑的但 ffmpeg 進(jìn)程顯示幀數(shù)在正常增長(zhǎng)這個(gè)現(xiàn)象最容易誤導(dǎo)人。幀數(shù)在漲說(shuō)明采集鏈路確實(shí)有數(shù)據(jù)流出編碼器也確實(shí)在工作可輸出文件就是黑屏。原因八成不在 ffmpeg而在采集源本身的格式。gdigrab 在部分機(jī)器上抓取的是帶硬件加速的合成畫(huà)面如果顯示驅(qū)動(dòng)是“混合模式”比如老版本 NVIDIA 驅(qū)動(dòng)配合 Windows 的混合 GPU 方案gdigrab 拿到的可能是 GPU 加速層的黑幀。解決辦法是在錄制開(kāi)始前檢查系統(tǒng)顯示設(shè)置強(qiáng)制目標(biāo)程序使用集成顯卡渲染然后讓 gdigrab 采集獨(dú)顯輸出或者把 GPU 加速模式臨時(shí)切到“僅獨(dú)顯”再錄。此外檢查-pix_fmt是否正確某些顯示器色深是 10bitgdigrab 可能輸出的是 bgra 或 rgb 序列編碼器按 yuv420p 轉(zhuǎn)出來(lái)的畫(huà)面也可能異常。但幀數(shù)正常增長(zhǎng)本身就是最重要的信息不要懷疑編碼器先懷疑源的格式。5.2 現(xiàn)象二音畫(huà)不同步而且不同步的程度隨時(shí)間推移越來(lái)越嚴(yán)重音畫(huà)不同步最常見(jiàn)的原因有兩個(gè)一是音頻和視頻的時(shí)間戳基準(zhǔn)不一致二是丟幀后時(shí)間戳沒(méi)有補(bǔ)齊。前者典型場(chǎng)景是音頻設(shè)備以采樣率為時(shí)間基準(zhǔn)而視頻以系統(tǒng)單調(diào)時(shí)鐘為基準(zhǔn)兩者偏差隨錄制時(shí)長(zhǎng)累積。后者更隱蔽比如系統(tǒng)負(fù)載高導(dǎo)致 gdigrab 丟了幾幀但 ffmpeg 的-vsync行為沒(méi)有按預(yù)期做時(shí)間戳補(bǔ)償出來(lái)的視頻就“缺時(shí)間”隨著錄制時(shí)間拉長(zhǎng)音畫(huà)差距越來(lái)越大。排查思路分成兩步走。第一步先查幀率是不是真在跑。用ffprobe分別讀輸出文件里視頻流的nb_frames和duration再用公式fps_actual nb_frames / duration推一下實(shí)際幀率如果跟預(yù)期 30fps 差 2fps 以上那說(shuō)明采集端丟幀了跟音頻端無(wú)關(guān)。第二步如果幀率正常那就查音頻的時(shí)間戳補(bǔ)償。ffmpeg 里比較穩(wěn)的參數(shù)組合是給輸出加-af aresampleasync1:first_pts0這個(gè)濾鏡會(huì)把音頻流的時(shí)間基點(diǎn)對(duì)齊到視頻流的起始時(shí)間并把采樣率偏差帶來(lái)的微小時(shí)差做自動(dòng)拉伸或壓縮。在輸入側(cè)同時(shí)給視頻源加-fflags genpts讓 ffmpeg 在輸入缺失時(shí)間戳?xí)r自動(dòng)生成能解決一部分源設(shè)備不給時(shí)間戳的問(wèn)題ffmpeg -fflags genpts \ -f gdigrab -framerate 30 -i desktop \ -f dshow -i audio麥克風(fēng)輸入 \ -af aresampleasync1:first_pts0 \ -c:v libx264 -preset veryfast -crf 20 \ -c:a aac -b:a 128k \ -y output.mp4aresample的參數(shù)async1表示允許音頻采樣率存在動(dòng)態(tài)微調(diào)first_pts0強(qiáng)制音頻時(shí)間戳從 0 開(kāi)始避免出現(xiàn)幾百毫秒的偏移。-fflags genpts是輸入側(cè) FLAG讓 ffmpeg 在輸入包沒(méi)有 PTS 時(shí)自動(dòng)推算時(shí)間戳。兩者配合后絕大多數(shù)“錄得越久不同步越嚴(yán)重”的問(wèn)題都能被按下去。提示用了aresampleasync1之后音頻理論上可能被拉伸或壓縮幾個(gè)毫秒對(duì)正常聽(tīng)感無(wú)影響。如果你做的是音樂(lè)現(xiàn)場(chǎng)錄制這類(lèi)對(duì)音質(zhì)錙銖必較的場(chǎng)景這個(gè)方案要斟酌但錄屏幾乎不會(huì)受影響。5.3 現(xiàn)象三錄制中途程序崩潰后產(chǎn)物文件無(wú)法播放或播放到尾部卡死這是長(zhǎng)時(shí)間錄制的命門(mén)。MP4 是“moov box 在文件頭部”的格式嚴(yán)格說(shuō)是 FastStart 變體但是 ffmpeg 默認(rèn)會(huì)在文件末尾寫(xiě)索引或把索引放在結(jié)尾如果程序在中途崩潰索引寫(xiě)不進(jìn)去文件就變成了“不可播”的狀態(tài)。MKV 的設(shè)計(jì)對(duì)這種情況要寬容得多它的索引是分散的流式結(jié)構(gòu)邊錄邊寫(xiě)索引所以即便中途斷電前面已經(jīng)寫(xiě)進(jìn)去的 mkv 數(shù)據(jù)也能播放。我服務(wù)的那個(gè)模擬項(xiàng)目 X 里就把“緊急保存”功能直接落到了“分段輸出 mkv”上。這個(gè)問(wèn)題的標(biāo)準(zhǔn)解法是錄制數(shù)據(jù)輸出成 mkv 或 ts 流兩者都是對(duì)寫(xiě)入中斷更寬容的容器錄完后再做一次“轉(zhuǎn)封裝”把它變成 mp4而不是直接錄 mp4。轉(zhuǎn)封裝就是只改容器不動(dòng)編碼速度快一條命令搞定ffmpeg -i input.mkv -c copy -movflags faststart output.mp4其中-c copy意思是視頻音頻流不做重編碼原樣拷進(jìn)新容器所以速度接近磁盤(pán)讀寫(xiě)上限。faststart會(huì)把 moov box 挪到文件頭部好處是用戶下載文件時(shí)不用等整個(gè)文件下載完只要頭部拉下來(lái)就能開(kāi)始拖動(dòng)播放。這條命令本身在錄屏工具的“完成錄制”階段跑一次比在錄制階段硬上 mp4 要穩(wěn)得多。5.4 現(xiàn)象四硬件編碼突然失效換回軟編就正常但 CPU 拉滿硬編很“玄學(xué)”同一套代碼在某些機(jī)器上跑幾小時(shí)沒(méi)問(wèn)題在另一些機(jī)器上錄 20 分鐘就報(bào)錯(cuò)或者畫(huà)面卡住。翻車(chē)原因幾乎都指向兩點(diǎn)顯卡驅(qū)動(dòng)版本太舊或者顯存已滿尤其在 4GB 顯存的入門(mén)卡上錄屏 游戲同吃顯存編碼器直接罷工。排查方法倒是很簡(jiǎn)單先跑一個(gè)最簡(jiǎn)硬編命令比如ffmpeg -f gdigrab -i desktop -c:v h264_nvenc -b:v 5M test.mp4如果這個(gè)命令也失敗或持續(xù)報(bào)錯(cuò)就確定是編碼器或驅(qū)動(dòng)問(wèn)題。解決路徑是升級(jí)驅(qū)動(dòng)并且不要用“最新驅(qū)動(dòng)”里的 Preview 版用穩(wěn)定分支。如果你是面向最終用戶發(fā)布工具建議在首次運(yùn)行硬編前調(diào)用 NVAPI 或 DXVA 做一次能力檢測(cè)直接把不支持硬編的機(jī)器切到軟編模式別硬來(lái)。5.5 現(xiàn)象五錄出來(lái)的文件超大或者 1 小時(shí)錄制占了 8GB 空間體積問(wèn)題通常露餡于-crf和-preset配錯(cuò)。用 libx264 時(shí)preset 越慢同等 CRF 下體積越小preset 越快體積越大。如果你用veryfast配crf20錄制大量動(dòng)態(tài)畫(huà)面時(shí)體積會(huì)大得驚人。修正方向有兩個(gè)把 preset 降到medium或slow或者改碼率上限模式。更符合錄屏場(chǎng)景的做法是在“演示模式”下用-crf 24在“高質(zhì)量模式”下用-crf 18并額外加-maxrate 8M -bufsize 16M做上限控制ffmpeg -f gdigrab -framerate 30 -i desktop \ -c:v libx264 -preset medium -crf 22 \ -maxrate 8M -bufsize 16M \ -c:a aac -b:a 128k -y output.mp4maxrate限制了視頻流的瞬間峰值碼率不能超過(guò) 8Mbpsbufsize是編碼器做碼率控制的緩沖區(qū)間兩個(gè)值一般按 2 倍關(guān)系設(shè)置。這個(gè)組合的效果是靜止畫(huà)面時(shí)碼率自動(dòng)降到極低動(dòng)態(tài)畫(huà)面時(shí)最高不超過(guò) 8Mbps1 小時(shí) 1080p30 的視頻基本能壓在 2GB 上下。6. 上線前的一小時(shí)用 ffprobe 做產(chǎn)物校驗(yàn)與自動(dòng)化驗(yàn)收錄屏工具開(kāi)發(fā)進(jìn)入尾聲時(shí)你會(huì)需要一個(gè)“驗(yàn)收腳本”。它的意義不只是檢查錄制是否成功而是幫你把那些用戶側(cè)才會(huì)暴露的坑提前踩掉。我自己的習(xí)慣是每次發(fā)布前強(qiáng)制走一遍完整的錄制驗(yàn)收流程跑一段 5 分鐘的標(biāo)準(zhǔn)測(cè)試錄制然后從四個(gè)維度檢查產(chǎn)物流信息、時(shí)長(zhǎng)偏差、關(guān)鍵幀間隔、音畫(huà)時(shí)間差。第一個(gè)維度用ffprobe讀流信息ffprobe -v error -show_entries \ streamindex,codec_type,codec_name,width,height,r_frame_rate,avg_frame_rate \ -of json output.mp4-show_entries指定了只輸出這些字段-of json把結(jié)果序列化為 JSON 方便腳本解析。重點(diǎn)看幾個(gè)值視頻流的avg_frame_rate是否約等于采集幀率音頻流是否有兩條如果你的產(chǎn)品是雙音軌設(shè)計(jì)寬度高度是否跟預(yù)期一致。這個(gè)命令不校驗(yàn)內(nèi)容只是確認(rèn)文件結(jié)構(gòu)沒(méi)有畸形。第二個(gè)維度是時(shí)長(zhǎng)偏差。用ffprobe -v error -show_entries formatduration -of csvp0 output.mp4拿到封裝時(shí)長(zhǎng)然后跟錄制的實(shí)際秒數(shù)做比較。錄了 300 秒文件時(shí)長(zhǎng)在 295305 秒之間都算正常范圍。偏差超過(guò) 5 秒說(shuō)明錄制過(guò)程有丟幀或音頻流錯(cuò)位需要回頭查采集端或aresample的參數(shù)。第三個(gè)維度是關(guān)鍵幀間隔。用ffprobe -v error -select_streams v -show_entries framekey_frame -of csvp0 output.mp4輸出每一幀的關(guān)鍵幀標(biāo)記然后寫(xiě)一段小腳本統(tǒng)計(jì)相鄰關(guān)鍵幀的最大間隔。如果最大間隔超過(guò)-g設(shè)定值的兩倍那說(shuō)明編碼器沒(méi)有按預(yù)期插入關(guān)鍵幀這對(duì)剪輯工具和播放器拖動(dòng)進(jìn)度條影響極大。第四個(gè)維度音畫(huà)時(shí)間差是文本類(lèi)資源最難自動(dòng)驗(yàn)證的我的做法是取一個(gè)已知畫(huà)面特征——比如屏幕錄制的開(kāi)始畫(huà)面是特定顏色的全屏色塊——然后從音頻波形里定位對(duì)應(yīng)的起始點(diǎn)比對(duì)兩者時(shí)間偏移。這個(gè)用 ffmpeg 的showwaves或者astats濾鏡可以做但實(shí)現(xiàn)成本偏高小型項(xiàng)目里可以退一步只驗(yàn)證音頻首包的 PTS 是否為 0配合aresamplefirst_pts0就已經(jīng)能規(guī)避 95% 的同步問(wèn)題ffprobe -v error -select_streams a -show_entries \ packetpts_time,flags -of csvp0 -read_intervals %#2 output.mp4-read_intervals %#2表示只讀前 2 秒的包。輸出的第一行如果是 0.000000說(shuō)明音頻起點(diǎn)正確如果第一行是 0.5 或者更大那就算畫(huà)面沒(méi)問(wèn)題也要檢查輸入設(shè)備或aresample配置。自動(dòng)化這套驗(yàn)收流程我用的是一個(gè)很簡(jiǎn)單的 Python 腳本每次 CI 或發(fā)布前跑一遍先從錄制目錄里找最新的產(chǎn)物文件依次跑上述四條 ffprobe 命令然后把結(jié)果解析后與閾值對(duì)比最后輸出 PASS/FAIL 報(bào)告。腳本不復(fù)雜但它幫我抓到了至少三類(lèi)真實(shí)缺陷某次更新后音頻設(shè)備枚舉順序變了導(dǎo)致錄到空音軌某驅(qū)動(dòng)升級(jí)后關(guān)鍵幀間隔異常增大以及一次-g參數(shù)被誤改小后文件體積暴漲的問(wèn)題。從那以后我每次發(fā)版都強(qiáng)制走一遍這個(gè)驗(yàn)收流程錄屏工具的“最后一公里”才算真正踏實(shí)。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
青青草在线视频美女| 国产精品久久久久久久久久梁医生| 色av中文字| 一区二区中文| 亚洲成人ab| 欧美综合骚| 91人妻中文| JuliaAnnXXX888| 国产九月婷婷| 国产 无码 一区二区| 2019男人的天堂| 青娱乐蜜桃臀AV色婷| 亚洲成人一区二区精品| av激情亚洲五月天| 天天性射网| 和协影院中文字幕三区| 九九RE视频在线精品| 亚洲无码视频免费在线观看网址!| 人人摸人人干| 国产欧美亚洲精品a第2页| 欧美图片校园春色| 超碰97久久国| 亚洲人精| 日本一区二区三区精品| 久久久久国产精品喷潮免费观看臀| 好吊色综合| 日韩 成人 有码| 色噜噜综合在线| 中文字幕一区电影在线观看| 日韩一级欧美一级国产一级台湾 | 欧美性爱日韩高清| 97干色| 91五月天| 久久精品视| 亚洲鸥美色图| 后入福利视频| 日韩97视频| 97超碰免费人人性爱| 91人妻丝袜无码| 九九热九九热| 秋霞视频一区二区| 久久9亚洲| 97超视频在线观看| 少妇与黑人高潮在线| 国产四虎在线| 免费的av网| 婷婷五月天色| 成人性爱高清视频免费看| 黄骗免费网站| 免费精品人妻一区二区三| 亚洲图片欧美色图| 日本熟女中文字幕一区| av一区二区三区不卡| 亚洲精品国产拍免费91在线| 色香综合天天影视综合 | 91色图片| 天操天操夜操夜月月年年操操 | 欧美gv在线观看| 亚洲密乳AV| 日本人妻中文字幕精品| 日本一级一级一级一级| 国产男女无套97| 91爱综合| 97视频www| 夜夜操一区二区| 新视频sss国产| 久九九九九九九九热| 欧美精品97| 91久久免费视频互動交流| 欧美精品99久久久**| 亚洲AV成人无码久久精品播放| 国产久久久久久久久一区二区 | 小骚逼被操的爽不爽| 五月天精品| 蜜臀Av一区二区三区| 国产强奸乱伦欧美| 亚洲欧洲小说图片视频 | 黄色性爱网网| 中国黑人三级片网站上区| yazhououmeizongya| 亚洲一二三四区| 91夜色| 一级aaaaa欧美中文字幕录像片| 99人人干| 一本久久久精品| 新久久AV| 99日精品欧美国产| 色诱中文字幕| 东京热男人的天堂| 久久女婷| 六六久久日韩不卡| 91精产一区二区三区| 国产偷拍网站| 岛国激情视频软件| 亚洲精品久| 亚洲资源网| 在线视频 亚洲精品| 亚洲综合中文字幕有码| 综合性视频99| 成人性爱美曰韩| 欧美日韩国产男人| 色路综合| 久久婷综合| 日本欧美色| 五月天久久综合网| 你草精品在线视频| 伊人91| 国产乱伦视频污| 91亚洲黑人| 加勒比五月天| 伦理片秋霞免费影院| 91黑丝美女| 精品美女久久久久| 成人一区二区三区四区| 国产婷婷综合在线观看| 9+1视频网址| 夜夜爽夜夜摸夜夜操免费视频| 国产精品无码成人精品| 日韩精品人妻系列无码天堂| 97欧美日韩综合| 极品综合| 蜜桃视频一区二区三区| 天天色黄色影院天天操| 人妻素股| 国产免费久久久久| 99少妇内射| 巨爆乳肉感一区二区三区竹菊影视| 亚洲,欧美,综合网| 一级免费啪啪片| 国产自偷| 久久性爱大全| 欧美色综合图片| 在线观看无码三级少妇| 国产一区二区三区不卡手机在线| 亚洲va有码在线天堂| 九九九九九九九九九九精品视频| www.人人cao| 欧美96在线|欧| 久久国产视频性吧| 天天综合网在线91| 能看的AV| 天啪| 色九月综合| 老熟女乱子伦中文字幕一区二区| 国产夫妻性生活视频| 精品人妻美妇91job| 日本大香蕉综合网红本杳社区| 亚洲成人久久美女| 欧美一级A片不卡视频。| 亚州人妻| 一级黄色影片| 久久亚洲AV成人精品无码| 狠狠操狠狠燥| 成视频在线观看免费看| 日日爱99| 91爱网| 人人操av| 无码丰满熟妇一区二区浪潮AV| 欧美熟女妇同| 久久婷婷六月综合| 黄色免费网页无码| a片 xxxx受爽视频| 91色堂| 热久久精品| 免费看国产曰批40分钟怎么下载| 中国一级αV| 久久国产视频专区一二三| 欧美一区二区三区入口| 91老熟女视频| 97超碰精品图片| 亚洲人码13| 亚洲日韩精品在线播放| 亚川综合视频| 夜夜欢天天干| 97日韩欧美亚洲| 18岁禁 茉莉成人久久| 秋霞视频一区二区 | 波多野结衣被操50分钟免费视频 | **一级毛片国产| 国产成人 综合亚洲 天堂| 久艹视频在线| 欧美一区二区三区成人性生活| 日韩三级视频一区二区三区| 福利在线黄片| 在线另类| 97av在线视频| 五月丁香社区婷婷日韩欧美精品影院 | 欧洲大香蕉| 91电影色诱| 九九无码久久精品视频| av在线人气| 久久天天艹| 超碰97亚洲| 玖玖久久久| 91色人| 日韩AV噜噜噜一区二区三区四区 | 18禁精品网站在线看| 成人午夜高潮av猛片| 另类图片天天影视| 在线视频 亚洲精品| 97鸡把在线视频| 怡红院亚洲怡春院av| 亚洲熟女乱综合一区二区三区 | 99热这里都是精品| 欧美色就是色| 日韩熟女操逼| 日本一区二区三区午夜观看| 91大神精品长腿在线观看网站| 久久东京热成人| 夜夜欧美| 日本不卡一区二区| 国产成人手机视频激情| 91久久99久久91熟女精品| 色香色欲天天综合网天天来吧| 国产午夜无码片在线观看影视 | 亚洲午夜AV| 欧美,日韩,亚洲视频| 欧美十八禁导航成人| 国产福利在线视频网站| 一区二区三区视频在线观看免费| 999岛国大片| 99热精品在线| 99视频内射三四| 黄污污污污| 久久久久久夜夜夜夜夜| 九九拍拍精品视频在线播放 | 久 久无码人妻AV| 岛国爱情动作片在国产AV无码专区亚洲AV漫画| 又粗又长又大国产不卡| 亚洲成人性爱在线观看| 91ise欧美| 10000部十八禁看电影| 97就爱干| 激情小说亚洲| 强歼乱伦资源网| 九九热AV| 97超碰亚洲| 色777999综合| 欧亚无码视频| 国产无套粉嫩白浆在| 六月婷激情福利天堂69| 成人精品视频| 精品视频在线观看| 欧美成人性爱视频免费观看 | 亚洲人妻在线精品| 国内毛片无码一级毛片| 欧美综合制服在线| 青青久久艹| 尤物网址| 久操视频免费在线观看| 欧美热图99| 国产精品免费日韩| 1956日韩精品| 97在线亚洲| 探花精品 一区二区| 强奸乱伦中文字幕AV| 爱射综合| 性欧美| 一区二区三区在线美女| 吻戏激情性巴克| 欧美淫乱视频| 成人网站 免费观看| 又大又黄国产| 91亚洲电影| 伊人色综合网电影| 极品出轨视频网站| 五月婷网站| 久9久| 国产精品丝袜在线| 色一色综合网| 老女人91| 中文字幕丝袜国产第一页不卡| 国产欧美日韩女同性恋ww喷水精品| 先锋音影AV| 俄罗斯及免费在线看| 曰韩成人免费视频| 黑人精品久久97| 欧美高清无码免费视频高清版| 激情深爱五月天| 久久风骚城市人| 强奸乱伦亚洲第一页| 密臀在线免费观看| 翔田千里A片一区二区| 91chinese在线| 四虎av在线| 久久婷综合| chaopen97久久| 国产亚洲精品农村妇女| 天天看高清麻豆| 日本操逼aaaaa| 9/A片| 超碰地址久久| 99re8超碰| 日韩综合成人免费视频| 日本大香蕉| 中文色综合| 久久婷婷亚洲欧| 2019久久久久久久久福利| www.AV有限公司一区| 最新日日夜夜天天干干| 超碰综合97在线| 毛片电影一区二区三区| 女人久久久| 97超碰69| 日韩精品国产一区二区| 伊人久久亚洲色欲综合网站 | 91色久| 国产精品夜夜| 操我啊啊啊啊啊| 9国产超碰| 精品中文日韩字幕视频| 9l视频自拍9l九色成人| 97视频在线看| 九九热精彩视频| 国产精品一区二区 尿失禁| 2019男人的天堂| 校园春色 男人天堂 | 91九色网| 日韩精品字幕| 日本高清视频在线观看黄已三辽| 能看的av| 免费一级特黄特色大片在线观看看| 欧美久久久| 色综合五月天| 日本成人A片网站| 91蜜桃传媒精品久久久一区二区| 区日韩亚洲乱码av电影| 日韩国产欧美伦理在线 | 99热这里| 国产精品久久久久无码A√| 日本熟妇自慰性高潮一区二区三区| 再深点灬舒服灬太大了好硬好爽| 亚洲AV无码秘 蜜桃臀国精产品| 九九九九日本| 中文字幕黑人大片| 99久re热视频精品98| a片在线播放| 热久久无毒不卡| 男人天堂.AB| 国产精品成人无码av无码免费| 亚洲图片欧美| 午夜久久久| 精品然女一区二区| 欧美亚洲性爱一区二区| 99在线观看| 亚洲无线码欧洲精品区别| 亚洲图片欧美偷拍| 97欧美色综合| 欧美精品双插| 2017大香蕉国产精品久久| 五月丁香成人网| 夜间福利片1000无码| 日韩三级伊人| 亚洲国产日韩精品久久久| 欧美午夜视频| 蜜臀AV成人精品蜜臀AV久久| 亚洲男人的天堂亚洲| 欧美亚洲| 人妻81p| 91av熟女人妻| 免费a v| 揉揉日日日日| 欧美色九九| 欧美成人精品一区二区男人蜜臀| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 天天操熟妇| 国产丰满少妇久久久精品影院| 日韩有码一区三区| 天天干天天拍| 99爱精品| 97色色色| 91欧美| 在线另类| 黄色AV影视| 蜜臀av一区二区三区免费观看| 日韩一级成人毛片免费观看 | 啊啊啊97视频| 老女人老91妇女老热女| 精品无码久久久久| 97爱b| 亚州熟妇精品| 久久久久九九九九九| 精品久久艹| 综合性视频99| 亚洲丨在线| 精品一级| 国产呦精品系列在线观看| 蜜臀久久99精品久久久久| 丝袜美腿av女优在线| 夜夜性| 97超碰日韩| 白丝一区| 亚洲成人性爱网站在线播放| 国产麻豆福利av在线播放| 极品尤物自安慰| 免費黃色視頻觀看一| 伊人婷婷五月天| 蜜臀久久99精品久久久久久久久| 免费看美国人人爽,人人操| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 中亚精品极乱| 求求你操操我| 女人香蕉久久毛毛片精品| 黄页| 涩涩这里只有精品视频| 这里都是精品在线观看| 99re这里只有精品3| 国产成人主播| 97日韩欧美亚洲| 久久免费少妇| 久草国产在线视频| 成人夜夜爽| 亚洲美欧999| 丰满欧美放荡少妇在线| 中文字幕后石码四区五区| 日本黄色精品专区网站| 99日精品欧美国产| 欧美一区二区日韩传媒搭讪精品| 丝袜高跟澳门91视频| 一起草视频在线| 老子午夜伦不卡影院| 91干熟女| 欧美成人综合| 国产成人在线观看网址| av日韩手机在线影视| 99综合网| 欧洲性人爱视频| 麻豆国产97在线| 无码抄逼网| 天天综合有色网| 欧美色图99| 2017人人操,人人摸| 大香蕉啪啪网| 熟女一区二区三区四区| 亚洲成人在线高清| 天天综合网~69| 搡老女人老91妇女熟女| 操b在线观看| 婷婷五月激情综合| 色婷婷一区二区三区久久午夜| 亚洲精品97| 大香蕉乱伦视频网| 欧美综合 站| 国产精品一区二区久久精品| 91狠| 超碰人妻久久| 99精品网| 熟女熟妇一区二区三四区| 亚洲色色探花| 青青欧洲黑| 最新av网站在线观看| 青青草九九九九九| 中文字幕三四区| 五月天色综合| 变态综合色| 2020国产精品| 夜夜嗨一区| 国产伦乱91| 亚州欧美综合| 在线无码操| 天天天堂影视日韩亚洲91| 国内偷自视频区视频综合| 青青草吊丝| 麻豆国产精品午夜视频| 大香蕉伊人网WWWn0n| 凹凸精品熟女在线观看| 天天看综合网| 99久久无码| 欧美丝袜激情| 91精品国产91久久久久久久久久久久| 一区二区 韩日AV| 日韩欧美大片免费高清啪啪| 久久久九九网站| 先锋音影AV| 色色网91| 狠狠爱夜夜干| 人妻aa| 亚州高清av| 亚洲av影音先锋| 亚洲性图91| 最新中文字幕在线亚洲| 国模91| 免费看日产一区二区三区| 国产自产22区| 中文字幕在线日亚州9| 巨乳特殊服务按摩| 九九玖玖精品| 中文字幕一区二区日韩网| 欧美72网页| 最新日产中文在线麻豆| www.夜夜| 欧美人与动性人交a| 狠狠夜色午夜久久综合在线| 一本久道在线综合视频| 玖玖大干人妻| 麻豆久久视频在线地址| 搞中出久久| 99色在线| 高清不卡视频| 凸凹视频在线观看| 欧美男人天堂| 久久亚洲天堂| 嗯嗯嗯嗯啊啊啊好紧好大| 午夜操逼不卡| 91丝袜视频在线观看| 日韩女优在线| 国产一区二区三区导航| 91欧美综合| 成人热久久精品| 久99久视频| 国产精品白领在线观看 | av无线看| 性欧美999| 激情文学 国产一二三aV| 女人 A一级| 亚洲色图亚洲| 免费男人的天堂| 国产13区| 九九热AV| 欧美成人AⅤ大片在线观看| 99rre在线精品99re8| 性生活久久久久久久久久| 国内精品久久久久影院亚洲| 激情黄色片在线观看| 人妻丰满熟妇av无码区蜜桃| 超碰午夜在线| 久久久无码国精品无码三区三区| 一区二区三区探花在线观看| 插入逼91| 久久尹人大香焦视| 啊啊啊轻点在线观看| 国产AV天美| 屌逼麻豆| 色色色网站| 日韩丝袜二区| 福利操逼| 欧美1区二区三区公司| 久9无限国产| 白嫩妹子国产骚| 成人一区二区三区四区| 色女99一级片在线观看| 97爱免费插| 婷婷久久五月天| 岛园激情| 欧美色综合影院| 性做久久久久久久| 蜜乳性色无码专日粉嫩骚逼AV| 日韩精品色呦呦| 翔田千里A片一区二区| 999热这里只有精品| 欧美第五页| 欧亚韩国999| 精品人妻视频一区二区在线播放| 97在线资源| 青青欧美| 青青草中日韩在线| 久久久成人精品| 97精品国产手机| 91伊人大香蕉| 国产AV天美| 美欧老女人97| 一区二区三区四区久久视1| 怡红院怡春院| 妇女视频网站| 日本好吊色视频| 免费国产| 黄色工厂这里只有精品| 屁股久久久久久久| 日本一区二区三区免费观看| 无码区蜜乳| 激情网色| 久99热| 精品久久視頻在线| JULIA人妻风俗店中出电影| 亚洲精品一二三四区| 日本丝袜美腿人妻九九| 欲射影视| 九九九九一区| 大肥女高潮bbwbbwhd视频| 午夜性生活av免费在线看| 日韩av免费一级电影| 激情无码日韩| 色婷婷丁香五月| 久久久不能久久久久| 狠狠色一区二区中文字幕| 久久久成人精品| 99re这里只有| 91影库| 九九色热| 亚州色图欧美| 十八禁黄色| 国产在线能看的你懂的| 亚洲 欧美 手机在线观看| 天天干少妇| 亚洲天堂情色| 亚洲精品少妇| 国产男人又猛又粗又爽| 97精品国产97久久久久久免费| 天天综合影院91| 97视频免费在线| 国产偷拍网站| 99色在线观看| 亚洲色丰满少妇高潮| 九九热av| 国内毛片国产专区二| 女同亚洲欧美一二三区久久电影| 国产久久久久影院老熟女| 午夜αv| 天天精品| 无码久| 精品国产Av无码久久久伦古装 | 久久久久密臀视频| 97干在线| www.色99| 亚洲文学偷乱拍啪啪啪啪| 亚洲成a人v欧美综合天堂下载| 亚洲精品亚洲人成在线麻豆| 亚洲日韩青青草色月| 国产日本顶级一区二区三区| 国产传媒操逼视频| 国产婷婷一区| 亚欧色图在线激情| 亚洲男人天堂Av| 久久婷婷苹果| 成人三一级一片aaa| 人妻插插人妻人| 日韩小电影| 天天爽人人综合免费7799| 欧美亚州色的图| 国产日逼视频| 激情终合网| PMv在线观看| 91九久| 嗯嗯啊啊好爽| 色妺妺在线视频| 国产精品视频在线观看| 色综合色综合网| 日韩欧美久久婷婷网站| 免费A V在线| 亚州高清AV| 国产精品午夜高潮呻吟久久av| 日本超碰色精品| 日韩免费大片一级播放| 91久久国产综合精品| 日本人妻中文字幕精品| 日韩av色图综合| 日韩av免费一级电影| 五十路熟女工口| 精品毛片av一区二区| 天天天天天天天天综合| 国产精品国产自产高清AV| 动漫区日韩区欧美区| 台湾成人无码AV| 综合一区二区影视| 欧美啪啪女女| 国产精品视频在线观看| 冬京热男人的天堂| 性爱乱伦视频免费| 久久国产999| 玖玖婷婷五月天| 久久久久久久九九九九| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 影视综合无码少妇| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 男人的天堂在线有码| 手机看片91人妻| 九九亚洲精品| 强奸a片网| 欧美色图片| 日韩情色AV| 操屄不卡视频| yiqicaoav| 婷婷15月天青娱乐| 激情五月婷婷综合| 国产丝袜美女在线一区| 亚洲自拍青操视频| 97国产色综合| 亚洲最新av无码成人精品区| 欧美色91| 五月婷婷hd| 91粉嫩萝控精品福利网站_精品影音先锋国 | 欧美人妻少妇| 精品人妻一区春色| 欧美亚洲丝袜人妻制服99| 午夜精品久久久久久久久久蜜桃| 综合色久欲| 日本免费一区二| 日韩一级成人毛片免费观看| 啪啪啪亚欧美视频| 91爱欧美| 亚洲综合另类欧美久久久| 国产亚州高清国产拍精| 欧美性xxxxx狂欢| 2020中文字幕在线| 99re9这里只有精品| 蜜乳av首页| 国产日韩欧美操逼视频| 日本黄色精品| 天天综合网~91综合网| 婷婷香蕉欧美在线一区二区三区| 日本丝袜人妻内射| 精品人妻中文字幕高清| 久久久久久99999国产精品| 天天日日本| 色五月婷婷在线| 日本成人电影资源网| 夜夜骑夜夜操| 清纯唯美第一页| 中文字幕诱惑制服人妻丝袜美丝袜美| 翘臀vidoes| 亚洲国产无码精品首页久久久| 岛国片在线播放| 男人亚洲天堂| 久操国产在线| 国产97在线播放| 欧美熟女丝袜| 国产日韩人人| 天天日天天射天天干| 欧美天天插| 五月婷婷综合网| 日本亚洲熟女视频| 久草视频在线视频在线视频在线观看 | 欧美强奸乱| 国产高清26uuu| 性爱综合一区二区| 91AV入口| 操啊国产| 国内毛片热久久思思热| a级免费在线观看| 天天噜| 欧美天天干| 91色亚洲| 97欧美日韩| 国产精品视频在线观看| 欧美美女视频| 东京热天堂网| 免费观看一区| 秋霞怕怕片| 欧美精品久久96人妻无码| 亚洲牲交| 国产精品黑人一区二区三区| 精品国产一区探花在线观看| 伊人天天久久动态图| 亚洲婷婷丁香在线| 国产偷拍网站| 亚洲精品国产无码高清| 中国一级操逼视频| 国产操逼逼网| 色人久久| www.欧精品| 青青草视频久久久久| 美女91在线观看| 九七毛片九九毛片| 999色欧美中文字幕| 欧美亚洲手机在线| 精品无码欧美三级| 亚洲三区视频| 熟女突然公开看18禁影片| 伊人久久婷婷| 一二三啪啪专区| 狠狠夜色午夜久久综合在线| WWW美腿丝袜香蕉中文| 国产91 丝袜在线播放| 欧美黄页| 在线观看AV片| 青青草操逼逼视频| 超碰99热中文字幕| 国产欧美日产一区二区三区 - 国产欧美日 | 欧美老妇综合网| 婷婷久草| 国产精品久久| 欧美色性爱| 天天综合网~69| 97在线观视频免费观看| 日本布卡一区二三区| 日本韩高清无砖码22o| 精品无码不卡视频| 大香蕉宗合网在线| 91色堂| 久操精品| 无遮挡h肉动漫在线观看| 亚洲AV无码| 在线 欧美 亚洲| 久久婷婷电影网| 黄片不用下载在线观看| 精品人妻一区二区三区-国产精品| 是还免费视频1727我| 2020中文字幕在线观看| 午夜男人av| 999久久久九| 精品超碰色| 精品国产91内射久久| 中文字幕在线观看视频www| 精品国产99| 亚洲色交| 日韩女模中文造逼| 99只有精品| aa片毛片| 婷婷五月天综合网| 1024午夜激情男人的天堂| 日本影视久久免费| 亚洲啪啪性视频| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 男人的天堂2019AV| 日本天堂在线播放| 久久透逼视频| 澳门人妻久久| 青青草好吊色| 偷窥自拍亚洲天堂网爆| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 大香蕉免费3| 一区二区你上我| 日本幼女18+| 大香网站| 国产精品久久久九九九| 亚洲国产一级黄色视频| 婷婷香蕉欧美在线一区二区三区| 久久超碰天天| 激情接吻视频久久久久久| 天美传媒AV国产在线| 亚洲图片欧美色图| 亚码激情| 久艹日日日| 色欧美天天| 久草这里只有精品| 婷婷激情五月综合| 美女黄页网站| 伊人激情| 91丝袜| 日韩一级二级| 国产女人视频三四五区| 亚洲色偷偷色噜噜狠狠99网| 日本欧美不卡| 日韩另类色图| 欧美爱爱97| 内射中出日韩在线观看视频| 日本成a人v网站在线观看| 精品久久青青草| 综合夜夜| 日韩精品熟妇| 手机在线播放国产福利| 欧美丝袜美女电影一二三四区| 太久视频| 91天天综合在线观看| 亚洲操逼网| 91丝袜美女视频| 精品久久久av| 99在线免费公开视频| 亚洲性少妇| 国产一区二区在线电影| 天天综合~91| 婷婷久草一区二区三区| w w w.久久精品| 麻豆精品天美| 欧美黄片视频在线观看免费 | 99色婷婷| 可免费观看的av毛片中日美韩| 天天看片天天爽| 95自拍视频在线观看| 欧美日日人人天天| 亚洲综合色男人网| 欧美日韩黄片精品在线| 91色伦| 69人妻人人揉人人躁人人精品| 综合伊人激情| 欧美爱国产综合、| 蜜臀久久99精品久久久老,,| 欧美日韩黄片精品在线| 国产精品大屁股999| 中文字幕高清20页视频| 久久久久久人妻一区精品色欧美| 日韩人人精品| 久热久一区二区三区| 超碰成人公开| 日夜精品| 色色色色色色色色综合| 婷婷五月天av| 强奸乱伦亚洲第一页| 粉嫩av一区二区三区天美传媒| 日韩熟女精品无码专区一区二区 | 欧美久久久| 夜夜爽33333| 国产精品久久久久亚洲av| 青草一区二区| 欧美与日韩97| 91亚洲不卡一区| 午夜福利成人免费视频| 无码久久亚洲高清,| 中文字幕av一区二区三区人妻少妇| 国产按摩一区二区三区| 草草影院最新网址| 粉嫩av在线| 欧洲一区二区| 精品无码久久久久| 久久久久久久久久久人妻| 日亚韩精品视频二区三| 久久久国产av美女私房| 9久久久久| 欧洲一区二区| 国产情色在线| 97这里都是精品| 亚洲性综合9| 久久精品性| 久久精品国产亚洲AV嘿嘿| 国产美女高潮| 91观看 国产白丝| 中文字幕精品亚洲熟女| 少妇与黑人高潮在线| 欧美亚州手机在线| 亚洲精品视频在线播放| 操我无码| 久久毛卡| 精品视频免费在线一区| 日韩免费簧片| 久久精品一区二区一8| 久久久亚洲精品中文字幕人妻| 操淫穴亚洲五月丁香| 有码色中文字幕在线观看| 亚殴在线| 嗯嗯嗯啊啊啊在线免费观看| 国产成人网| 日本污ww视频网站| 抽插无码高清一区| 亚洲综合精品国产一区| 加勒比在线视频一区二区三区| 久久国产熟女影院| 天天视频黄| A级片一区| 午夜小电影在线插入淫高潮| 欧美99999| 久久久96| 日韩欧美亚洲自拍偷拍| 3PAV乱伦视频| 边做饭边操逼逼| 日韩强奸av| 伊人操你| 岛国网址国产 | 五月花婷婷| 亚洲丝袜二区| 东北女人av| 9热9热综合网| 激情终合网| 日韩中文字幕宗合在线| 学生妹天天看| 夜夜精品视频一区二区| 九九九九一区| 91爱| 成人小说另类在线| 日韩av电影成人在线| 久久男人精品| 免费中文在线| www.99色| 中文字幕在在线观看网站| 日韩懂色网| 国产精彩女在线观看视频| 天天影视综合色| 欧美一二三| 人妻一区二区三区视频 | 日韩无码服务区| 大香蕉狠狠爱| 久久精品国产亚洲AV清纯| 八戒无码国产午夜福利| 91强热人妻| 欧美后进式| 黄呦呦在线| 久久婷婷一区| 91欧洲国产成人久久精品网站| 天天日天天搞天天干| 亚洲国产成人精品无码专区| 激情网五月天| 国产天天看| 美女91网址| 乱伦一二三| 人人操人人操草草| 99热| 亚洲成人妻日韩在线| 啊啊啊啊免费视频| 懂色中文一区二区三区| 亚洲国产欧美中日韩成人综合视频| 亚洲男人天堂Av| 大香蕉男人的天堂| 97干在线视频| 欧美aaaaaaa| 九九热免费国产视频婷婷伊人五月| 欧美性爱网97| 校园春色五月天| 亚洲精品影视老司机| 美女尤物福利视频| 啊啊啊啊啊好舒服视频| 亚洲色图91| 在线观看国产黄色| 欧亚不卡| 人人妻人人澡人人爽久久av| 99精品欧美一区二区三区桃色| 另类小说五月天| 伊蕉97蜜桃97狠狠综合干| 97超级久久| 不卡一区二区日本视频| 95精品在线| 青女偷拍网| 国产精品久久久久中文字幕| 97在线国产精品| 日本亚洲嫩草影院啪啪| 少妇xx精品| 久久综合精品一区二区三区| 91青青| 偷拍自拍在线视频观看| 国产精品91ai| 一级毛片电影免费看| 五月天综合网| av草草在线电影| 国产成人综合在线播放| 中文字幕视频在线观看一区二区| 欧美第五页| 色综合久久88色综合久久天天| 亚洲色9| 中文字幕天堂在线| 精品妇女一区二区三区| 美女好片色日本| 久久男女激情视频网站| 综合激情一一91| 一起草欧美| 制服少妇欧美| 免费少妇一区二区| 2019AV天堂| 岛国免费视频在线| 亚洲AV乱码专区国产噜噜亚洲 | 久久麻豆一区二区| 加勒比综合88| 五月天婷婷欧美三区| 国产白丝网站| 亚洲色五月| 91综合网在线| 熟女人妻av在线资源,黄色的资源 粉嫩国产精品久久粉嫩 | 天天综合-91入口| 成人婷婷丁香| 大香蕉久久| 国产精品青青草| 99无码狠狠久久| 欧洲Au麻豆| 7777奇米影视久久| 97这里只精品| 看日韩操逼| 亚洲激情欧美色图 | 久久久久久加勒比| 嗯啊不要啊在线| 天天澡天天爽日日AV| 国产suv精品一区二区四区999| 久久精品国产亚洲5555| 吉田爱美AV在线| 免费人成在线观看网站品爱网| 久久女同性恋一二区| 国产精品免费日韩| 天操天操夜操夜月月年年操操 | 日日骚一区二区三区| 2010男人的天堂| 中文字幕丰满人妻日本| 久超超碰| 操我无码| 国产精品噜噜噜日日日| 青娱乐av在线| 国产一区二区三区视频在线看| 色爽——AV| 99色婷婷| 人人操人人插 - 百度 - 百度| 搞中出视频在线观看| A片 AV一级在线播放观看免费| yazhououmeizongya| 97超碰jingpin| 日日插夜夜| 欧美色91| 天天做天天爱天天爽AV| 手机在线人成免费视频| 丰满人妻-区二区三区免费看 | 亚洲免费成人在线高清无码视频| 人妻大香蕉| 亚洲日韩肥臀视频在线观看| 亚洲精品国产专区在线观看| 偷拍亚洲情色| 厕所偷拍在线| 亚洲国产高清福利视频| 性猛交| 蜜桃狠狠色伊人亚洲综合| 国产玖玖| 久久亚洲AV无码专区首页| 欧美成人精品欧美一级乱黄一区二…| 影音综合网| 色狠狠综合| 飘花国产午夜精品不卡| 男人的天堂kva| 日韩99神马视频片| 欧美色色色| 人人操人人摸人人看人人干| 五十路三区在线| 国产乱码久久久久久| 国产精品天美传媒| 亚洲精品中文字幕一区在线视频 | JULIA一区二区三区在线播放| 欧美日韩国产成人高清| 超碰97.com| 色老牛| 免费农村成人少妇人妻Aa一区二区视频| 色久桃花影院在线观看| 色欲天天综合久久久无码网中文| 欧美一品道| 国产一区二区视频在线播放| 白嫩91在线亚洲| 日本人妻A片成人免费看片| 国产AB视频| 在线国产一区二区av| 福利风月五月天影院| 1024午夜激情男人的天堂| 亚洲色人妻综合| 女人高潮抽搐喷水视频网站| 日韩精品在线视频在线观看| 欧美综合另类| 骚货操死你| 亚洲综合大片| 麻豆国产第一| 欧美亚洲丝袜美女电影| 日韩精品 资源| 99操碰| 欧美日韩岛国大片在线观看| 国产女人和拘做爰视频 | 国产一区二区三三视频| 又大又大又大又粗爽高潮观看| 国产精品白丝AV| 一区二区亚州激情久婷婷欧美| 99RE在线视频精品,这里只有精品| 性欧美另类高清| 亚洲激情久久| 丁香婷婷大香蕉| 国产精品亚洲免费| 精品黑人一区二区| 国产浮力影院第1页| 东北丰满熟女国产一区| 天天操人人操狠狠插| 伊人五月天婷婷| 免费看黄片现成| 日韩成人性日韩成人性爱视频在线免费观看 | 91人人| 久久九色| 亚洲天堂男人| 精品人妻一二三| 亚洲自拍偷拍视频在线| 久久国产成人精品国产成人亚洲| 超碰色老头| 97久久超碰| 日本国产亚洲一区在线观看| 69国产对白刺激| 亚欧高清| 乱伦a片视频| 国产亚州高清国产拍精| 日韩性爱播放| 日本99视频| 欧美日韩性感| 大香蕉欧美伊| 啊啊啊啊啊啊啊在线| 色香网| 中文字幕一区二区三区50路|