色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合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
返回資訊列表
夜夜国产一区| 精品欧美日韩在线观看| 乱伦熟女专区| 日韩BBN| 国产久久久久久久久一区二区| 日韩97视频| 少妇高潮99p| 国产精品人妻无码久久久互動交流| 熟妇人妻一区二区三区| 极品极品色影院| 精品少妇999| 蜜臀AV成人精品蜜臀| 欧美日韩国产色图在线| 91精品91久久久久77777俄罗斯老妇姓x| 国产精品久久久久久夜夜夜| 日本性爱少妇| 久久久久国产精品久久久| 夜夜嗨AV蜜臀av| 国产懂色精品国产av| 亚洲日韩在线a不卡99精品| 夜草欧美| 久久久久久久久久久久久9999| 午夜福利视频在线一区| 亚洲AV无码黄色强奸| 久操免费电影| 青青草玖玖爱| 97久久久精品| 亚洲人在线成线成人| 国产视频一区二区三区在线免费观看| 人妻无一区二区三区| 久久东京热成人| 蜜桃一区二区三区| 女一区二区| 午夜精品五区| 亚洲第一精品在线视频| 无码 黑人一区二区三区| 亚洲性天堂| 蜜桃精品视频一区| 99国产精品久久久在线播放| 国产性刺激| 真实高潮91| 久久香蕉网| 亚卅熟女乱色| 亚洲少妇综合在线播放| 亚洲制服aⅴ中文字幕| 夜夜嗨免费视频| 深夜国产福利| 精品一区二区成人| 日韩高清黄片| 一起草视频在线| 91九色丰满高潮| 亚洲国产剧情少妇激情| 精品99999久久久久久| 国产情色在线| 欧美女同在线| 蜜臀中文无码午夜| 青青草综合在线| 久久九九热| 久久久精品九| 久热这里只有精品9| 大香蕉综合在线| 夜夜狼人妻| 色爽爽文学| 九九人人操| 99在线精品视频| 992这里有精品| 欧美中文字幕男人天堂久久精品 | 五十路熟女人妻一区二区三区四区五| 韩国三级一线观看久| 在线a亚洲视频播放在线| 99999久久精| 欧美性性性| 国产无码精品无码| 日本日逼高清| 亚洲五月婷| 五月丁香六月激情综合| 乱人伦 国语对白:视频直接看| 最近的最新的中文字幕视频| 久jiu久神马影院| 六月婷激情福利天堂69| 天天舔九色婷婷| 操淫穴亚洲五月丁香| 国产AV线| 国产熟女精品一区二区| 午夜福利av电影在线| 国产av波波国产精品| 国语av最新自产拍在线观看| 亚洲日本韩国极品一区二区| 大象AV在线| 欧美1区二区三区公司| 综合免费无码中文| 麻豆黄四叶草网站| 亚洲国产精品成人久久蜜臀| 两性色网| 欧美情色男人的天堂| 久久人妻无码毛片A片麻豆| 日日躁狠狠躁天天躁精品| 精品少妇高潮久久| 午夜啪| 午夜福利精品| 国产精品制服丝袜中文字幕日韩一区二区三区 | 国产一区二区a毛片| 国产无马视频| 日日橹狠狠爱欧美超碰| 好爽视频在线观看视频| 日韩乱伦视频| 亚洲色性情三级| 精品久操| 太久视频| 操穴国产| 神马久久午夜| 超碰免费在线| 亚洲精品熟妇1区2区3区。| 午夜福利无毒不卡| 殴美日韩m| 好爽视频在线观看视频| 福利在线黄片| 人妻素股| 亚洲无码?第一页| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| 天天综合网日韩| 日本综合久久| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 久久亚洲一区女同性恋中文字幕| 国产精品亚洲天堂网址| 久久久9品一区二区三区| 欧美人妻熟女在线| 亚洲强奸乱伦影视网| 国产有码一区| 性爱网站一区二区| 久艹伊人精品综合在线| 亚洲欧美第一页| 天天看,天天做| 一区二区国产视频在线观看| 久久黄片国产一区二区| 欧美天天综| 91性色| 人妻久久久久久久久久久久久久久| 综合九九| 在线中文字幕极品av| 婷婷另类小说| 成人性爱av| 97色97好| 人人操人人叉人人插人人| 亚熟hd视频在线| 人人看人人插| 欧美人妻中出| 久久久免费一级黄片| 九9热伊人| 久久久久久电影| 久久久久久波多野吉衣高潮| 亚洲高清无毛一区二区| 97欧美精品综合| 精品国产乱码| 大香蕉性欧美| 91网亚洲| 精品人妻一区| 婷婷性网| 人妻在线臀日韩| www.色吧5.com| 青青草在线视频欧美| 八戒午夜福利理论片| 97精品第3页| 成人性爱全视频观看| 精品成人久久久人人亚洲| 九九色色| 国产美女裸体秘 永久无遮挡| 精品少妇人妻| 干婷婷综合网| yazhouzaixian| 99色在线观看| 中国少妇XXXX做受| 美欧色综合| 国产suv精品一区二区四区999 | 国产AV天美传媒一区二区三区 | 乱伦av国产| 97久久久久久久久久| 伊人AAA| 亚洲欧美国产中文视频| 国产精品粉嫩福利在线| www.操| 精品亚洲国产成人av网站| 亚洲久9| 精品176精品2| 99热成人| 人妻中文在线| 成年女人18级毛片毛片免费观看| 97干97色| 怡红院网站在线视频| 狠狠久久四虎| 留下AⅤ黄色片| 五月婷婷丁香| 91爱| 98超碰欧美| 屌妞视频久久久久久久久久久久| 国产四虎在线| 97最新在线播放视频| 精品国产Av无码久久久亚洲| 91无码精品| 久久婷婷欧美| 国产和美国毛片| 一区二区久久天天干狠狠| 日韩视频啪啪| 亚洲小电影免费涩涩成人在线高清| 人妻人久久精品中文字幕| 久久欧洲| 亚洲综合另类| 97色碰| av天堂天堂av日韩| av强奸乱轮| 一区二区三区高清| 99超碰碰| 欧美少妇高潮| 九九超碰综合网| 日本顶级天天操狠狠操夜夜操中文字幕| 九九九九九九九九九九九免费国产| 午夜影美女日鸡鸡天天视频国产| av无码av无码专区| 黄片免费久久久久久久| 熟女人妻精品一区二区视频 | 婷婷五月天成人| 中文字幕奈奈美被公侵犯| 秋霞午夜成人福利片片| 日本道不卡| 可乐操在线| 日韩成人人妻网站| 老熟乱一区二区三区四区| 干妹子| 久久亚州大香蕉| 亚洲国产中文字幕| 少妇九九九九| 91天天| 欧美v亚洲v综合v国产v妖精| 尤物网址| 91精品黄在线观看| 99欧美| 韩国一级婬片A片AAAAA| 蜜臀久久99精品久久久久久久久| 亚洲 中文 女同| 亚洲一区二区三区春色| 亚洲蜜桃V妇女| 亚洲一区二区精品福利| 亚洲图片欧美在线视频| 日本大片日本一区二区免费高清| 久7色| 男人的天堂.com| 啊啊啊97视频| 国产精品97视频| 人妻丰满熟妇一区二区三| 精品人妻中文字幕4399| 国产视频一区二区免费| 欧美极品少妇交| 懂色AV中文| 亚洲综合射| 男人天堂网手机版婷婷| 亚洲中文字幕在现观看| 国产精品一区二区久久精品| 十八岁啪啪视频免费看| 女人被添高潮免费视频| 九九99精品| 国产精品久久久亚洲一区| 久极品在线观看| 日韩传媒在线| 97鸡把在线视频| 欧美韩日精品99综合| 啊v在线观看视频| 夜夜夜夜久久久久| 国产精品一区二区三区在线| 性欧美91| 亚洲97在线| 日日超碰亚洲| 精品国产一区二区三区在线播出| 九九热在线视频| 成人天天看站长推荐| 青青操视频在线| 中欧人妻丝袜中文字幕| 无码聚合| 98福利在线视频| 久久少妇| 大香蕉www.超碰| 欧美拳交在线播放| 色777999综合| 综合网欧美| 午夜精品久久久久久久99蜜桃一| 久操视频免费在线观看| 97干在线| 日本美女性生活久久久久久久| 欧美日韩另类字幕中文| 天天上日日上日韩精品| 青青国产精品在线| 水滴偷拍| 9999免费精彩视频| 二级毛片| 老子午夜伦不卡影院| 日韩在线76| 日本亚欧爱爱| 国产91精品福利在线| 青青草九九九九九| 天天综合网网欲色| 天天拍天天操| 色香欲综合| 免费操逼视频下载| 91无摭挡| 中文字幕亚洲永久精品| 成人精品一区二区三区| 成人性爱av| 吻戏激情性巴克| 久久九九热| 国产成人免费观看在线视频| 欧美情色亚洲| 99热官网| 亚洲天天精品| 日亚韩精品视频二区三| 国产精品另类| 色色色热| 大香蕉综合网| 青青青操| 亚洲 日本 国产 综合| 综合激情97 | 婷婷激情啪啪| 懂色av一区二区三区天美传媒| 成人资源中文字幕在线观看天天| 亚洲日韩黑丝| 激情小说五月天| 九久久精| 九九热九九热| 小日子操bb在线看| 青青草玖玖爱| 日韩人妻免费精品| 黑白配性爱AV成| 久碰视频| 国产丝袜美女在线一区| 久久久99999久网站| 可以免费观看的日韩av毛片| 伊人久大| 插入综合网| 啪啪视频免费在线观看| 国产精品网站www| 日韩免费在线视频观看| 男人的天堂kva| 亚洲另类久操网| 国产成人亚洲精品无码最新在线| 婷婷另类小说| 强奸乱伦动态污图免费 | 色玖玖| yiqicaoav| 艳尻美人妻| 欧美刺激色黄片免费看| 欧洲性爱无码区| 欧美后进式| 蜜臀无码视频在线观看| 色综合久久夜色精品国产天堂| 97国产成人精品免费视频| 综合久久99| 狠狠操一区二区| 欧美强奸乱能| 日韩欧美加勒比| 亚洲色图美腿丝袜| 亚洲国产第一页综合视频| 日韩电影在线观看网址| 亚洲在钱| 另类av天堂| 五月丁香婷婷综合网| 狠狠久久手机视频精品| 亚洲图片欧美色| 亚洲欧美在线综合| 久久久久ab| 人妻嗯啊啊在线播放| 久久中文字幕一区不卡| 亚洲丝袜诱惑| 夜夜夜爽www精品视频| 亚洲中文电影| 999久久久久久久精| 一区二区三区美女超清| 中文字幕美女91| 久久精品电影| 国产精品不卡一区二区三区| 中文字幕视频2区| 曰韩av中文字幕专区| 日韩亚洲精品一区二区| WWW.操逼.COM| 午夜舔阴达高潮视频免费看| 成人五月天丁香激情综合| www.人人摸在线视频| 伊人aaa| 超碰97资源大奶| 99久热| 免费A V在线播放| 精品国产Av无码久久久亚洲| 啊啊啊啊啊啊啊啊在线观看| 天美传媒麻豆一区二区三区国产精| 日韩超碰精品综合| 99re这里只有精品3| 精品一区二区三区蜜桃臀赵总 | 日韩成人精品中文字幕| 伦理片秋霞免费影院| 日本在线观看网址| a片在线播放| 欧美美女视频| 天美传媒婬乱在| 天天夜夜rb| 国产精选视频| 91性情| 人人操人人肉久久精品| 亚洲国产精品无石码久久| 国产精品suv一区| 日本三级中国三级99人妇网站| 欧美刺激色黄片免费看| 51一区二区三区| 国产av强奸美女| 91香蕉视频在线观看免费| 热久久无毒不卡| 情色日播放AV| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 久久风骚城市人| 成人久久久| 在线中文字幕极品av| 久久国色天香香蕉| 日韩国产九九精品一区二区三区毛片| 日本啊啊啊啊啊视频| JULIA一区二区三区在线播放| 久久久久久久极品香蕉视频| 国产999精品久久久| 欧美性爱无码一区二区三区| 蜜桃久久久久久久久久久久| 免费在线黄片视频| 大香网伊人久久综合网eew| 夜夜免费视频| 久久双插| 91在线限制级| 国产乱伦性爱区| 欧美国产一区二区三区麻豆传媒| 久久有码视频| 无遮挡h肉动漫在线观看| 久草精品一区| 国产免费永久精品无码| 亚洲日韩久久精品一区| 家庭乱伦性爱av| 熟女日韩| 人人妻人人澡人人爽久久av| 狠狠欧美| 日韩兔费看黄片| 超碰美国| 婷婷五月色| 男人的天堂2010| 欧美97爱| 日本精品性生活久久久| 美女写真| 欧美成人色| 色欲蜜臀AV| 天天射天天色成人| 肥臀熟女福利视频一区二区| 93人人操人人| 91亚洲黄色网| 亚洲欧美国产其他二区| 立川理惠被中出无码| 美女干逼2| 亚洲另类电影| 综合久久久久久久综合网| 国产中文字幕曰本毛片| 舔足天天操天天射| 国产91久久九九免费精品无码| 91四海无码日韩欧美| 精品人妻一区二区免费蜜桃| 欧美偷拍区| 大香蕉草草| AAA久久| 高清无码一区二区三区| 在线观看啊啊啊啊啊| 欧美极品色| 亚洲美女精品九九视频| 俺去啦自拍| 91高跟美女在线播放| 日韩偷拍色图| 日本黄色大片一级视频免费麻豆| 日本 情色 1区| 天天躁夜夜躁狠狠躁AV| 传媒免费一区二区三区| 后入式五六区| 精品欧美乱码久| 国产免费一区二区三区最新不卡 | 操亚州| 午夜免费视频1000| 91强热人妻| 717影院理论午夜伦八戒| 日韩性爱再线视频| 福利色色| 五月丁香啪| 蜜臀av中字字幕网站| 呦女网站| 国产97免费视频| 91白嫩| 欧美精品双插| 欧美玖玖爱免费玖玖| 密臀视频一区二区三区| 精品美女人人干| 国产精选视频| 极品欧美一区二区三区| 国语对白露脸XXXXXX| 乱伦1色页| 91久久久久久久| 欧美亚洲国产自久久| 噜噜噜亚洲精品| 国产精品视频在线观看| 中日亚韩免费视频| 久久手机视直播| 在线观看视频91| 青草成人免费视频一COm| 黄色电影在线播放综合网站| 亚洲 欧美都市激情| 91色图片| 天天日天天干天天色| heyZO天然素人无码AⅤ专区| 97人肏| 久久久久久久久久久久97| 日韩精品人妻一| 亚洲欧美一区二区网址| 91人精品妻入口| www.色婷婷| 日韩综合第八区国产精品| 亚洲国产一区二区入口| 日本一本一区二区三区四区五区欧美日韩中文字幕| 亚洲精品骚逼| 91久久婷婷| 99久在线精品99re8| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 国产乱人妻精品入口| 亚洲色情在线影视| 91亚洲综合| 91视频精品| 一本道综合色图| 日韩无码一区二区三区| 国产精品色色| 少妇熟女一区二区三区| 亚洲色图激情小说| 操www| 伊人在线大香蕉二。| 女人高潮大叫一级毛片| 大逼色网站| caopeng97| 久久中文字幕人妻熟av女蜜柚| 少妇色综合| 两性色网| 熟女精品日韩一区二区三区| 色诱avtt| 在线99热| 色色香蕉| 爱爱啊啊啊| 超碰天天久久79| 两性综合网| 亚洲欧美国产va在线播放频| 日韩综合无码色欲vv| a级理论午夜日本| 亚洲中文字幕久久无码精品| 992这里有精品| 超碰在线人人射| 色哟哟1区2区| 欧美三级一级| 婷婷导航| 亚洲啪啪视频一区二区| 色哟哟 日韩精品| 中出20p| 99蜜桃臀久久久欧美精品网站| 久久超碰爱| 91在线精品| 黄片免费久久久久久久| 精品人妻av在线播放| 日韩欧美性吧婷婷乱伦大香蕉| 日韩小电影| 亚洲人妻爽爽爽| 网友自拍第1页| 综合伊人激情| 综合亚洲网| 看看日B真人视频| 亚洲天堂情色| 97色涩| 人妻素股| 亚洲做性| 少妇特黄一区二区三区| 97视频一区| 日韩不卡码| 日夜久久久九九九久| 嗯嗯嗯嗯啊啊啊好紧好大| 国产精品国产拍高清AV| 亚洲中文字母在线播放| 欧美v日韩欧亚洲电影天堂色诱,国产传媒| 国产又粗又又黄又猛| 国内精品不卡无毒99999| 亚洲美欧999| 欧美熟妇操操视频| AV在线播放网址| 中文字幕在线免费观看2| 17c在线成人免费A片观看| 国产成人91一区二区三区| 中文字幕高清精品一区| 可以免费看黄片的视频| 亚洲中文一区二区三区| 五月天婷婷成人网| 精品一二三区女同| 成人一二三区| 黄色香蕉视频网站一区| av无码av无码专区| 日本狠狠干| 5252色欧美在线| 激情视频图片| 在线日韩精品一区二区三区| 综合免费无码中文| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 精品人妻一区二区三区不卡断| 欧美成人免费在线观看| av网站在线看| 任你爽视频| 99黄页网站| 黄片免费日韩| 国产伊人自拍| 中文不卡视频| 深田咏美亚洲精品福利社| 激情婷婷丁香| 性爱乱伦一区| 亚洲欧美碰碰| 久久久国产三级黄色片| 在线 亚洲 网爆 自拍| 97视频免费播放| 国产中文字幕曰本毛片| 97视频在线观看播放与子乱对白在线……| 欧美一品道| av天堂精品久久| 玖玖爱综合| 亚洲无码视频免费在线观看网址!| 中文字幕一区二区三区视频播放| 亚洲污污网站| 激情五月天插| www.久久超碰| 91久热这里只有精品| 69XX一中文字幕人妻91| 精彩久久中文| 久九九九九九九热| 新婚人妻扶着粗大强行坐下| 亚洲第一页色| 免费岛国一级片| 99啪啪视频| 日本国产高清色www视频在线| 九九热av| 亚洲精品国产熟女久久久| 能在线播放的国产三级| 亚洲美欧999| 强奸乱伦 亚洲一区| 中文字幕天天操| 中文字幕奈奈美被公侵犯| 99re6在线视频精品免费完整版安卓版| 中文字幕一区二区韩| 中文字幕伊人| 六月婷激情福利天堂69| 久久透逼视频| 亚洲资源吧| 久操操| 乱伦AVxx| 日韩有码 一区二区三区| 丰满熟女人妻一区二区三五十一路| 色综合98| 五月丁香啪啪| 国产精品自产拍在线观看社区| 在线观看无码三级少妇| 91免费看一区二区三区| 国产精品白丝| 97这里有精品| 秋霞一区二区三区四区五区六区七区| 人看人人摸人人操| ji熟女.com| 国产成年女黄特黄| 欧美日韩精品久久久久东北老熟妇| 狠狠狠狠狠干| 欧美网站免费| 亚洲高潮少妇| 精品久久一区二区三区四区五区| 99精品在线播放| 国产精品熟女丝袜一区二区| 欧州一区二区三区四区| 成人精品一区二区91毛片不卡| 久久精视频美日韩在线视频| 国际精品久久久| 好湿好紧好爽 视频| 中文人妻av高清一区| 国产精品一区二区三区在线| 日本熟妇熟色97一本在线观看| 日逼97| 青草青草久热| 一个人免费视频观看在线WWW| 伊人精品视频| 亚洲高潮少妇| 亚洲女毛多水多21P| 亚洲欧美高清无码| 人妻久久| www.狠狠干.coom| 日韩人妻中文视频| 无码久久亚洲高清,| 日本大香蕉综合网红本杳社区| 久日91在线| 国产精品九9| 隔壁邻居波多野结衣中文字幕| 久久a久久| 综合网色| 密乳无码| 中文?日韩?免费?精品| 久久久久深夜无码| 第45页一区二区| 亚洲夜色在线| 一级黄色影片| 欧洲色| 天天操夜夜操| 久久精品一区二区三区不卡| av一区二区三区 中文| 国产亚洲性生活视频播放| 在线不欧美| 亚洲中文字幕一区二区| 人人妻人人爽一区二区三区| 丰满人妻-区二区三区免费看 | 国产精品麻豆视频网站| 国产一级高跟丝袜| 亚洲日韩天堂| 超碰导航97| 九九九九热只有精品| 青青草久草AV| 午夜精品久久久久久久久久久久久| 亚洲情色 欧美| 东京热一区二区中文字幕| 激情综合网激情综合| 国产精品视频内谢女人| 搞中出久久| www.国产高潮精品| 不卡九肏| 天天干夜夜| 亚洲欧美人妻| 成人97人人超碰人人| 国产Aα| 久综合网| 伊人久久青青草| 欧美久久久| 蜜臀久久99精品久久久久久| 中日韩一区二区三区欧美| 午夜一级免费毛片| 国产激情综合| 无码久| 9丨久久九九九| 欧美日韩操逼动图| 日本超碰在线国产一区| 超碰97亚洲区| 五码视频在线观看| 五月丁香成人网| 久久中久文96| www.av在线视频| 国产传媒1234区| 91无码人妻| 欧美色乱| 色牛牛AV| 亚洲欧美精品一区天堂久久 | 精品在线78| 亚洲人妻中文高清| 日日噜噜夜夜久久亚洲一区二区 | 久久精品国产亚洲AV先锋| 亚洲蜜乳av| 丝袜色综合| 超碰色大香蕉| 97久久久久| 91精品伊人久久久大香线蕉91| 无码自拍SM| 嗯嗯啊好大| 大香蕉一级黄色片久久| 无码一区二区精品视频久久久春药| 五月色网| 欧美一二三| 久久精品国产亚洲AV无码电影| 成人情色一区二区| 精彩久久中文| 色欲三区| 玖玖爱综合| 黄色操人| 免费网站观看www在线观| 日韩欧美性爱电影在线观看| 国产又粗又又黄又猛| 东京太热男人的天堂久久久| 五月婷视频| 久久97| 综合激情一一91| 美女被艹尤物视频| 探花视频免费观看国产专区| 天天天天天天天天综合| 99精品在线| 丁香六月激情| 日本一卡二区在线| 熟女精品一区二区三区| 96麻豆精品一区二区三区| A V少妇特黄三级| 亚洲天天综合| 国产中文福利| 不卡啪啪视频| 男人天堂电影院| 青青草精品| 亚洲乱熟女一区二区三区大香蕉| 97鸡把在线视频| 97大色网| 一区二区三区 丝袜 高跟 美腿| 亚洲97久久精品亚洲| 青草精品视频日本久久久久网站在线| 青青草五月天| 欧美色997| 亚洲熟妇乱女区二区三区| 国产家庭乱伦表演| 欧洲一区二区三区四区在线观看| 婷婷中文网| 日本506070| 熟女高潮合集-永久久久-成人AV | 久久久999网站| 亚川综合视频| 小说区 图片区色 综合区| 色网亚洲人| 偷拍 欧美 日韩| 亚洲性天堂| 91亚洲人| 性感美女啊啊啊在线| 国产蜜臀精品一区免费尤物| 一区二区视频在线播放| 亚洲天堂资源网| 欧美AB在线| 日本三级人妻a人妻一在线| 精品国产一区二区三区香蕉欧美| 超碰97日韩| 伊人网在线视频| 色五月婷婷在线| 国产av强奸美女| 国产精品日日摸夜夜添骚逼| 91国精产品| 欧美韩国你懂得在线 | 国产亚洲精品A在线观看下载| 欧美性Fer办公室秘书| 老熟妇一区二区三区| 后入式999| 熟妇女伦乱视频| www亚洲欧美| 中日韩免费看男女操逼大全| 男人的天堂.com| 99亚洲天堂| 97神马久久| 熟女欧美日韩综合婷婷| 久草免费福利在线播放| 小情侣高清国产在线视频| 久久久久国产精品人妻aⅴ天堂| 欧州一区二区三区四区| 久久超碰免费的| WWW啪啪的com| 欧美论理片| 99在线精品观看99| 精品人妻一区二区免费蜜桃视频| 亚洲色啪| 亚洲小说视频| 天天日天天舔东京热 | 精品一区二区三区蜜桃| 玖玖色综合| 情色大香蕉| 久久夜夜夜夜| 九九九午夜| 欧美老妇曰批的视频| 人人么人人操| 东京热双插| 熟女人妻一区二区三区| 全国男人天堂网| 狠狠干妹子| 97久久久久久久久久| 蜜桃臀av在线观看| 99久久9| 亚洲一区二区三区春色| 老熟乱一区二区三区四区| 亚洲乱色视频一区、二区在线| 天天干人人乐| 亚洲一级性爱视频免费看| 美女啊啊啊啊pc| 色路综合| 中文字幕av乱伦| 日本最新免费韩国1区2区视频播放| 97欧美日韩综合| 人成午夜免费大片| 老司机午夜福利视频一区二区| 欧差乱伦二三| 日韩一区二区熟女| 亚洲av无线观看| 国产视频第2页| 操逼网站网站| 91爰爱欧美| 日韩欧洲操屄视频| 中文字幕在在线观看网站| 9997se| 啊啊啊啊啊操我视频| 中日韩欧美精品无码AⅤ一区二区| 97免费在线观看视频| 九九九九九九九| 91九色在线| 国产精品网址| 婷婷四五区| 黄色片A级一区二区三区| 五月婷婷激情| 尤物网址| 自拍大香蕉乱插| 欧美性Fer办公室秘书| 久久香蕉综合一本到3atv| 0755午夜福利视频| 亚洲综合性感在线| 太久视频| 91在线观看,天天综合| 天天做天天爱天天高潮| 一个人免费视频观看在线WWW| 国产精品97超碰| AV色天香在线| 久久婷婷色| 亚洲一区二区三区播放在线| 成人国产视频在线观看| 天天久久久久久| 大香蕉日亚洲日本亚大 | 欧美日韩性爱电影在线| 亚洲天堂美臀在线| 日本操逼视频导航| 91大神精品长腿在线观看网站| 玖玖爱伊人玖玖爱| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 色阁阁AV综合网| 国产视频大全| 无码欧美有限公司| 91麻豆va国产精品| 丁香五六月啪啪| 亚洲图片视频小说| 男人的天堂.com| www久久99| 亚洲免费在线探花| 亚洲色图欧美色图另类图片| 欧美在线亚洲| 夜夜嗨一区二区三区三州加勒比| 东京成人一区| 欧美最婬乱婬爆婬性视频 | 2017av无码免费无线播| 伊香蕉综合久久久久久久噜噜噜| 九九九成人| 91在线限制级| 亚洲欧美成人在线| 青青操视频在线| 能在线播放的国产三级| 少妇人妻在线| 亚洲欧美日韩精品久| 国产一级137片内射麻豆| 亚洲av性爱电影| 操人人| 操逼操逼视频操逼| 欧美大香蕉专区网| 日本3级一区二区免费| 九九热在线精品视频| 成视频在线观看免费看| 色色亚洲| 亚洲男人的天堂亚洲| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 久草婷婷| 欧美综合传媒| 久久91| 欧美日韩国产高清在线一二三区| 亚洲欧美日韩夜夜| 亚洲人妻av| 久久爽爽精品| 日韩无码AB| 日本天堂在线播放| 操国产逼| 久久AV无码网址| 夜夜操91744565| 人人九九精| 国产视频小说| 色五月天AV| 国产人妻精品久久久一区二区三区 | 国产亚洲性生活视频播放| 综合自拍| 清清草影| 丁香7月婷婷| 噜噜噜在线视频| 青青青操| 一级一性爱免费视频| 一本久道在线综合视频| 五月天大香蕉| 91高清欧美| 性开放中文AV高清无码免费看| 日本在线不卡123| SS久久| 色综合一本| 人妻天堂综合网| 亚洲少妇视频| 开心五月深爱五月| 99热这里只有精品1| 免费一级黄色录像影片| 中文字幕人妻色偷偷久久皮| 久久久一区二区三区三州| 欧美日韩人人早| 日韩欧美中文字幕搭讪巨乳美人妻视频| 成人av在线播放| 久久这里| 九九九九九九视频免费| www.亚洲成人一区| 91GD.COM| 亚洲日韩青青草色月| 日日干夜夜骑| 天天天天干| 久久精品区| 久久色激情一区二区三区| 青草成人免费视频一COm| 玖玖97综合 | 无码少妇精品一区二区60岁老人| 成人青青草原伊人| 国产亚州日韩欧美看片| 97人人夜夜精品视频| 亚洲极品| 蜜臀AV成人精品蜜臀| jizzjizz欧美| 欧美亚洲天堂| 久操视频在线| 极品丝袜无码| 国内毛片国产专区二| 久96热在线观看视频| 91男同| 夜夜騷av、一區二區| 天天激情干| 精品国产乱码久久久久久免费| 91激情网| 十八禁视频网站| 国产高清成人免费视频| 久久久亚洲精品中文字幕人妻| 欧美一二级| 欧美 牲| 欧美综合在线91| 天天做天天爱| 国产一区二区在线电影| 97国产色图 | 超碰97 线线 在现| 亚州欧美综合| 97色欧洲| 日韩精品一二三| 天天亚洲| 欧美日韩精品久久久久东北老熟妇| 粉嫩AV一区夜夜嗨| 五月婷婷六月丁香| 国产精品呦一区二区三区| 亚洲欧美色图小说| 18禁久极品美女久久哦哟呀!| 欧美最婬乱婬爆婬性视频 | 天天艹天天日| 综合国产影视三级| 国产成年女人免费视频播放a| 大香蕉欧美| 人妻丝袜二区| 亚洲国产成人7777| 国产乱人伦AVA麻豆软件.| 欧美麻豆成人同性GⅤ在线| 97干在线| 性综合网| 日韩精品99久久久久久中文字幕| 97精品在线| 成人青青草原伊人| 中国黄色特级精品一区二区三区片| 日韩 人妻 精品| 蜜乳av首页| 2020中文字幕| 日日干男人的天堂| 国产熟女自拍| 亚洲91少妇| 国产美女激情| 屌妞视频久久久久久久久久久久| 熟啊v色欧美热| 91中出在线| 色就色综合| 韩国久久97| 免费国产| 亚洲国产欧美一区二区潘金莲 | 久久欧洲| 99超碰碰| 操逼操逼视频操逼| 亚洲一区二区三区麻豆传媒| 国产五码丝袜屁眼| 亚洲情色视频| 无码在线亚洲| 久久婷婷国产一区二区色| 劲爆欧美人妖三区91| 久久永久无码人妻视频| 色狠狠色| 色天天野狼综合社区| 日本无码1| 久久99精品国产| 激情小说日韩无码| 久久女人视频| a片在线播放| 国产精品69久久久久久久| 国产精品久久久亚洲第一牛牛_在线观看| 欧美日韩成人在线| 伊人久久在线视频观看| 快播久久人人aV| 国产成人主播| 另类综合另类| 激情看片网站| 18禁中文字幕| 日韩在线观看三级电影| 九九夜精品九九在线| 懂色AV一区二区三区| 91伊人久| 日韩干B| 自拍欧美| 91大胆欧美| 放黄片放3级黄片没穿衣服| 91ise欧美| 国产女人和拘做爰视频| 加勒比人妻综合| 国产真实野战在线视频| 2025亚洲男人天堂| 国产精品盗摄 偷窥盗摄| 爱爱60秒免费视频| 韩国一级AAA| 欧美国产视频| 亚洲国产麻豆一区二区三区 | 黄片qw| 国产传媒1234区| 天天干天天操天天操夜夜操天天操 | 日日天天久久啊啊aaa| 国产第11页| 色情综合网| 香蕉综合网| 超碰 国产熟女精品一区| 艳美熟妇先锋一二三区| 国产精品免费美女视频| 啊啊啊啊啊啊好湿好爽视频| 91丝袜在线观看| 求求你操操我| 婷婷丁香九月| 天天躁日日躁狠狠狠躁| 久热无码| 秋霞怕怕片| 国产精品高潮久久AV| 亚洲视频中文一区| 91精品人妻一区二区三区蜜桃臀| 久久久一区二区三区三州| 欧美在线中M| 日本有码久久| www.yeyecao| 久久久久久久久久久久欧美日| 青青草在线成人视频| 在线强奷到舒服的无码视频 | 成人aⅴ一区二区三区| 中字幕人妻一区二区三区| 欧美在线大香999| 久久久久深夜无码| 九久久精品| 亚洲中文sv| 97操b| 91色狼| 无马一区二区| 亚洲色人| 日韩欧美性吧婷婷乱伦大香蕉| 亚洲精品97| 亚洲美女AV无码| 精品夜夜澡人妻无码| 人妻少妇av在线观看|