日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满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
返回資訊列表
91久久久久久久| 91超碰在线| 亚洲黄色电影| 后入式五六区| AV天堂国产| 婷婷午夜清品久久久久久久性色视频观| 天天影视之亚洲综合网| 日韩精品一区,二区 九九...老司机| 99黄页网站| 欧洲天天在线| 日韩精品高清资源在线| 亚洲城人男人的天堂| 先锋音影AV| 亚洲精品人妻在线| 不卡免费av在线播放| 欧美伊人久久综合网| 青娱乐日韩无码| 蜜臀少妇一区二区| 麻豆成人影音在线| 日韩成人精品中文字幕| 在线天堂999| 新精精品久久精品| 操逼片中文| 农村妇女精品一区二区| 一本一道波多野毛片中文在线| 不卡啪啪视频| 久久有码视频| 欧美亚洲激情小说| 婷婷视频在线免费观看| 囯产操逼片| 国产成人精品网站| 校园春色AV天堂| 中文字幕123| m欧洲一级午老| 国产白丝精品在线观看| 国产精品久久久三级无码| 91精片| 伊人久久亚洲色欲综合网站| AV和黑人在线播放| 亚洲日本大香蕉1| 精品无码久久久| 亚洲国产精品无码AV久久久| 美女诱惑1区2区| 人人做人人妻人人夜视频| 人人操人人操人人人操| 亚洲 中文 欧美 日韩 在线| 夜夜操天| 日本色婷婷| 国产精品青草综合久久| 色噜噜国产精品视频一区二区| av天堂天堂av日韩| 狠狠色五月亚洲91| 熟女啪啪视频| 黄aaaaaaaaaaaaaaaaaa色网站| 亚州五月| 精品制服美女中文一区二区三区| 射综合网| 亚洲综合中文字幕有码 | 蜜臀th| 五月激情小说| 欧美强奸乱能| 偷拍偷窥与盗摄视频专区| 99热日| 色妺妺在线视频| 精品国产乱码久久久久久久久1| 综合性视频99| 久久偷偷色综合蜜桃| 欧美日动态视频| 少妇熟女视频一二三区| 精品国产少妇高潮视频| 日韩激情啪啪| 东京太热久久久| 欧美曰韩国产精品| 中文字幕在线观看第二页| 国产一区二区三区精品观看啪| av亚欧| 91中出在线| 日韩天天本| 嗯嗯啊啊视频在线看 | 岛园激情| 久久机热| 加勒比性爱成人在线| 台湾佬激情综合| 欧美在线视频99| 六六久久日韩不卡| 飘花国产午夜精品不卡| 欧美东京热青青草| 精品黄色电影| 精品999一区二区| www.人人摸在线视频| 国产丝袜一区二区三区| 成人a级高清视频在线观看| 亚洲高清欧美总合| 亚洲久久久久| 国产精品熟女九色九色蜜臀| 亚洲国产精品成人无码久久久| 色就色综合| 全免费a敌肛交毛片免费| 欧美性生活综合| 成人av动漫在线观看| 在线色导航| 天天日日夜夜| 无码外流操逼视频| 爱媛媛久久国产福利| 在线观看AV片| 欧美午夜精品久久久久久3D| 91高跟美女在线播放| 干美女人妻| 中文乱码字字幕在线第5页| WWW啪啪的com| 精品人妻15区| 亚洲精品97| 中文字幕乱在线伦视频中文字幕乱码在线 | 啊啊啊在线观看免费视频| 夜夜做夜夜爽精品视频| 内射夫妻三片| 色五月综合| 美女91在线| 91老司机在线| 欧美丰满熟妇XXXX性ppX人交| 日本三级久| 亚洲天堂电影网| 大香蕉一线视频| 欧美色图欧美| 亚洲精品日日夜夜52| 青操影院| 浪人综合网| 99操| 天天色天天干天天爱| 久久超碰网| 黄片qw| 七久久久| 91综合在线| 日韩欧洲操屄视频| 一二三四区操操Av| 欧美色色色| 欧美97视频| av黄图片在线观看| 蜜桃在线观看一区二区三区 | 情趣丝袜无码操逼视频| 亚洲永久永久永久永久一级一级一级精品| 欧美日韩国产另类综合| 亚洲情色 自拍| 亚洲中文字幕熟女| 最新欧美色网| 国产精品原创巨作?v网站| 日韩AV电影网站| 日韩大香蕉AV影片| 天堂岛av| 男同专区一区二区三区在线| 亚洲有薄码区日本系列中文字幕| 亚洲AV成人精品网站在AV| 超碰激情808| 午夜免费福利视频一区| 久久精品日韩专区免费观看| 久都青青视频| 四虎影库国产精品免费| 免费久久一级毛片大黄| 操香逼| 国产久久久久久| 日韩三级在线观看网站| 亚洲日韩熟女人妻高清在线| 都市久久精品激情亚洲| 狠狠97| 蜜桃色色网站视频三区| 影音先锋乱| 国产一区二区三区视频在线看| 欧美色图97| 黄污污污污| 天天谢天天干| 97爱综合| 亚洲人综合19| 青青草在线视频播放器| 中国国国产一级特黄毛片| 无码抄逼网| 久久,精品一二三| 日韩亚洲精品一区二区| 強姦亂倫a| 极品色| 免費人妻夜夜爽天天爽爽一区| 人人人人插| 亚洲加勒比| 97精品国产| 国产热av| 国产乱码久久久| 强奸熟女一区二区三区| 久久黄黄| 天天夜夜rb| 色综合20p| 久久精品99| 91精品操美女| 激情欧美97| 成人性交午夜免费片| 久久久久ab| 开心激情站| 99久久婷婷国产综合精品草原| 亚洲九区| 亚洲综合小说另类图欧美视频激情小说色五月天 | 亚洲阿v天堂在线| 免费精品国偷自产在线在线| 伊人久久大香线蕉无码| 五月天色图影视| 久九干| 亚洲男人天堂2012| 在线观看一卡二卡| 老司机香蕉| 天天日熟妇| 一区二区影院| 九九色精品| 啊嗯好大视频在线观看| 国产尤物在线三区| 日本成人免费一区二区三区| 韩国久久97| 啊啊啊啊啊操我视频| 91操熟妇| 男人的天堂2010| 国产和美国毛片| 精品午夜福利导航| 青娱乐 成人娱乐在线| 精品少妇高潮久久| 日本九九九九| 中文字幕一区二区三区50路| 狠狠综合网| 欧美大干日韩| 一线黄色免费性爱片| 久九干| 后入人妻无码| 久久色情| 国产久久久久久| 日韩另类| 熟妇视频一区二区三区在线| 99色色网| 99国产精品免费| 最新亚洲黄色免费电影 | 免费伦费视频在线观看| 99re这里| 桃色五月天| 青青草一本道福利视频| 黄色av一区二区在线| 成人综合网 欧美| 日韩三级伊人| 啊啊在线| 夜夜嗨AV蜜臀av| 久久国产免费激情视频| 日本在线15p| 丰满人妻一区二区三区大胸懂色 | 亚洲男人天堂网久久| 尹人免费观看视频在线| 亚洲图片 激情小说| 国产视频不卡在线观看| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 97欧美色综合| 嗯嗯嗯啊啊啊操的我好爽| 亚洲天堂人妻熟妇视频| 日日骚一区二区三区| 欧美色图亚洲激情| 欧美啪啪色吧在线| 天美精品一区二区三区四区在线观看| 欧美亚洲一级在线观看| 久久久久久久九九九九| 成人天天爽| 五月激情小说| 久久久久久久亚洲Av无码| 91亚洲电影| 久草在| 99久热| 久久欲| 亚洲天堂男人天堂网| 亚洲欧美国产中文字幕| 久7色| 伊香蕉综合久久久久久久噜噜噜| 久久精品区| 91在线/欧洲| 99精品久久久久久久婷婷蜜桃| 天天干人人看综合| 蜜臀久久99精品久久久久久无删减| 鸥美极品| 久男人久久| 久久影视二区三区行押| 天天操女人| 综合色啪| 无遮挡猛进视频免费无限观看| 欧美日韩另类在线播放| 国产精品国产自产高清AV| 色哟哟 日韩精品| 性色亚洲| 6080YYY午夜理论片在线观看| WWW.操逼.COM| 日本视频一区二区三区| 五月天色色网站| 91一起操| 久久m| 超碰97国产欧美| 97超级久久| 久久久久久裸体| 男人的天堂Va| 老熟女乱伦一区| 高清成年美女黄网站免费大全| 国产92麻豆天美精品色欲5| 中国探花熟女| 免费网站观看www在线观| 国产熟妇一区二区| 玖玖久久久| 国产成人拍国产亚洲精品| 99九九久久| 四虎精品一区| 精品性爱一二三区| 射 色综合| 欧洲精品网| 啪啪啪综合| 成人性交免费视频| 国产成人精品日本视频| 丁香啪啪| 9999亚洲电影| 97鸡把在线视频| 久久性爱视频99| 久久伊人在线五区| 久久亚洲中文字幕视频| 99热这里只有精品9| 精品国产久久乱码| 日韩亚洲中文有码视频| 亚洲美女色图| 在线无码操| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 天天碰久久入| 夜夜嗨视频| 青青操在线亚洲视频观看欧美在线| 精品久久久不卡一区二区| 淫荡网址| 久草久热| 少妇厨房愉情理伦片bd在线观看| 成人熟女视频一区二区三区| 亚洲电影中字一区二区| 99综合自拍| 99e久久国产精品| 大香蕉综合久久| 综合激情二| 精品国产一区二区三区av在线资源| 91成人18| 国产美女激情| 在线黄页看毛片| 中文字幕丰满子伦无码专区在线视频最新 | 欧美操逼视频二区| 欧美激情性爱视频网站| 99久久久久| 欧洲小说色图视频另类| 人妻少妇av在线观看| 九热久| 白嫩国模丰满一二三区| 国产高清成人mv在线观看| 啊a一区在线| 人人乐大香蕉| 免费观看欧美日韩操逼视频| 91无摭挡| 五月丁香黄色网| 精品小视频在线| 黄片在线免费在线观看| aaa亚无码专区| 五月天精品| 色小视频蜜乳| 欧美日韩国产一区二区小黄片大全| 久啪| 精品国产乱码久久久久久久久1| 国产精品内射婷婷一级二| 91欧美丝袜| 中文字幕片| 色欲日韩欧美在线一区| 亚洲无码超碰免费| 玖色av| 伊蕉97蜜桃97狠狠综合干| 国产欧美精选激情视频| 中国国国产一级特黄毛片| 91中文字幕在线观看| 91超碰人人操| 区二区亚洲婷| 91久久九九精品国产综合| 69人妻精品一区二区绯色| 久久9999 | 日韩一区二区高清在线观看的| 国内一区二区三区| http://qxhbdz.com| 牛黄色久午久| 97欧美性爱| 成人性爱视频在线看| 久久99亚洲精品久久99果| 91精品微拍福利| 99re久久| 色爱亚洲| 97美日韩视频| 嗯嗯啊啊视频一区二区三区| 日韩日韩日韩-国产乱码精品一区二区| 超碰这里有精品| 欧美A√综合网| 日少妇亚洲版| 久久夜色一区二区| 久插综合| 久久AV无码1区2区3区| 婷婷色一区| 美女诱惑爱爱| 亚洲天堂综合AV| 一级毛片久久久久久久女人18| 日韩美一区| 蜜区区视频79 | 2000亚洲男人天堂| 乱伦熟妇一区二区| 久久久九九网站| 欧美日韩理论一区| 九九拍拍精品视频在线播放| 熟女少妇视频| 人妻熟女一区二区三区视频| 久久69| 少妇久久久久久| 中文操逼字幕| 黄色在线网站| 搡老熟女免费视频| 18禁免费视频| 亚洲精品日韩国产欧美| 一区二区三区精品黑丝白丝酒店对鸡 | 亚洲综合小视频小说在线观看| 91麻豆天美国产| 国内操逼视频二区| 国产精品在线一区二区| 蜜臀99久久国产| 午夜精品久久久99热蜜桃的功能特点| 伊人久久亚洲色欲综合网站 | 男人的天堂com| 东京热一区二区中文字幕| 91啦人妻| 中文字幕欧美精品亚洲日韩蜜臀| 91精品人妻一区二区三区蜜桃| 亚洲日韩av专区无码| 色yeye成人免费视频| www.色五月| 亚洲自拍一区夜夜操| 色欧美在线| 国产亚洲性生活视频播放| 99热在线观看| 99www.bibizy香蕉资源国产一区二区三区高清 | 成人在线视频一区| 欧美美女视频| 色婷亚洲五月在线观看| 99xav| 青青五月天| 日韩啪啪啪啪啪| 18岁禁 茉莉成人久久| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 免費人妻夜夜爽天天爽爽一区| 土豪酒店各种姿势玩弄极品幼稚| 欧美视频一| 色综合99| 哈哈操电影| 国人欧美精品一区二区| 色www精品视频在线观看| 美女诱惑久久| 99热官网| 欧美亚州综合网图片| 日韩av电影成人在线| 五月色综合| 午夜福利合集| 蜜桃av综合网发布| 破处bbq| 狠狠色狠狠色狠狠五月| 中文幕97| 约操熟妇| 亚洲日韩欧美一区二区| 亚欧视频在线| 欧美青青视频| 在线观看精品国产免费| 久久啊啊啊视频| 蜜乳AV免费观看| 免看60秒涩涩视频| 78m成人视线| 蜜桃视频啊啊啊啊| 国产成人欧美一区二区三区的国产| 欧美天天插| 亚洲欧美洲综合| 婷婷久久五月| 91天美免费| 亚洲另类在线观看| 女性91网站| 嗯啊啊啊轻点视频| 一道α片欧美| 美性中文综合网| 免费观看国产小粉嫩喷水精品午| 久久人爽| 久99久视频| 亚洲综合九九| 五月天综合在线| 日本精品一区二区不卡| 色色五月婷| 少妇久久久久| 国产传媒美日韩av| 免费1级a做爰片观看| 黄片色区软件| 日韩精品一二三四| 美女裸体麻豆天美蜜桃91| 日本爽爽爽爽爽爽免费视频| 成人无遮挡毛片免费看| 无码伊人久久大杳蕉中文无码| 人妻精品一区一区三区蜜桃91| 吻戏激情性巴克| 欧美亚州综合网图片| 激情综合五月| 国产兽交视频在线播放| 欧美国产操逼| 综合色图亚洲欧美| 美国三级日本三级久久99| 欧美专利1区2区3区4区5区免费| 久久婷婷色综合一区二区三区| 亚洲 欧美 另类 综合 偷拍| 91丨人妻丨国产丨丝袜| 久热影视| 亚洲另类色综合网站| 人妻丝袜无 码视频专区| AA级电影三区| 草久在线| 欧美影音在线| 亚洲春色激情小说| 久久毛卡| A 天堂| 久久久少妇诱惑精品视频| 九九热九九热| 青草av在线| 国产亚洲精品久久久久小| 欧日韩一二三f区| 久久久久亚洲精品| 97超碰jingpin| 91三级理论片播放器| 亚洲久草AV色图| 岛国免费黄色网址| 太久视频| 青青欧洲黑| 精品一级| 青青草成人视频在线观看二区 | 久久大香蕉97| 1000午夜黄色| 久久色一区| 五月丁香啪啪网| 天天搞在线综合网| 一起草三级AV电影在线观看| 992视频一区| 一区二区三区色综合| 日韩内射视频| 日本人体九九九九九九| 国产又粗又长又爽又色| 日本性交操一区二区不卡系列| 精品国产乱码久久久| 学生妹天天看| 中文字幕后石码四区五区| 天堂综合| 欧美丝袜美女电影一二三四区| 成人日韩中文字幕| 大香蕉综合| 婷婷三区| 玖玖爱综合| 91九久| 日本久操视频| 美女啊啊啊啊啊啊啊| 操操碰| 日本99久久| 丁香五月自拍| 婷婷综合五月| 亚洲成人综合在线| 色婷婷丁香五月| 思思热在线| 日本免费中文一区二区三区四区| 成人婷婷丁香| 青娱乐av在线| 亚洲色图欧美色图制服丝袜 | 啊啊啊啊啊啊啊啊在线观看| 91成人精品| 亚洲熟女av中文字幕| www国产精品| 亚州综合在线| 人人么人人操| 欧美精品日韩久久久九| 秋霞影音一区二区三区| 亚洲第一在线视频| 欧美日韩高潮喷水91| 久久色人体| 欧美三级中文字幕hd| 成人日韩3| 一级特级aaaa毛片免费观看 | 自拍丝袜美腿人妻| 青青草字幕AV| 日日躁天天躁狠狠躁| 91欧美网| 五月色综合| 影音先锋视频在线| 蜜臀va69| 精品综合久久久久久97| 色区久久| 99热91| 久草资源在线视频官方总站日韩丝袜美腿| 中文字幕亚洲永久精品| 熟女五十路一区二区三| 亚洲蜜臀精品视频久久| 91在线精品| 欧美另类精品xxxx| 五月天色色网站| 最新一二三区视频| 性爱av网站| 综合色99| 99免费视频| 五月综合色| 麻豆精品天美| 亚洲一区二区AV| 国产午夜福利电影免费在线观看| 秋霞蝌科网日本一区| 青青草操逼逼视频| 亚洲色图欧美色图制服诱惑| 91人人| 久久国内| 欧美精品双插| 欧美日韩久久精品爱爱| 中国国国产一级特黄毛片| 久久视频,这里只有精品| 亚洲91射| 丝袜色综合| 一起草三级AV电影在线观看 | 交换娇妻呻吟声不停中文字幕| 色噜噜狠狠色综合日日| 色制服丝袜夫妻av一区| 少妇久久| 亚洲成人在线播放| 亚州高清av| а√天堂资源官网在线资源| 久99热| 五毛骚逼极品美女怕怕| 黑人精品XXX一区一二区| 91丨九色丨东北熟女| 欧美在线视频播放| 俄罗斯一区二区视频在线观看 | 郑州宾馆老熟女露脸啪啪| 97人人射| 欧美精品,四区。五区| 国产精品亚洲色婷婷久久久| 丝袜六区| 伦理第一页| 最新av在线| 玖玖爱伊人玖玖爱| 97色涩| 欧美v亚洲v日韩v最新在线二区| 91 国产丝袜在线放观看| 妇女一区二区三区| 婷婷大香蕉| 人人妻人人爽人人精品| 久久亚洲婷婷| 日本二三四区| 一区二区 韩日AV| 日本精品一区二区不卡| 91操人| 大香蕉日韩| 99精品在线| 久久女人| 厕所偷拍在线| 久久天天艹| 日韩啪啪啪视频| 久久久久久日韩| 成人一区二区三区四区| 性做久久久久久久| 亚洲综合草草| 任你草| 日韩三级伊人| 亚洲精品国产AV天美传媒| 浓厚中出中文字幕在线| 强奸国产精品视频| 黄片aaaaa一区| 天天综合~91| 色欧美天天| 一级乱伦网站| 女人的天堂大香蕉网| 91亚洲综合在线| 成人蜜乳小视频网站| 91看黄片| 粉嫩国产精品久久粉嫩| 人人妻天天做天天爽| 国产在线视频午夜精华在| 日本一本道A级黄色毛片试看60分钟| 高清不卡一二三区视频......| 大香蕉欧美| 免费无码婬片AAAA片直播色戒| 中文字幕亚韩| 激情综合五| 久久国产乱子伦精品免费女人| 黄色成人网久久久久久| 口爆综合网| xxx0国产在线播放| 久久久人妻| 黄色片A级一区二区三区| A一级色女| 色老汉玖玖爱| 在线观看岛国有码| 91精片| 日韩八十路老熟女| 人妻碰碰碰碰碰碰| 日韩一级成人毛片免费观看 | 是还免费视频1727我| 成人午夜视频免费播放| 乱伦熟女专区| 后入人妻无码| 亚洲综合贴图91 | 啊啊啊啊啊啊啊在线| 亚洲综合五月天婷婷丁香| 色就色综合| 亚洲激情视频| 亚洲日韩狠狠撸视频| 日韩av色图综合| 五月天伊人| 天天躁日日躁AAA片李宗瑞| 日本影视久久免费| a啊啊啊啊啊啊啊啊一区二区| 激情文学欧美| 97久精品| 日本免费中文一区二区三区四区 | 天美一二三在线观看Av| 婷婷丁香六月天| 免费作爱一级视频| 免费啪啪av| 国产精品午夜AV完会免费| 国产丁香精品露脸视频| 爱妻综合网| 欲射影视| 国产小炒后入式| 亚洲色性情三级| 韩国轻伦国内自拍一区| 野狼激情网| 999精品久久久久久久| 超碰久久精品| 东京日日夜夜| 97色碰| 亚洲第一成人影院色播| 另类小说综合网| 被男人吃奶很爽的毛片| 亲子敌伦对白在线播放| 亚洲在线a| 清纯唯美综合| 97超级久久| 精品人妻久久久久一区二区三区| 亚洲啪啪综合?v一区综合精品区| 91欧美www| 偷窥自拍亚洲| 校园春色 亚洲| 亚洲欧美综合网| chaopen97久久| 久久风骚城市| 亚洲熟女诱惑| 91丝袜在线观看| 人人操,人人液| 亚洲国产美女久久久久 | 日韩欧美成人性爱在线| 成人性爱视频在线看| 老熟女乱子伦中文字幕一区二区| 嗯啊抽插大香蕉网页| 激情网色| 乱伦熟女区| 九月丁香婷婷| 精品人妻1237| 久久伊人青青草| 加勒比伊人综合| 亚洲人综合| 操逼啊啊啊91| 91超碰人人| 人人潮人人摸| 婷婷中文网| 天天做天天爱| 91熟女熟妇视频网站 | 麻豆一区二区三区在线看 | 亚洲自拍欧美国产首页网曝| 亚洲国产奇米影视久久| 午夜福利免费福利视频| 亚洲中文字母在线播放| 精品久久人妻成人网| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 99国产在线 精品 视频| 亚洲制服欧美另类内射| 日本免费中文一区二区三区四区 | 人妻久久一区二区三区 | 亚洲国产综合久久天堂| av72网| 加勒比99999| 一区二区三区美女超清| 国产极品美女高潮无套在线观看| 九九99久久| 青青草伊人久久| 日韩欧美久久婷婷网站| yiqicaoav| 日本视频一区二区三区| 欧美日不卡| 加勒比伊人影院| 国产 v乱码一区二| 中文字幕亚洲欧美在线不卡| 91天堂| 色婷婷综合视频| 99久热精品99re6热| 天天影视网综合少妇| 最新无码国产| 午夜男女爽爽爽在线视频 | 久久久久久久综合,国产| 18禁看网站一区| 国产精品麻豆成人AV艾秋| 亚洲日本天堂| 中文字幕一区电影在线观看| 亚洲美欧999| 欧美亚洲激情| 亚洲国男人的天堂| 91美女视频在线观看| 熟妇熟女视频一区二区三区| 97se亚洲综合自| 亚洲高潮少妇| 欧美天天综合| 熟女自慰久久久| 国产欧美精选激情视频| 少妇久久久免费| 免费黄色片子| 日日爱99| 97免费视频网| 久久双插| 欧美日韩另类字幕中文| 日本无码1| 99在线精品观看视频中文| 色婷婷成人| 日本操逼视频免费| 亚洲图片 激情小说| 亚洲AV无码黄色强奸| 欧成人在线| 色伊人91| 少妇久久久久久| 日韩AV色图| 久久久久久AV无码免费网站| 午夜噜噜噜| 蜜桃臀一区二区aV| 婷婷天堂站| 久久丁香久草综合网| 丝袜色综合| 欧美高潮在线| 欧美在线播放aaaa| 大香蕉免费3| 亚洲九九视频| 麻豆人妻偷人精品无码视频| 超碰在线99| 女人喷水视频在线观看| 2017av无码免费无线播| 深喉吞精| 婷婷探花久久精品一区| 97日视频| 禁十八久久| 欧美专区第一页| 日韩性爱播放| 成人国产二区三区在线,男女精品。| 天天色踪合| 另类av天堂| 中文啪啪视频| 天天日老熟妇| 人妻天堂综合网| 国产尹人在线视频免费| 成人无码影片视频在线| 中文字幕亚洲在线一区| 99爱爱| 99久久9| 91麻豆天美国产欧美| 婷婷五月丁香五月| 成人性爱av| 亚洲一区在线观看欧洲 | 午夜无码熟妇丰满人妻| 九九九草| 自拍第一页| 日日干夜夜骑| 精品9999| 青青草在线视频美女| 久操| 屁股久久久久久| 国产三级中文字幕粉嫩| 日本不卡在线二区三区| 欧美天天综合网| a片久久久久久久久久久久 | 欧美激情精品久久久| 97超碰中文字幕| 国产熟女自拍| 精品国产乱码久久久| 妇女性内射冈站HDWWWCOM| 少妇3P性爱自拍| 婷婷五月天AV| 日本新免费二区三区| 久久久性少妇| 91bbb| 韩国三级理论在线| 国产av波波国产精品| 97国产高清视频在线观看| 五月天伊人| 区日韩亚洲乱码av电影| 蜜屁Av| 精品91日日夜夜超清资源| 中文字幕精品一区二区精| 婷婷激情四射| 日韩精品国模| 国产日韩精品人妻久久久久色欲网站 | 伊人影院日本| 亚洲精品尤物yw在线影院| 天美av在线观看| 亚洲做性| 无码乱人伦中文视频| 久久久久亚洲精品| 美女裸体无遮挡永久免费观看网站| 欧美强奸乱能| 日韩久草| 啪啪啪综合网| 欧美传媒一区| www亚洲免费| 五月天亚洲网| 亚洲欧美国产成人综合不卡| 久草男人天堂| 国产高清MV操逼视频| 东京成人一区| 很黄很色的视频在线观看| 日韩不卡网操逼中文字幕日韩| 久久 国产 无码| 黑丝日韩av丝袜av| 久久久久久九| 日韩情色AV| 91c色| 午夜精品久久久99热蜜桃的功能特点| 一区三区啪啪| 欧洲亚洲人妻无码久久三区四区| 狠狠色婷婷777| 久午视频| 色爱欲亚洲| 久久直播国产| 天天夜夜rb| 中文字幕精品一区二区精| 亚洲色宗合| 亚洲 日本 国产 综合| 97视频在| 久99| 最新日日夜夜天天干干| 天美传媒AV国产在线| 婷婷丁香六月| 亚洲一曲日韩精品| 婷婷五月天色网| 超硑97精品| 特级大荫道BBwBBwBBW| 亚洲最新av无码成人精品区| 97色视频在线| 51国产午夜精品视频| 精品一区二区麻豆| www.黄色在线| 久草电影网| WWW.加勒比人妻一区不卡.com| 国色综合天| 东北操逼| 美国人人操人人操| 性一级黄色录像片网站导航| 日韩无码久久熟女一级片| 亚洲丝袜色| 亚洲.欧美.丝袜.中文.综合| av无线看| 人人摸.人人色| 一区二区三区免费视频入口| 色天天野狼综合社区| SS久久| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 五月天婷精品激情| 秋霞网—男女啪啪亚洲免费体验区| 久久午夜色播影院免费高清| 五月丁香啪啪网| 夜夜高潮夜夜爽夜夜爱爱一区| 91av天美性媒精品视频| 欧美久久九九| 超碰人妻中文在线| 日韩精品第3页| 五月天加勒比啪| 久久精品中文| 人人妻人人色一区二区三区| 久操| 91狠狠综| 亚洲影院无码在线| 97在线精品观看视频| 国产精品无码久久久久2025| 久久精品中文字幕观看| 精品人妻美妇91job| 国产精品青草综合久久| 色婷婷五月综合激情中文字幕| 日本高清有码网址视频| 日韩熟女乱伦中出| 99国产精品久久久在线播放| 粉嫩小泬久久久一区二区| 欧美一区二区三区成人性生活| 精品久久久一本一道| 麻豆久久精品亚洲精品88| 92性色国产午夜福利在线661| 日韩国产欧美伦理在线| 狠狠色综合网| 91l欧美在线| 国产精品96久久久久久| 天天激情干| 伊人成人中文字幕久久网| 亚洲文学偷乱拍啪啪啪啪| 熟妇女伦乱视频| 簧片免费看视频| 中文字幕高清20页视频| 欧美日本天堂| 91精片| 日本肏逼视频在线观看| 欧美 传媒 麻豆 日韩 偷拍| 亚洲精品人体| 91干熟女| 96麻豆精品一区二区三区| 狠狠操使劲操| 国产丝袜啪啪| 无套内射性感少妇视频| 日韩99神马视频片| 久久久精品电影| 韩国久久97| 日本成人在线不卡一区二区三区| 天天色综合天天操| 激情文学小说一区二区 | 欧美中文字幕一区 | 亚洲情色视频| 99这里有精品| 无码动漫av中文字幕| 亚洲熟妇图片| 免费人成在线观看网站品爱网| 丁香五月天堂网| 中文字幕日韩综合| 免费视频一二三区| 国产精品视频精品一二| 狠狠综合| 舔足天天操天天射| 91N欧美| 人妻熟女一区二区三区视频| 日韩欧美亚洲一区二区三区影院| 久久久久久久性爱| 精品无码一区二区三区| 蜜桃狠狠色伊人亚洲综合 | 蜜桃香蕉久草精品在线| 九九99精品视频在线观看| 97超碰9| 久久一二三四五六七八九区区| 入口操逼网站| 九九九久久久W精品| 国产精品无码在线| 亚洲国产熟妇综合色专区| 九色 人妻 大香蕉| 熟女色综合久久| 中文字幕成人乱码熟女精品国50| 天天夜夜久久| 久久人妻视频网| 中文字幕精品一区二| 久久久久久久9| 久久久禁| 四虎视频在线观看| 99久视频| 爽 好舒服 无码刺激久久| 日本黄色精品专区网站| 人妻黑丝袜电影| 中文乱码99| 99色在线| 国产玖玖| 色综合九九| 成人 日本A片无码8888| 国产精品视频内谢女人| 亚洲综合在线91| 亚洲极品| 少妇专区一二三四五| 中文伊人大香蕉视频| 99操碰| 亚洲精品啪视频| 无色无码| 婷婷激情五月天小说网| 成人性爱av.com| 亚洲暴力强奸AV| 狠狠色噜噜狠狠狠狠狠色综合久久| 搡老熟女免费视频| 国产免费操逼| 亚洲精品官网在线观看| 国产伦乱91| 色色无码| 最近的最新的中文字幕视频| 日韩操人| renqi久久久久久久久久久久| 国产精品一二三免费网站| 天天色香欲综合网| 日韩ab网 | AV大香蕉| 秋霞男人网| 亚洲欧洲久久天堂| 国产成人五月天丁香花| 亚洲影院成人| 综合熟妇一区二区三区| 久肏视频字幕| 丁香色狠狠色综合久久小说| 亚洲精品久久久久毛片A片拉屎 | 4虎在线视频| 大逼色网站| 天堂69亚洲精品中文字| 国产女人高潮嗷嗷嗷叫小说| 日韩精品 视频一区二区| 国产成人久久久精品免费AV| 夜夜高潮夜夜爽高清视频一| 综合av影片| 激情小说在线视频| 久久久久久久亚洲Av无码| 精品一区96| 欧美熟女逼久久久久久| 超碰精品国产无码| 睡产熟女乱伦| 98精品国产乱码久久久久久| 日日不卡av| 久久精品三级影视| 超碰98综合网| 一级性爱视频免费在线| 中文字幕一区二区三区视频播放| 久久精品天美| 91亚洲欧洲| 亚洲综合小说另类图欧美视频激情小说色五月天 | 操逼视频免费日韩无码| 伊人久久亚洲中文字幕不卡| 综合久久少妇中文字幕| 床上啊啊啊一区二区三区| wuyechaopeng| 日本日逼视频网| 夜夜国自区| 精品一区二区三区蜜桃臀赵总 | 视频国产欧美在线播放| 无码9区| 97综合| 亚洲国产剧情少妇激情| 人人操人人舒服| 女人一区| 免费在线观看AV无码网站| 骚货 中文字幕 av| 国产 码在线成人网站| 色噜噜国产精品视频一区二区| 一区二区三区在线资源| 久9无限国产| 九草在线大香蕉| 国产精品一区午夜福利| 桑老女人九区| 天天影视色香色欲| 超碰色男人操熟女| 亚洲图片在线| 久久人人妻| 99精品欧美一区二区三区桃色| 丁香7月婷婷| 欧美熟妇精品黑人巨大一二三区| 男人的天堂午夜av| 久 久无码人妻AV| 日韩视频小说在线观看 | 亚洲欧美性生活| 青草av在线| 九九精品99| 999久久久国产精品| 久久精品夜色国产亚洲AV| 中文字幕 码 自拍 视频 区| 大屁股人妻女教师撅着屁股| 91操熟女视频| 男女激情中文字幕| 国产又黄又猛又粗又爽的网站| 国产女人和拘做爰视频 | 日日干夜夜操视频h|