色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

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

瀏覽器端FFmpeg轉(zhuǎn)碼實(shí)戰(zhàn):ffmpeg.js原理、配置與避坑指南

瀏覽器端FFmpeg轉(zhuǎn)碼實(shí)戰(zhàn):ffmpeg.js原理、配置與避坑指南 簡(jiǎn)介面向前端開發(fā)者與多媒體處理愛好者這套基于 ffmpeg.js 的完整瀏覽器端音視頻處理方案無需任何后端服務(wù)即可在網(wǎng)頁中直接完成視頻轉(zhuǎn)碼、音頻提取、格式轉(zhuǎn)換及攝像頭采集等操作。壓縮包共 122 個(gè)文件、約 3.44MB其中 27 個(gè) JavaScript 文件涵蓋核心轉(zhuǎn)碼邏輯與 Worker 并發(fā)調(diào)用61 張 PNG 圖片和 GIF 動(dòng)圖展示界面效果與操作流程8 份 Markdown 文檔與 6 個(gè) HTML 示例頁圍繞配置說明、API 使用和典型場(chǎng)景做了完整演示涉及攝像頭視頻接入、圖片轉(zhuǎn)視頻、視頻流拼接等前端多媒體常用需求。包內(nèi)附有測(cè)試視頻與工程化配套如 ESLint 配置和 Dockerfile便于直接在本地或容器環(huán)境運(yùn)行調(diào)試。已有 6396 人瀏覽學(xué)習(xí)適合希望在 Web 端繞過傳統(tǒng)后端架構(gòu)、快速獲得完整音視頻處理能力的中高級(jí)前端開發(fā)者參考借鑒。1. 直接在瀏覽器里跑 FFmpegffmpeg.js 到底能省掉什么做前端的人幾乎都撞過這類需求用戶上傳個(gè)大視頻要預(yù)覽要裁剪要轉(zhuǎn)格式常規(guī)做法是扔給后端等服務(wù)器轉(zhuǎn)完再拉回來。后端排隊(duì)、帶寬折返、大文件超時(shí)每一步都是體驗(yàn)的坑。ffmpeg.js 這個(gè)庫(kù)把 FFmpeg 用 Emscripten 編譯成了 WebAssembly于是轉(zhuǎn)碼這件事可以完全發(fā)生在瀏覽器內(nèi)存里不上傳原始文件、不經(jīng)過服務(wù)器中轉(zhuǎn)、不用等隊(duì)列。它解決的問題很直接敏感視頻不出本機(jī)、轉(zhuǎn)碼延遲可控、服務(wù)器只管靜態(tài)托管不用扛計(jì)算。適合做純前端工具站、本地多媒體處理、教學(xué)演示也適合那些不想為轉(zhuǎn)碼單獨(dú)養(yǎng)一臺(tái)高配后端的小團(tuán)隊(duì)。不過真上手之后會(huì)發(fā)現(xiàn)這玩意兒不是簡(jiǎn)單地npm install就能跑通的它有一堆關(guān)于跨域隔離、Worker 線程、WASM 加載的隱藏要求不提前搞清楚照著示例代碼寫也照樣白屏報(bào)錯(cuò)。下面把運(yùn)行原理、完整操作和踩過的坑一次說清。2. 先搞懂它怎么跑起來WASM 內(nèi)核、多線程和 SharedArrayBuffer2.1 瀏覽器里的 FFmpeg 不是虛擬機(jī)是編譯產(chǎn)物ffmpeg.js 本質(zhì)上是一個(gè)把 C 語言寫的 FFmpeg 源碼通過 Emscripten 交叉編譯成 WebAssembly 模塊的 JavaScript 庫(kù)。瀏覽器拿到的不是某種模擬器而是真正編譯成 WASM 字節(jié)碼的 FFmpeg 本體。正因如此它支持的功能集基本對(duì)齊了 FFmpeg 的編解碼器庫(kù)常見的 H.264、VP8、VP9、MP3、AAC、GIF 都在支持范圍內(nèi)轉(zhuǎn)封裝、轉(zhuǎn)碼、抽幀、加濾鏡這些操作也都有對(duì)應(yīng)的底層實(shí)現(xiàn)?,F(xiàn)代版本的 ffmpeg.js 默認(rèn)開啟了多線程支持前提是瀏覽器環(huán)境必須滿足跨域隔離cross-origin isolation。核心依賴是 SharedArrayBuffer這個(gè)對(duì)象允許主線程和多個(gè) Worker 線程共享同一塊內(nèi)存FFmpeg 內(nèi)部的多線程編解碼才會(huì)真正生效。瀏覽器出于安全考慮只在頁面通過Cross-Origin-Embedder-Policy: require-corp和Cross-Origin-Opener-Policy: same-origin這兩個(gè)響應(yīng)頭時(shí)才會(huì)開放 SharedArrayBuffer。這意味著你用file://協(xié)議直接雙擊 HTML 打開頁面或者本地起一個(gè)沒有設(shè)置這兩個(gè)響應(yīng)頭的靜態(tài)服務(wù)器WASM 會(huì)退化到單線程運(yùn)行部分版本甚至直接初始化失敗。// 檢測(cè)當(dāng)前環(huán)境是否支持 SharedArrayBuffer if (typeof SharedArrayBuffer ! undefined) { console.log(當(dāng)前上下文已啟用共享內(nèi)存多線程轉(zhuǎn)碼可用); } else { console.warn(SharedArrayBuffer 不可用請(qǐng)檢查跨域隔離響應(yīng)頭轉(zhuǎn)碼將回退到單線程); }這段檢測(cè)代碼適合放在初始化 ffmpeg.js 之前幫你把環(huán)境問題從業(yè)務(wù)邏輯里剝離出來。單線程模式并不是完全不能用只是轉(zhuǎn)碼速度會(huì)明顯下降對(duì)大文件來說等待時(shí)間會(huì)成倍拉長(zhǎng)。2.2 創(chuàng)建實(shí)例時(shí)到底要配置哪些參數(shù)初始化 ffmpeg.js 的 API 看起來簡(jiǎn)單但配置項(xiàng)決定了它能不能在你的項(xiàng)目里穩(wěn)定運(yùn)行。核心參數(shù)是corePath和workerPath。corePath指向 WASM 二進(jìn)制文件所在目錄workerPath指向庫(kù)內(nèi)置的 Worker 腳本。這兩個(gè)路徑必須嚴(yán)格指向?qū)嶋H存在且可跨域訪問的資源否則初始化階段就會(huì)報(bào)Failed to fetch或者worker is not defined。const { FFmpeg } require(ffmpeg/ffmpeg); const { fetchFile } require(ffmpeg/util); const ffmpeg new FFmpeg(); // 初始化把庫(kù)內(nèi)置的資源指向你的靜態(tài)目錄 await ffmpeg.load({ coreURL: /wasm/ffmpeg-core.js, wasmURL: /wasm/ffmpeg-core.wasm, workerURL: /wasm/ffmpeg-worker.js, }); console.log(FFmpeg 內(nèi)核已加載版本號(hào), ffmpeg.version);邏輯說明load方法會(huì)依次拉取并實(shí)例化 WASM 二進(jìn)制、綁定 Worker 通信通道version屬性在初始化完成后會(huì)返回 FFmpeg 內(nèi)核的版本號(hào)可以用來做加載成功的判定。參數(shù)說明coreURL是核心膠水代碼路徑wasmURL是真正的 WASM 二進(jìn)制workerURL是負(fù)責(zé)執(zhí)行轉(zhuǎn)碼任務(wù)的 Worker 腳本。這三個(gè)文件的路徑必須與你靜態(tài)服務(wù)器上的實(shí)際目錄結(jié)構(gòu)一致而且要保證響應(yīng)頭中Content-Type正確application/wasm是必須的否則部分瀏覽器會(huì)拒絕解析 WASM 文件。2.3 文件怎么進(jìn)去、結(jié)果怎么出來虛擬文件系統(tǒng)是理解一切的關(guān)鍵ffmpeg.js 在瀏覽器里模擬了一個(gè) FFmpeg 風(fēng)格的虛擬文件系統(tǒng)。你得先把瀏覽器里的 File 對(duì)象寫進(jìn)這個(gè)虛擬文件系統(tǒng)然后 FFmpeg 的命令才能像在本地一樣讀取它。轉(zhuǎn)碼完成后再?gòu)奶摂M文件系統(tǒng)里把輸出文件讀回來轉(zhuǎn)成瀏覽器可下載的 Blob。這套流程對(duì)應(yīng)到代碼上是標(biāo)準(zhǔn)三步寫入、執(zhí)行、讀取。const inputFile document.querySelector(#videoInput).files[0]; // 第一步把瀏覽器的 File 對(duì)象寫入虛擬文件系統(tǒng) await ffmpeg.writeFile(input.mp4, await fetchFile(inputFile)); // 第二步執(zhí)行轉(zhuǎn)碼命令 await ffmpeg.exec([-i, input.mp4, -vf, scale320:-2, output.gif]); // 第三步從虛擬文件系統(tǒng)讀取輸出結(jié)果 const data await ffmpeg.readFile(output.gif); // 轉(zhuǎn)成 Blob 后交給瀏覽器下載或預(yù)覽 const blob new Blob([data.buffer], { type: image/gif }); const url URL.createObjectURL(blob);邏輯說明writeFile的第一個(gè)參數(shù)是虛擬文件系統(tǒng)里的文件名隨后的exec命令里引用這個(gè)名字轉(zhuǎn)碼結(jié)果再通過readFile讀出來。整個(gè)過程中原始視頻沒有離開用戶的瀏覽器隱私敏感場(chǎng)景下這一點(diǎn)價(jià)值很大。參數(shù)說明fetchFile是工具函數(shù)用于把 File 對(duì)象轉(zhuǎn)成 Uint8Arrayscale320:-2表示將寬度縮放到 320 像素高度按原始寬高比自動(dòng)計(jì)算并保證偶數(shù)值方便 GIF 和某些編碼器做像素格式對(duì)齊。輸出 Blob 的 MIME 類型要跟實(shí)際生成的格式保持一致否則部分瀏覽器下載時(shí)擴(kuò)展名會(huì)不正確。3. MP4 轉(zhuǎn) GIF 完整實(shí)操參數(shù)怎么配、卡頓怎么調(diào)3.1 轉(zhuǎn) GIF 的最短可用命令與參數(shù)語義MP4 轉(zhuǎn) GIF 是 ffmpeg.js 最常見的場(chǎng)景。GIF 格式本身只支持 256 色也沒有高效的壓縮算法所以命令的關(guān)鍵參數(shù)集中在尺寸縮放、幀率控制和調(diào)色板優(yōu)化上。await ffmpeg.exec([ -i, input.mp4, -vf, fps10,scale320:-2:flagslanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse, -loop, 0, output.gif ]);邏輯說明這條命令先限制輸出幀率為 10 幀每秒再用 lanczos 算法做高質(zhì)量縮放然后通過split把畫面流分成兩路一路用于生成調(diào)色板另一路配合調(diào)色板執(zhí)行最終的顏色映射。-loop 0表示無限循環(huán)播放這是 GIF 在社交媒體場(chǎng)景下的默認(rèn)預(yù)期。參數(shù)說明fps10可以顯著縮小 GIF 體積原視頻如果是 30fps降到這里體積大約能減少三分之二代價(jià)是畫面流暢度下降。scale320:-2中的-2是一個(gè)特殊寫法要求 FFmpeg 自動(dòng)計(jì)算高度并取偶數(shù)如果不這樣做某些 GIF 編碼器會(huì)因?qū)挾雀叨葹槠鏀?shù)而報(bào)錯(cuò)。palettegen和paletteuse是 GIF 畫質(zhì)的關(guān)鍵直接忽略它們會(huì)讓 GIF 出現(xiàn)明顯色帶和噪點(diǎn)。3.2 體積與畫質(zhì)的平衡色階、抖動(dòng)和幀率的組合GIF 體積過大會(huì)讓頁面卡頓甚至超過瀏覽器對(duì) Blob 內(nèi)存的承受范圍。這里的關(guān)鍵變量有三個(gè)幀率、分辨率、顏色數(shù)量。常見的組合策略是網(wǎng)絡(luò)展示用fps10, scale320:-2保證體積在 1-2MB 左右教學(xué)演示用fps15, scale480:-2, palettegenstats_modediff兼顧流暢度和細(xì)節(jié)追求極致畫質(zhì)則用fps20, scale640:-2但必須接受 5MB 以上的體積。await ffmpeg.exec([ -i, input.mp4, -vf, fps15,scale480:-2:flagslanczos,split[s0][s1];[s0]palettegenstats_modediff[p];[s1][p]paletteuseditherbayer:bayer_scale5, -loop, 0, output_medium.gif ]);參數(shù)說明stats_modediff會(huì)針對(duì)連續(xù)幀之間的差異來生成調(diào)色板適合畫面變化頻繁的視頻生成的 GIF 顏色分布更合理。ditherbayer:bayer_scale5用拜耳抖動(dòng)算法能在有限色板下模擬出中間色調(diào)bayer_scale 數(shù)值越大抖動(dòng)顆粒越細(xì)膩但文件體積也會(huì)略微上升。這套組合適合大多數(shù)常見視頻可讀性高、體積可控、兼容性最好。如果輸出仍然偏大優(yōu)先降幀率而不是降分辨率因?yàn)槿搜蹖?duì)幀率降低的敏感度低于對(duì)分辨率模糊的敏感度。3.3 轉(zhuǎn)碼進(jìn)度反饋用戶不想要一個(gè)白屏ffmpeg.js 原生進(jìn)度事件是低頻的只報(bào)告當(dāng)前處理到第幾幀而且只有幀級(jí)別反饋對(duì)大文件來說用戶會(huì)以為瀏覽器卡死了。解決思路是監(jiān)聽progress事件結(jié)合輸入視頻的總幀數(shù)和當(dāng)前已處理幀數(shù)計(jì)算百分比。總幀數(shù)可以通過ffprobe方式獲取運(yùn)行ffmpeg.exec([-i, input.mp4])會(huì)觸發(fā) stderr 輸出從中可以解析到Duration和Stream信息。let totalFrames 0; let duration 0; // 先探測(cè)視頻元數(shù)據(jù)此時(shí)故意不指定輸出文件 ffmpeg.on(log, ({ message }) { const durationMatch message.match(/Duration: (\d{2}):(\d{2}):(\d{2}\.\d{2})/); if (durationMatch) { duration parseInt(durationMatch[1]) * 3600 parseInt(durationMatch[2]) * 60 parseFloat(durationMatch[3]); totalFrames Math.round(duration * 15); // 按目標(biāo)幀率估算總幀數(shù) } }); ffmpeg.on(progress, ({ progress, time }) { const currentTime time / 1000000; // 微秒轉(zhuǎn)秒 const percent Math.min(100, Math.round((currentTime / duration) * 100)); updateProgressBar(percent); }); await ffmpeg.exec([-i, input.mp4]); await ffmpeg.exec([-i, input.mp4, -vf, fps15,..., output.gif]);邏輯說明第一次exec只輸入文件不指定輸出FFmpeg 會(huì)把視頻的詳細(xì)信息打印到日志里我們通過正則解析出Duration字段估算出總幀數(shù)。第二次exec才是真正的轉(zhuǎn)碼進(jìn)度回調(diào)里拿到的是當(dāng)前播放時(shí)間戳用它除以總時(shí)長(zhǎng)就能得到百分比。參數(shù)說明time單位是微秒除以 1000000 才是秒這個(gè)坑很多從示例代碼復(fù)制粘貼的人都會(huì)踩。progress的取值范圍是 0 到 1但用它算百分比往往不準(zhǔn)確因?yàn)槟悴恢?FFmpeg 內(nèi)部是拿什么做分母的用 duration 來計(jì)算更穩(wěn)。4. MP4 轉(zhuǎn) WebM 格式面向?yàn)g覽器播放的編碼選擇4.1 為什么轉(zhuǎn) WebM 而不是直接轉(zhuǎn) MP4WebM 格式在瀏覽器兼容性上比 MP4 更省心它的容器結(jié)構(gòu)簡(jiǎn)單、編碼格式開放Chrome、Firefox、Edge 等主流瀏覽器原生支持不需要額外處理 H.264 的專利授權(quán)問題。ffmpeg.js 轉(zhuǎn) WebM 最常用的是 VP9 編碼器壓縮率高、畫質(zhì)好但編碼速度慢追求速度就用 VP8體積稍大但轉(zhuǎn)碼時(shí)間能縮減一半以上。await ffmpeg.exec([ -i, input.mp4, -c:v, libvpx-vp9, -b:v, 1M, -cpu-used, 4, -deadline, realtime, -c:a, libopus, -b:a, 128k, output.webm ]);邏輯說明libvpx-vp9是 FFmpeg 內(nèi)置的 VP9 編碼器參數(shù)集中在碼率控制、編碼速度和音頻編碼上。-cpu-used 4這個(gè)參數(shù)容易被忽略但它直接決定編碼速度數(shù)值越高越快畫質(zhì)會(huì)有輕微下降。-deadline realtime告訴編碼器不要追求極致壓縮比優(yōu)先保證實(shí)時(shí)輸出對(duì)瀏覽器端的內(nèi)存占用也有好處。參數(shù)說明-b:v 1M指定視頻目標(biāo)碼率 1Mbps網(wǎng)絡(luò)視頻夠用libopus是 WebM 容器中最推薦的音頻編碼格式-b:a 128k是音頻碼率。如果原始視頻沒有音軌把-c:a這行刪掉即可。4.2 不需要音頻時(shí)如何做純視頻流很多場(chǎng)景下只需要畫面不要聲音比如做視頻預(yù)覽、抽幀分析。這時(shí)候用-an參數(shù)直接丟棄音軌能節(jié)省編碼時(shí)間且輸出文件更純。await ffmpeg.exec([ -i, input.mp4, -c:v, libvpx-vp9, -b:v, 800k, -an, output_silent.webm ]);參數(shù)說明-an是 disable audio 的縮寫要求 FFmpeg 不處理任何音頻流。加了-an之后輸出文件里只有視頻軌文件體積會(huì)小于帶音頻的版本同時(shí)編碼速度會(huì)有小幅提升。這種輸出特別適合作為網(wǎng)頁里的靜音自動(dòng)播放資源因?yàn)榇蠖鄶?shù)瀏覽器允許無聲視頻自動(dòng)播放音頻會(huì)觸發(fā)用戶手勢(shì)限制。4.3 轉(zhuǎn)碼完成后的內(nèi)存釋放問題瀏覽器端做轉(zhuǎn)碼最容易被忽略的是內(nèi)存管理。每次exec調(diào)用都會(huì)在 WASM 堆里分配內(nèi)存多次轉(zhuǎn)碼后內(nèi)存占用會(huì)不斷累積。ffmpeg.js 沒有提供自動(dòng)內(nèi)存回收機(jī)制你需要手動(dòng)管理虛擬文件系統(tǒng)里的文件用完就刪。// 刪除虛擬文件系統(tǒng)中的輸入和輸出釋放 WASM 堆內(nèi)存 await ffmpeg.deleteFile(input.mp4); await ffmpeg.deleteFile(output.webm);邏輯說明轉(zhuǎn)碼完成后虛擬文件系統(tǒng)里仍然保存著原始視頻和輸出視頻這些文件占用的是 WASM 共享內(nèi)存不清理的話多次操作后頁面會(huì)變得非??ㄉ踔劣|發(fā)Out of memory崩潰。參數(shù)說明deleteFile是異步方法必須await否則下一次writeFile同路徑文件時(shí)可能因?yàn)榕f文件還在而報(bào)EEXIST錯(cuò)誤。習(xí)慣上在每次轉(zhuǎn)碼流程結(jié)束后統(tǒng)一清理比每次單獨(dú)清理更不容易漏。5. 避坑指南我踩過的六個(gè) ffmpeg.js 現(xiàn)場(chǎng)問題5.1 SharedArrayBuffer 不可用導(dǎo)致初始化失敗現(xiàn)象ffmpeg.load()執(zhí)行后報(bào)錯(cuò)控制臺(tái)提示SharedArrayBuffer is not defined或者初始化卡住不動(dòng)。原因?yàn)g覽器只有在頁面啟用跨域隔離后才開放 SharedArrayBuffer。使用file://協(xié)議直接打開頁面、本地靜態(tài)服務(wù)器沒有設(shè)置Cross-Origin-Embedder-Policy和Cross-Origin-Opener-Policy響應(yīng)頭都會(huì)導(dǎo)致這個(gè)結(jié)果。解決本地開發(fā)時(shí)用 HTTP 服務(wù)器并設(shè)置響應(yīng)頭。常見的做法是用一個(gè)簡(jiǎn)單的 Node.js 中間件給所有靜態(tài)資源加響應(yīng)頭。// 本地開發(fā)服務(wù)器示例為所有請(qǐng)求注入跨域隔離響應(yīng)頭 const express require(express); const app express(); app.use((req, res, next) { res.setHeader(Cross-Origin-Embedder-Policy, require-corp); res.setHeader(Cross-Origin-Opener-Policy, same-origin); next(); }); app.use(express.static(public)); app.listen(3000, () console.log(Server running at http://localhost:3000));邏輯說明Cross-Origin-Embedder-Policy: require-corp告訴瀏覽器頁面只能加載同源或明確聲明了跨域允許的資源Cross-Origin-Opener-Policy: same-origin確保頁面打開的窗口與原頁面共享同一個(gè)瀏覽上下文組兩者配合才滿足 SharedArrayBuffer 的啟用條件。注意所有資源包括 WASM 文件和 Worker 腳本都必須通過這個(gè)服務(wù)器訪問否則會(huì)因?yàn)?CORP 策略而加載失敗。5.2 WASM 文件 404 或 MIME 類型錯(cuò)誤現(xiàn)象控制臺(tái)報(bào)Failed to fetch檢查網(wǎng)絡(luò)面板發(fā)現(xiàn)ffmpeg-core.wasm返回 404或者返回了但不被識(shí)別。原因coreURL和wasmURL路徑寫錯(cuò)或者靜態(tài)服務(wù)器不認(rèn)識(shí).wasm文件的 MIME 類型。部分開發(fā)服務(wù)器默認(rèn)不處理.wasm擴(kuò)展名會(huì)把它當(dāng)普通文本發(fā)送。解決確認(rèn)路徑指向正確并確保服務(wù)器對(duì).wasm響應(yīng)Content-Type: application/wasm。如果你用的是 nginx在配置里加一行types { application/wasm wasm; }如果用的是 webpack-dev-server在devServer里配置headers。路徑問題排查順序是先看網(wǎng)絡(luò)請(qǐng)求的實(shí)際 URL再對(duì)照靜態(tài)目錄結(jié)構(gòu)不要在代碼里反復(fù)猜。5.3 worker 腳本加載失敗或跨域受限現(xiàn)象初始化時(shí)報(bào)worker is not defined或者 Worker 啟動(dòng)后沒有任何輸出。原因workerURL指向的 Worker 文件路徑不對(duì)或者該腳本沒有正確的 CORS 響應(yīng)頭。Worker 腳本和頁面必須同源否則會(huì)被瀏覽器攔截。有些 CDN 資源可以通過crossorigin屬性加載圖片和腳本但 Worker 的加載規(guī)則更嚴(yán)格。解決將 Worker 腳本放在與頁面同源的靜態(tài)目錄中避免從第三方 CDN 直接引用。如果一定要用 CDN需要確認(rèn)該 CDN 對(duì) Worker 加載場(chǎng)景的兼容性很多 CDN 的響應(yīng)頭是給腳本資源用的并不滿足 Worker 的安全要求。5.4 轉(zhuǎn)碼大文件導(dǎo)致內(nèi)存溢出或頁面崩潰現(xiàn)象幾百 MB 的視頻文件執(zhí)行轉(zhuǎn)碼時(shí)頁面標(biāo)簽頁直接白屏或者控制臺(tái)報(bào)Out of memory。原因ffmpeg.js 會(huì)把輸入文件完整讀入 WASM 共享內(nèi)存輸出文件也存放在同一塊內(nèi)存里。文件越大內(nèi)存占用越高瀏覽器單標(biāo)簽頁的內(nèi)存上限一般在 2-4GB 之間超出后唯一結(jié)果是崩潰。解決限制輸入文件大小加上前端的文件選擇過濾。另一個(gè)技巧是在轉(zhuǎn)碼前先用-ss和-t截取片段只處理需要的部分而不是整個(gè)文件。這種做法在有預(yù)覽需求的場(chǎng)景下尤其實(shí)用既能快速出圖出視頻又能顯著降低內(nèi)存壓力。5.5 轉(zhuǎn)碼過程沒有日志輸出不知道執(zhí)行到哪一步現(xiàn)象exec執(zhí)行后一切靜悄悄看不到任何過程信息只能干等。原因ffmpeg.js 的日志事件默認(rèn)可能被忽略或者你在初始化時(shí)沒有綁定log事件處理器。有些版本需要顯式開啟日志輸出才能看到 stderr 的信息流。解決在初始化之后立即綁定log事件或者在exec之前調(diào)用一個(gè)事件綁定函數(shù)。日志信息對(duì)排查參數(shù)錯(cuò)誤和濾鏡語法錯(cuò)誤非常關(guān)鍵FFmpeg 的報(bào)錯(cuò)信息全部走 stderr看不到它等于瞎折騰。5.6 高分辨率視頻縮放后輸出色偏或綠屏現(xiàn)象輸出視頻畫面整體發(fā)綠或出現(xiàn)大量馬賽克尤其在 H.264 轉(zhuǎn) H.264 的場(chǎng)景中高頻出現(xiàn)。原因常見原因是像素格式不匹配輸入視頻是yuv420p輸出端指定的編碼器預(yù)設(shè)了不同的像素格式或者濾鏡鏈里缺少像素格式轉(zhuǎn)換環(huán)節(jié)。解決在濾鏡鏈末尾顯式加上formatyuv420p強(qiáng)制統(tǒng)一輸出格式。這個(gè)問題在轉(zhuǎn) MP4 時(shí)尤其典型瀏覽器普遍對(duì) H.264 編碼和yuv420p像素格式有硬性要求漏掉這一步大概率會(huì)出現(xiàn)花屏或綠屏。await ffmpeg.exec([ -i, input.mp4, -vf, scale1280:-2,formatyuv420p, -c:v, libx264, -preset, veryfast, -c:a, aac, output.mp4 ]);邏輯說明-vf里最后一段formatyuv420p強(qiáng)制輸出像素格式確保瀏覽器可以直接解碼渲染。-preset veryfast是編碼速度和壓縮率的折中方案瀏覽器端建議使用比slow快很多體積差異在短片段里幾乎感知不到。參數(shù)說明libx264是 FFmpeg 內(nèi)置的 H.264 編碼器兼容性最廣aac是音頻編碼MP4 容器標(biāo)配。6. 進(jìn)階用法用多線程參數(shù)和批處理榨干瀏覽器性能既然環(huán)境允許 SharedArrayBuffer那就要把多線程的優(yōu)勢(shì)發(fā)揮出來。FFmpeg 的 H.264 和 VP9 編碼器都支持-threads參數(shù)但瀏覽器端的線程數(shù)不是隨便設(shè)定的。常見的做法是先用硬件并發(fā)數(shù)作為初始值再根據(jù)編碼器類型微調(diào)。Chrome 桌面版通常能拿到 8 到 16 個(gè)邏輯核心但 WASM 多線程并不是每個(gè)線程都能吃滿 CPU實(shí)測(cè)下來 4 線程到 6 線程是收益最明顯的區(qū)間超過 8 線程之后提升幅度急劇收窄反而增加線程切換開銷。const coreCount navigator.hardwareConcurrency || 4; const threadCount Math.min(coreCount, 6); await ffmpeg.exec([ -i, input.mp4, -c:v, libx264, -preset, veryfast, -threads, String(threadCount), -c:a, copy, output.mp4 ]);邏輯說明navigator.hardwareConcurrency返回瀏覽器可用的邏輯核心數(shù)但你不能直接用它做線程數(shù)因?yàn)闉g覽器本身和其他標(biāo)簽頁也在占用 CPU。取 min(核心數(shù), 6) 是兼顧穩(wěn)定性和速度的經(jīng)驗(yàn)值。參數(shù)說明-c:a copy表示音頻不重新編碼直接復(fù)制到輸出容器這樣能省下大量編碼時(shí)間前提是輸入和輸出的音頻格式兼容MP4 容器內(nèi)包含 AAC 音頻時(shí)可以直接復(fù)制。批處理場(chǎng)景是另一個(gè)能明顯提升體驗(yàn)的用法。如果你要處理一個(gè)文件夾里的多個(gè)視頻不能簡(jiǎn)單地用 for 循環(huán)逐個(gè)執(zhí)行因?yàn)槊總€(gè)exec調(diào)用都會(huì)傳遞全部?jī)?nèi)存上下文。正確做法是串行隊(duì)列前一個(gè)任務(wù)完成后立即清理內(nèi)存再執(zhí)行下一個(gè)。下面的代碼展示了一個(gè)簡(jiǎn)單的隊(duì)列控制器const inputFiles [file1, file2, file3]; // 用戶選擇的多個(gè)文件 const results []; for (const file of inputFiles) { const inputName input_${Date.now()}.mp4; const outputName output_${Date.now()}.webm; await ffmpeg.writeFile(inputName, await fetchFile(file)); await ffmpeg.exec([-i, inputName, -c:v, libvpx-vp9, -b:v, 1M, outputName]); const outputData await ffmpeg.readFile(outputName); results.push(new Blob([outputData.buffer], { type: video/webm })); await ffmpeg.deleteFile(inputName); await ffmpeg.deleteFile(outputName); } console.log(批處理完成共生成, results.length, 個(gè)文件);邏輯說明循環(huán)中每個(gè)文件使用獨(dú)立的時(shí)間戳命名避免多個(gè)輸入文件寫入虛擬文件系統(tǒng)時(shí)路徑?jīng)_突。每個(gè)文件處理完成后立即刪除輸入和輸出把 WASM 內(nèi)存占用控制在單個(gè)文件級(jí)別。參數(shù)說明時(shí)間戳命名的作用是防止第二次循環(huán)執(zhí)行writeFile時(shí)因?yàn)槲募汛嬖诙鴪?bào)錯(cuò)這是批處理任務(wù)最容易踩的坑文件路徑必須唯一。Date.now()在循環(huán)中連續(xù)調(diào)用會(huì)有重復(fù)風(fēng)險(xiǎn)極端情況下可以追加循環(huán)索引做后綴。最后分享一個(gè)性能對(duì)比的參考維度同樣一個(gè) 30 秒 1080p 視頻轉(zhuǎn) 480p WebM本地 FFmpeg 進(jìn)程大約耗時(shí) 8 秒而 ffmpeg.js 在 Chrome 上啟用 4 線程后大約耗時(shí) 15 到 20 秒。瀏覽器端并不是不能做轉(zhuǎn)碼而是它更適合 2 到 5 分鐘內(nèi)的短視頻長(zhǎng)視頻或大批量任務(wù)還是建議交給后端。從那以后我每次做選型評(píng)估都會(huì)先把「文件大小上限」和「轉(zhuǎn)碼時(shí)長(zhǎng)上限」兩個(gè)閾值定下來再?zèng)Q定用 ffmpeg.js 還是后端方案。這套判斷標(biāo)準(zhǔn)幫我避免了好幾次本來性能堪憂的架構(gòu)設(shè)計(jì)希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
а√天堂资源官网在线资源| 嫩草一区二区在线观看| 免费一级特黄特色大片在线观看看 | 日本精品人妻少妇一区二区| 丝袜美腿av女优在线| 久久精品国产免费观看99| 欧美后进式| 日本五区不卡| 欧美啪啪啪91| 97九色人妻| 国产蜜臀精品一区二区尤物| 国产精品午夜精品| A片 AV一级在线播放观看免费 | 日韩免费av片高清无码| 第四色亚洲色图| 中文乱码字幕观看视频| 9/A片| 亚洲网站一区二区在线| 日韩99神马视频片| 99re公开精品免费视频| 天天影视之亚洲综合网| 五月丁香啪啪| 综合影院永久入口国产| yazhououmeizongya| 婷婷日韩一区二区三区中文字幕在线| 日韩人妻一区二区精品| 精品一区二区2| 国产福利影视| 亚洲91网| 天堂精品| 九九热免费国产视频婷婷伊人五月| 亚洲情欲| www.AV有限公司一区| 黄色电影观看久久9| 91色色综合| 青娱乐国产精品| 蜜桃臀一区二区三区久久| 无套内射性感少妇视频| 日本高清免费一本视频在线观看| 日韩淫色网| 免费啪啪啪网站18岁| 超碰导航97| 五月丁香综合激情| 日本αv| 欧美亚州色的图| 六月激情婷婷| 五月天婷婷在线看| 亚洲一二三四区在线免费看视频| 丁香激情网| 色婷婷综合久久久久中文一区二区| 99e久久国产精品| 毛片麻豆91糖心精品毛情片| 九九热免费国产视频婷婷伊人| 国产高清视频无码在线| 美女诱惑一区| ji熟女.com| 五月丁香啪| av一区二区三区不卡| 偷拍亚洲情色| 75大香蕉| 久久久久精| 日本不卡高清视频| 中文字幕在线免费观看2| 日日干男人的天堂| 丰满少妇人妻久久久久久| AV网站高清无码在线观看| 易易A毛视频| 精品免费1| 福利社区午夜一区二区| 自拍偷拍国产欧美日韩韩| 超碰综合97在线| 九区国产| 91国产操逼视频| 日日黄色三级网站| 欧美在线色图| 大香蕉在线视频15| 精品久久久久,69国产成人精| 岛国视频免费在线观看| 久久91精品国产9丨久久分亭| 人妻嗯啊啊在线播放| 日本爽爽爽爽爽爽免费视频| 97欧美日韩| 加勒比久久av| 久久久国产精品亚洲精品| 亚洲熟妇乱女区二区三区| 一区二区三区欧美激情| 中日韩欧美精品无码AⅤ一区二区| 日本视频在线中文字幕| 最新日本中文字幕| 国产偷人伦激情在线观看| 久久黄黄黄| 女人天堂网| 四虎在线播放| 激情婷婷丁香网| 九九九草| 日本久久久久久久久久| 伊人九九| 亚洲欧美另类激情小说| 亚洲精品九九九| 精品免费成人久久| 精品视频一区二区| 天天色综合影视网| 97国产精品一区二区传媒公司| 大香蕉中文网| 家庭乱伦麻豆| 麻豆视频国产一区二区| 在线综合 亚洲 欧美中文字幕| 私人尤物在线精品不卡| 强被迫伦姧在线观看无码网站| 蜜臀一区二区三区在线| 国产精品久久久久久久电影渣男| 少妇一级婬片免费放一级a性色.| 思思热在线cao| 欧美日韩国产黄色片| 国产精品熟女九色九色蜜臀| 色噜噜精品一区二区三| 大香网伊人久久综合| 91五月天| 欧美se亚洲| 91麻豆天美传媒HD| 一二视频神马久久传媒| AV色女综合| 蜜臀99久久精品久久久懂爱| 97公开久久| 97精品国产手机| 狠狠躁日日躁夜夜躁A| 超碰偷拍| 亚洲最新Av| 色欲Av人妻精品一区二| 美國A片| av资源在线播放天堂| 天天爽天天操| 啊啊啊啊二区好大| 国产嫩草精品A88AV| 九九九九热| 精品亚洲国产成人av网站| 久久久久久AⅤ无码免费肉站| 激情开心五月天| 欧美一区二区在线资源| 日韩久久超碰色| 精品四五区| 欧美日韩国第一区| 中文一区二区| 中文字幕在线免费观看2| 欧洲亚洲国产综合在线| 久久久五月天| 久久精9| 高清无码91| 欧美18老人禁| 韩国黄色片精品久久久| 91色图片| 看免费的黄片| 麻豆2区1区天美| 伊人玖玖网| 欧美姓爱综合网| 插穴性爱视频在线观看| 欧美专利1区2区3区4区5区免费| 亚洲第一精品在线视频| 99热精品在线在线| AV久日| 人人人摸人人| 欧亚久久偷拍视频| 日本一区二区中文字幕久久| 91国产精品在线看| 午夜精品久久久久久久99| 色牛aV| 激情五月婷| 黄资源| AV九九| 999亚洲国产视频| 日韩av性爱在线播放| 人人操 欧美| 丁香久久| 综合第一页| 九九九九九九精品| 欧美成人一级免费电影| 狠狠躁天天躁日日躁| 91精品人妻一区二区三区蜜桃| 久久久精品视频免费观看| 久草精品国产蜜臀| 成人自拍三级在线观看| 日韩99神马视频片| 很黄很色的视频在线观看| 一区二区三区国产精产| 少妇综合网| 25国产精品免费观看| 国产精品高朝久久久久久久| 黄色大香焦1级‘′‘| 一区二区三区无卡视频在线观看| 日韩精品在线放| 国产人妻精品久久久一区二区三区 | 久久同城AV| 亚洲精品自拍| 夜夜高潮夜夜爽高清视频一| 黄色香蕉视频网站一区| 一区麻豆 高清中文字幕| 久草在线| 伊人影院在线理论播放| 女人精品内射国产99| 中文字幕高清20页视频| 国产婷婷综合在线观看| 91高跟美女在线播放| 日韩免费簧片| 330dv亚洲成年视频网| 国产对白刺激视频| 97国产综合欧美| 日韩欧美俄罗斯A片| 色婷婷一区二区三区久久午夜| 18禁免费视频| 97久久久久| 久久久久久亚洲精品不卡人乳| 亚欧美色| 夜夜久久| 探花激情视频| 男女国产精品| 97视频620| 欧美午夜一区二区三区| 亚洲丝袜诱惑| 男人的天堂久久狠| 国产后入精品| 精品国产无码中文| 91精品国| 佐山爱中文字幕| 综合免费无码中文| 日本久久女同性恋视频| 亚洲天堂99| 人妻熟女一区二区三区视频| 97高清啪啪| 天堂中文日本在线观看| 中文字幕一区二区三区50路| 国产高清在线自在拍69| 成人贴图日韩欧美| 手机在线视频国内精品| 日韩无码极品| 欧美草草| 亚洲 图片 欧美 色图| av无码精品久久久久| 可乐操在线| 欧美天天插| 日本东京热加勒比久久| 日韩精品一区二区人人人| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 黄色二级片网站| 搡老熟女免费视频| 亚洲图片91| 午夜天堂精品久久| 在线只有精品| 99在线无码精品秘 入口黑人| 久久久精精精| 尤物视频网 刘玥| 日本女厕偷拍| 曰韩精品九九无码| 色婷五月| 欧美性巨大╳╳╳╳╳高跟鞋| 91观看 国产白丝| 亚州色站 日韩电影| 婷婷亚洲五月***久久| 一区黄二区黄| 亚洲色五月| 18禁免费视频| 91精品人妻偷情| 91亚洲网站| 老司机免费视频在线91| 国产农村妇女精品一二区| 六月激情婷婷| 亚洲国产一区二区三区四区国产| 日韩精品碰碰| 丰满岳乱妇一区二区三区| 91在线免费精品视频| 999色欧美中文字幕| 九九热在线精品视频| 亚洲中文字幕97久久精品少妇 | 极品另类| 思思久热在线精品66| 亚洲日精品| 肉丝无码中文高清| 久久久少妇诱惑精品视频| 91爱看| 精品视频97| 手机av天堂久久久久| 久久久久人妻| 清柠毛片| 一二三四免费视频| 东京热激情视频一二三区| 天天天天天干夜夜夜夜夜操| 把腿张开老子CAO烂你| 啪啪视频亚洲第一| 熟女五十路一区二区三| 日韩性爱1级片视频| 92性色国产午夜福利在线661 | 欧美成人贴图| 蜜臀久久99精品久久久久久成人小说 | 91啪9色| 中文字暮97| 成人AV素股で擦久久| 荡小穴在线观看| 欧美色偷拍| 午夜情侣自拍网站| 91艹B视频| 亚洲午夜av| 麻豆国产97在线| 中文区中文字幕免费看| 97亚洲色图| 综合 亚洲 欧美| 综合久久9| 亚洲性天堂| 国产精品片| wwwcaobibi| 老鸭窝亚洲毛片| 精品91摸| 国产性爱欧美性爱在线| 亚洲熟妇综合久久久久久| 加勒比av官网在线| 蜜区区视频79 | 国产又黄又爽又刺激久久久久久| 性欧美体内射精| 日语五十路和六十路亚洲国产精品| 91综合熟女| 国产精品com| 国产亚洲欧美每日在线| 欧美精品久久久久久久久88| www.色五月| 亚洲青青青视频在线| 大香蕉在线免| 黄页| 熟女精品日韩一区二区三区| 亚州 综合 色图| 亚州性色| 夜夜天天噜狠狠爱2021| 91视频国品一二三区| 91欧美成人色站| 国产精品午夜福利视频| 国产精品久久久久9999小说| 亚洲春色一区二区三区| 人妻一区视频| 婷婷伊人綜合中文字幕| 亚洲少妇色图自慰直播| 亚洲精品国产拍免费91在线| 欧美精品成人在线播放| 校园春色综合| 91n免费处女| 欧美AB在线| 午夜超爽| 日韩精品一二三四| 日本亚欧爱爱| 51久久夜色精品国产麻豆| 黄片在线免费在线观看| 久久97资源 网| 丝袜视频网国产90| 日本高清视频xxxx| 情色AV电影| 天天日美女的B| 69精品| 人人摸人人摸人人干| 亚洲一区二区三区久久 亚洲一区二区| 精品久久久不卡一区二区| 天天透伊人| 99久久9| 精品久久久亚洲AV成人网站| 免费国产电影一区二区| 久久国产精品一级二级三级| 国产91专区| 强奸乱伦免费网站| 日韩/97| 亚洲欧美日韩不卡人妻| 一区三区啪啪| 99日免费视频中文字幕| 在线国产福利网址导航| 顶级少妇BT天堂| 中文字幕丝袜| 婷婷综合在线| 97碰碰色| 人妻激情另类| 日夜伊人网| 亚洲天堂久久| 风韵犹存大大大大香蕉| 操逼网站视频漫画国产| 九九九九九九九| 日本欧美一区二区三区免费| 97欧美色资源| 国产精品一区av在线| 欧美日韩人人精品| a片偷拍视频| 九一综合精品视品av| 激情一区二区| 婷婷五月天补不补| 少妇一级无码精品| 欧美熟妇人体| 国产宅男宅女在线观看| 天天日天天操VV| 香蕉热人人精品| 一区二区三区蜜桃成人撸久久东京热 | 国产1769在线| 99热婷婷一区二区三| 中日高清无码操逼视频| 日韩91网站| 日韩免费人妻色情网站| 在线播放成人高清免费视频| 先锋音影AV| 一区二区三区免费岛国片| 超碰午夜| 女优免费一区二区永久| 啊啊啊啊啊操我视频| 另类亚洲一区二区三区| 加勒比无码毛片| 一区中文字幕二区日韩| 亚洲第一狼人丝袜美女另类| 一本大道久| 无码国产精品午夜不卡(| 91国产丝袜白虎| 五月综合色| 亚洲欧美日韩中文播放| 精品网站99999| 1禁看欧美黄片免费看| 欧美亚洲在线| 久久久噜噜噜久久久| 超碰无码加勒比| 天天操天天日青青草超碰av| 日韩欧美视频青青| 国产三级资源在线观看| 天堂性色| 热热热热日日漂亮永久永久国产日| 成人免费在线网站| 精品久| 蜜桃色院一区久久| 超碰精品在线| 中文字幕一二区二三区人妻专区| 热G综合热G中文| 美女人妻色网站| 日日操丁香五月天| 国产农村妇女精品| 97资源站久久| 夜夜操老骚逼视频网站| 免费人成?大片在线播放| 色激情综合网站| 天欧美在线| 精品人妻1237| 伊人色综合网电影| 看大黄色大片原件| 97超碰站| 亚洲女优有码无码高清| 成人片视频| Av色五月| 婷婷色五月激情| 国产亚洲精品无码三区| 欧成人精品H无码| 97精品在线| 玖玖爱综合| 色婷婷电影网| 四虎影院成年人片| 人人操人人操草草| 不卡av在线中文字幕| 91丝袜美女视频| 色哟哟精品1精品2| 成人无码在线超碰网| 国产综合久久久麻桃个| 天欧美在线| 亚洲欧洲无码97久久精品| 青青操青娱乐| 99亚洲精品| 日韩精品永久在线观看| 天堂а√在线最新版在线 | 亚洲欧美综合色| 久热99| 午夜精品探花| 久久九九国产精品| 九九探花视频在线观看| 婷婷丁香五月天综合东京热| 脫衣舞一区二区三区| 麻豆成人影音在线| 日韩一级欧美一级国产一级台湾| 天堂亚洲精品| 精品大全99999| 精品二999| 精品网站99999| 91色图片| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 搡老女人老91妇女老熟女| 91欧美www| 丰满熟妇大乳做爰| 亚州欧美另类| 超碰诱惑| 91亚洲情色| 久久系列| 日韩av无码网站| 亚洲欧美日韩中文播放| 99久久亚洲精品无码毛片潘甜甜 | 天天操熟妇| 中文无线日韩一区| 蜜区区视频79| 日日摸日日碰夜夜爽视频| 春色91| 久久 精品| 久久久亚洲熟妇熟女| 精品一区二区三区国产| 国产美女口爆吞精视频| 啪啪视频亚洲第一| 亚洲AV无码国产精品久久久久| 日韩午夜精品一区二区三区电影| 日韩999| 欧美熟女少妇| 天天综合网在线| 亚洲色图 综合| 久99在线免费观看视频| 亚洲欧美综合| 国产一区二区三区,在线观看观看| 性色av一区二区| 国产热av| 91在线欧美| 超碰国产精品久| 国产精品午夜高潮呻吟久久av| 亚洲色综合| 久久色激情一区二区三区| 日韩欧美水蜜桃人妻| 蜜臀99久久精品久久久久久| 九九九九九九视频免费| 中文字幕一区二区在线日韩精品| 国产亚洲国产超碰| 欧美精品丝袜久久久中文字幕| 97AV在线免费观看| 99re视频这里只有精品| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 日韩在线性爱免费视频| 激情丁香五月| 制服中出中文人人精品| 四方色播| 国产 无码 一区二区| 中文字幕在线24| 黄日韩| 欧洲精品一级二级精品综合视频综合 | 99精品在线| 国产色产精品在线观看| 日韩一级欧美一级在线观看| 精爱久久| 亚洲色电影在线| 国模不卡| 成人色女网| 91老司机精品| 亚洲欧美在线观看2021 | 亚洲精品男人的天堂| 麻豆国产成人精品| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 欧美激情 亚洲色图| 影音先锋新男人| 亚洲不雅视频1区二区| 不卡av在线中文字幕| 五月天婷婷欧美三区| 欧美丝袜美女电影一二三四区| 色悠久| 99久久综合网| 亚洲久久东京热一二三四五区视频| AAAA级日本片免费视频| 91蜜桃婷婷狠狠久久综合9色| 加勒比海成人视频网| 日本中文熟女视频| 五月丁香啪啪啪| 激情视频图片| 国产亲戚伦亲在线| 激情四射五月天| 无码免费在线观看黄色片| 蜜桃色色网站视频三区| 国产999精品久久久| 国产女性无套 免费观看| av72网| 国产美女口爆吞精视频| 亚洲欧美性生活| 欧美性天天| 裸体美女国产免费久久久网站| 久久久久久99999国产精品| 国产精品嫩草影院免费| 狠综合网| 波多野42部无码喷潮在线观看| 亚洲丝袜色图| 欧美18 在线观看| 日日干日日操五月天伦理视频| 91人妻少妇| 99少妇精品视频| 玖玖久久久| caorenqi shipin| 日韩精品-原创伙伴| 激情五月综合网| 久久久精精精| 精品妇女一区二区三区| 91网九色蝌蚪操熟女| 欧美无圣光在线| 国产精品福利视频播放| 男人的天堂2000| 黄片免费久久久久久久| 后入日本1234| 激情五月天婷婷| 国产一级高清免费观看| 在线 亚洲 网爆 自拍| 亚洲国产欧美一区二区潘金莲| 亚洲欧美setu| hd成人一区二区在线| 高清国产av无码| 人妻精品一区二区| 蜜桃久久久久久久| 一级黄色性爱A级片| 人妻天天爽夜夜爽2| 91中文在线| 99无码狠狠久久| av麻豆啪啪| 色香色欲天天综合网天天来吧 | 乱老熟女一区二区三区| 亚洲成人性爱在线观看| 91高潮| 免费网站观看www在线观| 日本精品无码三级网站| 国产精品农村妇女| 人妻一区久久二区三区色播| 国产福利小视频高清在线观看| 亚洲AV无码久久精品蜜桃小说| 国产在线激情视频| 美女91网址| 一区二区三区网站日日骚| 久久无码成人| 96久久久久| 天天干天天中出av| 日日日日日| 国产一区二区在线播放量| 欧美激情一| 国产日韩精品一区二区三区| 国产AV久久野战精品| 91制服丝袜中文字幕| 天美传媒Av在线| 开心婷婷五月| 成人三一级一片aaa| 热热色中文无码| 神马久久啊啊| 欧美在线官网| 国产亚州高清国产拍精| yaouchengrenav| 4tube欧美女厕所| 伊人久久亚洲色欲综合网站| 91殴美大片| 69国产对白刺激| 伊人9| 极品内射| 99少妇精品视频| 另类小色呦| 色哟哟综合| 无码人妻一区二区三区四区老鸭窝| 大香蕉宅男伊人| 超碰97欧美在线| 欧美在线播放aaaa| 欧美经典一区二区三区| 国产又粗又大硬免费色网视频| 色婷婷日韩精品一区二区三区 | 性在久久久久久| 激情黄色片在线观看| 亚洲骚逼少妇| 日韩电影免费网站麻豆视频| 久久宗合亚洲| 国产高清不卡视频| 国产精品乱人伊人网| 久久久婷| 色五月婷婷中文字幕| 美女操逼福利视频| 国产性爱在线视频一区二区| 色哟哟AⅤ| 国产捆绑一区| 曰韩中文人妻视频| 丝袜美腿av女优在线| 亚洲 欧美 日本 国内 首页| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 色欲无码人妻日韩欧美精品| 91国产操逼视频| 日本视频在线中文字幕| 天天干人人看综合| 91久久| 天天看天天日| 午夜性刺激视频免费观看| 97视频免费播放| 青草精品视频日本久久久久网站在线| 亚洲天堂资源在线| 诱惑网综合| 91亚洲欧洲| 91搡老女人老妇女老熟女歌词翻译| 国产精品9999| 蜜臀久久99精品久久久| 91肉片| 日本国产亚洲一区在线观看| 欧美一二三级精品在线| 亚洲欧美日韩二区视频| 综合免费无码中文| 91天堂色男人的天堂| 中文字幕精品资源在线| 婷婷综合久久| 啊啊啊啊视频免费| 97超久碰| 嫩草黄页| 久操国产在线| 精品日韩人妻视频| 岛国黄| 欧美中出1| 国产少妇肉丝在线观看| 极品白嫩福利在线| 欧美乱妇狂野欧美在线视频| 亚洲在钱| 中文久久久| 中文字幕AV乱伦| 青娱乐久久艹| 嗯嗯啊中文字幕| 亚洲影院小综合| 999九九九九国产动| 久久精品电影在线| 国产亚洲色停停久久99精品91| 免费看黄视频亚洲网站| 日韩精品一区的| 香一区二区三区| 欧美男人亚洲天堂| 久9精品| 超碰色男人操熟女| 色吧综合网| 亚洲欧美另类少妇精品| 玖日综合网| J?P?NESEHD熟女熟妇伦| 看黄片视频免费| 97九色人妻| 中国的操老妇女| 天天噜| 国产精品69人妻无码久久久| 色婷婷激情| 麻豆激情综合| 亚洲资源站| 超碰成人最新最好看| 狼天天狼天天大香蕉| 人人操人人射人人干| 亚洲av青草久久一区二区| av在线一区二区三区| 91原创在线观看| 欧美高清在线| 自拍偷拍国产欧美日韩韩| 日本久久精品| 欧美色图 人妻| 性色亚洲| 五月婷婷基地| 蜜桃视频啊啊啊啊| 久久超碰国产一区二区三区| 超碰在线国产| 小骚逼被操的爽不爽| 97爱爱| 五月婷婷激情综合| 操死我了啊啊啊| 无码精品久久| 97 亚洲 日韩 欧美 在线| 人妻激情视频| 亚洲欧综合另类无码一区| 青青草亚洲一区| 国内一级精品| 911粉嫩人妻| 香蕉免费一区二区三区不读| 国产精品一二三区18| 97色伦欧美| 97美日韩视频| 超碰在线国产| 中日韩久久久免费看| 国产成人www免费人成看片| 久久熟妇五十路一区| 亚洲免费日韩在线一区二区| 啊啊啊啊操死我| 九九黄色视频在线观看| 国产精品久久久久999| 超碰人人操97碰| 亚洲AV资源| 91欧美大片| 亚洲日韩肥臀视频在线观看| 日少妇视频| 狠狠久久亚洲欧美专区| 中文字幕激情小说| 丁香婷婷啪啪| 欧美亚洲天天| 91狠狠色丁香婷婷综合久久| 天天夜夜rb| 久久九九综合| 国产97色在线| 色妹子A V| 97色碰| 热天堂一区二区| 欧美国产精品久久九九| 久久久久久亚洲精品中文字幕人妻| 九九九九九精品视频| 亚洲激情久久| 看全色黄大色大片免费视频| 久热色情精品| 囯戸精品高潮呻吟旡码| 试看福利| 91小视频| 麻豆91熟妇人妻中文字幕茄子 | 国产精品人妻免费精品| 97大色网| 乳欲人妻办公室奶水| 大香蕉92| 五月丁香影院| 黄色成人网久久久久久| 成人黄页| 日本三级日本三级99| 丰满人妻-区二区三区免费看 | 97久久精品亚洲| 亚洲欧洲成人在线电影| 在线A日本| 国内精品久久人妻性色av| 色月天AV导航| 欧美综合娱乐久久| 夫妻AV网站| 水野优香在线观看| 亚洲欧美国产中文视频| 999 久久久| 99热婷婷| 国产v片在线免费观看| 欧美激情久| 国产精品久久久三级无码| 青青在线视频日韩欧美| 欧美亚洲日韩16色| 色婷婷综合网站| 国产偷人伦激情在线观看| 日韩天天本| 综合色久| 在线播放免费av福利片| 成人区人妻精品一| 在线综合 亚洲 欧美中文字幕| 逼逼逼逼操操操操操操操操操午夜剧场| 天堂av最新电影网| 国产精品肉丝自拍| 亚洲AV无码成人精品久久| 极品白嫩美少妇在地板上位骑射淫水泛滥| 久草毛片电影怡| 26uuu国产| 一起草欧美| 亚洲三级。日韩三级| 国内操逼视频二区| 九九九九久久久| 日本精品无码三级网站| 女性91网站| 欧美特黄视频网站| 青青草十区九区爱夜| 丁香五月性| 亚洲色系另类精品国产| 天天伊人| 中文字幕精品三级久久久| 无码一区二区三区四区五区六区七区八区九区十区视频 | 天天摸,夜夜摸| 亚洲 日韩 丝袜 熟女 变态| 白丝一区| 插插综合网天天影视网| 美骚妇av高清在线| 欧美少妇大量自拍视频在线观看| 视频分类 国内精品| 亚洲好看强奸乱伦| 久久永久无码人妻视频| 日韩大香蕉AV影片| 大香蕉日亚洲日本亚大 | 中文幕97| 欧色综合| 日本一区二区三区精品| 99色色网| 日韩免费性爱视频在线观看| 国产亚洲中文不卡二区| 国产精品视频91久久| 天天综合-91入口| 国产精品一区二区三区在线| 久久久久96| 人人操人人射人人干| 97干天天| 超碰在线人妻不卡| 九九玖玖精品| 骚货| 麻豆天美电影一区二区| 99操| 五月花婷婷| 国产激情视频在线观看| 国产精品视频精品一二| 日本国产高清色www视频在线| 久久性爱精品一区| 国产精品高清2021在线| 国产无码久久高清| 国产亚洲福利第一页丝袜| 青青色在线观看| 无码人妻一区二区三区免费九色| 96麻豆精品一区二区三区| 99rre在线精品99re8| 国产搭汕a级片| 在线视频资源| 4虎在线观看| 久夜视频| 成人精品在线免费视频| 国产精品内射婷婷一级二| 国产高清成人免费视频| 国产 日韩 欧美一区| 韩国三级一线观看久| 日韩免费福利在线观看| 国内精品a| 综合五月婷婷亚洲一区| 人人摸人人摸人人干| 很很热性爱视频| 无码少妇精品一区二区60岁老人| 亚洲超碰在线| 999久久久精品国产| 色综合一区二区三巨| 日本伦理一区二区| 日韩钢筋无码高清啾啾啾| 国产视频第2页| 久肏视频字幕| 一本久道久久综合狠狠爱一密臀精| 亚洲日韩电影| 美日韩男女操屄视频| 成人麻豆av电影网站| 国产亚州精品美女久久久免费| 国产无套粉嫩白浆在| 人妻激情偷乱视频一区二区三区 | 亚洲少妇视频| 操婢日韩| 欧美精品激情| 亚洲成人激情小说视频| 青青草AV色| 久久精品人妻一区二区| 九草在线大香蕉| 殴美综合色88| 午夜精品99久久久久传媒| 在线只有精品| 中文字幕第2页| 精品国产99| 久艾草在线精品视频在线观看| 老熟女阿 国产91| 97国产精品久久久久| 久久99精品国产| 蜜桃不卡一区二区| 亚洲熟女综合| 四虎AV无码| 欧美日韩资源在线| 人妻一区二区三区| 人妻在线中出视频| 久久久亚洲精品电影免费看| 91狠| 91蜜臀熟女| 人人色97| 99re3这里只有精品| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 99久久精品无码一区二区| 亚洲精品人妻在线| 日韩一级特黄av毛片| 亚洲va有码在线天堂| 综合免费无码中文| 免费一级毛片在线视频观看| 在线啊v一区| 9久精品| 六九九九| 成人无码专区精品视频| 九九十八精品| 传媒免费一区二区三区| 欧美日韩亚洲电影| 天天舔日美女视频| 无码78| 在线观看一级α片刺激高潮视频| 岛国毛片在线观看免费| 亚洲最新a在线观看| 久操精品网| 久久久com| 精品人妻一区二区乱码一区二区| 97精品中文字幕| 日本在线伊人啪啪| 精品亚洲成人免费在线| 老熟女乱子伦中文字幕一区二区| 亚洲无码一区二区三区三州| 夜夜草网站| 亚洲s在线观看| 婷婷15月天青娱乐| 超碰吊日色| 精品久久久久久中文字幕视频免费 | 人人爱人人操人人性| 激情小说五月天| 天天摸夜夜摸| 精品欧美日韩在线观看| 日日爱99| av日韩国产一区二区| 色综合色色| 久久综合中文国产| 91精品国| 欧美18 在线观看| 国产亚洲日本精品在线| 欧美黑人猛交春色影视大全| 一级黄碟在线看| 神马麻豆福利院| 东京日日夜夜| 中文字幕精品久久久久人妻红杏ⅰ| www.人人摸在线视频| 另类图片欧美激情综合| 亚洲乱熟女一区二区三区大香蕉| 午夜呻吟欧美| aV中文麻| 精品国产一区二区三区香蕉欧美| 九九99久久| 人妻熟妇久草在线| 一级片视频啪啪| 色婷婷狠狠| 天天干人妻| 免费操逼91| 亚洲经典啪啪| 香蕉免费一区二区三区不读| 久操视频在线观看| www九九热| 大香蕉色欲AV| 四虎国产精品永久入口| 99热思思| 很狠操| 一本久道在线综合视频| 久久久噜噜噜久久久| 97视频播放| 人人看人人摸人人色| 欧美亚洲宗合色性图| 国产日韩无码一区二区三区久久区| 五月天色色色| 婷婷探花久久精品一区| 色官网色综合| 黑人与人妻| 国产色综合亚洲色综合吹潮| 啪啪视频mP4| 亚洲激情视频| 亚洲精品男人的天堂| 天天综合91入口| 天天躁日日躁XXXXYY| 大香蕉色欲AV| 3028国产精品| SUV一区二区在线看| 人妻啪| 亚洲欧洲久久天堂| 亚洲乱色熟女一区| 蜜臀AV成人精品蜜臀AV久久| 久操精品| 中文字幕精品人妻丝袜| 激情综合网亚洲| 日韩97视频!在线| 国产精品免费久久久久久久久久| 女同在线视频一区| 天天噜| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 久久性视频| 丝袜美腿丝袜| 五月婷婷影院| 91无遮挡| 精品国产一区二区三区久久久蜜臀 | 99久久9| 久久香蕉国产线看观看亚洲女人 | 狠狠躁伊人中文字幕| 亚洲天堂,男人| 人妻激情偷乱视频一区二区三区 | 三级激情网站| 欧美传媒一区| 亚洲日韩成人性爱视频| 色噜噜人妻av中文字幕| 99色在线| 亚洲啪啪综合?v一区综合精品区| 久久久久久久久久久人妻| 天天视频黄| 色欲色香天天天综合网www-亚洲综合国| 国产传媒午夜理伦精品| 91色色综合| 色婷婷综合网站| 精品亚洲| 97操在线| 六月色色| 国产精品白领在线观看 | 91黑人狂躁丰满熟妇| 狠插 制服 自拍| 亚洲av影音先锋| 夜夜嗨一区二区三区直播内容| 欧美综合骚| 久久久久免费看少妇A片特黄| 爱丝福利| 久久久久久久少妇| www..com操老师| 国产欧美另类久久久精品课程| 怡红院怡春院| 国产亚州精品美女久久久免费| 国产丝袜啪啪| 97 国产一区| 日韩性爱网址| 美日韩男女操屄视频| 久久人妻一区二区三区高清 | 97超碰色色| 色 亚洲 91| 一区二区激情国产熟女| 在线观看无码三级少妇| 欧美自拍网| 国模不卡一本二本三电影| 成视频在线观看免费看| A级片日韩欧美国产欧美视频精选观看| 日韩中文字幕宗合在线| 天天91~综合入口| 乱伦AVxx| 亚洲最新Av| 亚洲丝袜二区在线| 欧美72网页| 亚洲欧美精品一区天堂久久 | 亚洲天堂中文字幕无码男同| 在线国产福利网址导航| 91综合熟女| 啊啊啊啊啊好舒服视频| 无码99| www.色综合| 少妇3P性爱自拍| 亚洲av青草久久一区二区| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 婷婷九月国产| 成人八戒网站| A级片日韩欧美国产欧美视频精选观看 | 色97干| 国产AV线| 淫骚熟女一区二区三区| 老鸭窝亚洲毛片| 色狠狠综合| 黑人无码一区二区| 人人贴人人摸| 肏逼视频日本| 国产日韩久久| 欲综合网| 啊啊啊轻点在线观看| 欧美亚洲涩涩| 懂色AV中文| 天天操女人| 五月丁香色婷婷| 99re国产中文字幕| 国产精品探花在线| 亚欧视频在线| 隔壁邻居波多野结衣中文字幕| 国产操逼网站亚洲一级黄色| 丝袜足交视频| 美女91在线| 青草一区二区| 日本大香蕉综合网红本杳社区| 日韩欧美天堂| 后入福利| 欧美爱国产综合、| 国产精品高朝久久久久久久| 超碰欧美在线欧美| 亚洲资源网| 麻豆精品三区视频| 骚女高跟AV在线| 亚洲资源网| 熟妇激情| 乱色老一区二区三区的观看方式| 中文字幕第23区| 嗯,啊。舔我逼| 任我爽在线视频免费观看 | 99re久久| 91婷婷| 狂操嫩妻视频一区二区三区| 国产精品麻豆成人AV艾秋| 大香蕉97久久| 久9久| 欧美激情片一区二区| 激情综合av| 亚洲综合贴图91| 色九九九九九九| 啊啊啊啊免费视频| 黑人猛交| 亚洲第一免费视频| 成年人一级黄色毛片大全在线观看| 久久精品国产亚洲AV成人直播|