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

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
返回資訊列表
99精品在线播放| 国产最火爆久久国产网站网站| 无码聚合| 超碰在线人妻中文字幕| 久久久三区二区一区| 9999久久久久| 日夜伊人网| 九九亚洲精品| 午夜男人一级A片7777| 男人天堂欧美| 久久精品小视频| 国产欧美一区二区| 超碰 97国产熟女| 国产精品999zyz| 国产又粗又长的视频| 久久熟女人| xxx0国产在线播放| 91人精品妻入口| 91精品国| 天天天做天天天爱天天天爽| 夜夜骑操视频| 97bbn| 爱我干综合| 国产精品人人爽人人做可爱福利| 91九九| 极品一区二区三区免费| 欧美亚州色的图| 麻豆AV96熟妇人妻| 蜜臀在线免费观看在线免费观看| 333kkkk·亚洲com久久| 日本高清视频xxxx| 免费一级a毛片久久久久久鸭绿欲| 精品免费囯产一区二区三区| 热G综合热G中文| 青青草精品| 欧美日韩国产中文精品字幕自在自线,| 亚洲欧美国产其他二区| 欧美日韩操操操| 中文字幕日韩精品久久| 一本一道波多野毛片中文在线| 日日躁天天躁狠狠躁| 丝袜天堂网| 激情小说亚洲图片| 99福利社| 中文字幕福利视频一区二区三区在线观看| 欧美色图片| 青青草AV色| 亚洲超碰综合网| 走光一区92下载| 老司机免费视频在线91| 天天综合站| 999综合色| 欧美超碰96| 九九九综合精品| 999狠狠综合| 中文一区二区婷婷视频| 又摸又舔在线观看网站| 亚洲综合小视频小说在线观看| 青青草日逼视频| 女人爽到高潮久久久| 性站| 少妇与黑人高潮在线| 色 婷97| 青青国产在线拍揄自揄拍| 色情亚洲日本成人| 国产久久男人天堂| 黄色成年| 国产精品白丝在线播放 | 色在线综合| 亚洲小说视频| 亚洲精品国语在线播放| 久久久久久69国产一区二区| 久久久久9| 男人的天堂2018.| 亚洲精品819| 裸体女人草逼视频播放一区,二区,三区,四区,五区| 白丝少妇一区二区| 欧美亚洲自拍另类人妻| 亞洲久久直播| 亚洲综合九九| 日韩三级在线观看mp4| 国产人妻精品一区二区三区秋霞| 91久久青青草原精品| 呦呦影院| 午夜影美女日鸡鸡天天视频国产| 国产欧美伊人| 亚洲黄a三级三级三级看三级| 综合情欲网| 九月伊人中文字幕| 99热综合| jiujiujiujingpin| 视频国产成人精品日本亚洲18| 日韩黄色av中文字幕| 超碰精品在线| 国产精品久久久久久久久久久久久久久久 | 性爱乱伦一区| 亚 欧 美 综合| 九一性生活免费视频| 91中文字幕在线观看| 在线免费观看高清无码视频| 99热日本| 久久久久921| 熟女熟妇一区二区三区视频| 日韩免费三级黄片电影| 亚洲五月丁香花狠狠干一区二区三区 | 成·人免费午夜在线观看| 午夜爽爽爽在线观看永久入口姬片| 国产乱码久久| 97色操| 999亚洲国产视频| 综合熟女| 天天夜夜rb| 亚洲一区二区三区播放在线| 日韩精品99久久久久久中文字幕| 成年无码动漫av片无尽在线| 日韩影片中文字幕一区二区三区| 久久久新亚洲AV| 五月激情在线| 超碰色97| 婷婷中文字幕| 男人的天堂网页| 免费av在线播放二区| 久久婷婷国产一区二区色| 亚洲男人在线观看天堂| 午夜电影在线观看无码专区| 男人的天堂日本东京热| 亚洲 自拍偷拍 欧美| 美女人妻色网站| 精品福利| 亚洲欧美中日韩| 97操| 精品免费1| 色97干| www.夜夜操| 欧美综合网1| 久久久久久久九九九九九九| 亚州高清色综合| 99久久精品无码一区二区毛片免费| 91亚.色| 亚洲一区日韩精品| 一区二区三区日韩欧美| 国产精品久久久久无码Av网曝门| 欧美狠狠弄| 亚洲一区操| 夜夜久久| 国产精品视频自拍在线| 熟妇高潮精品一区二区三区下载| 在线观看成人性爱免费小视频| 亚洲美欧999| 岛国福利在线精品播放| 色香伊人| 大香蕉宗合网在线| 国产无码成人无码| 久男人久久| 秋霞一级视频在线观看免费| 性色aV一区二区三区噜噜| 尹人大香蕉视频在线| 精品人妻一区二区三区日产乱码| 激情综合五| 国产强奸无码乱伦| 午夜无码熟妇丰满人妻| 亚洲少妇色| 国模私拍一区二区三区神乳| 后入式五六区| 国产大片精久久久久久| 熟女精品va中文字幕| 欧美综合综合| 久久偷拍人| hd成人一区二区在线| 91亚洲情色| 99综合自拍| 97任你吞精| 啊啊啊啊啊啊在线观看| 亚洲综合 欧美| 嗯嗯啊啊视频在线看 | 久久久啊啊| 五月婷婷丁香六月丁香| 色拍偷亚洲| 亚州伊人色综台| 欧美自拍偷拍综合图片| 91爱啪| 男人的天堂在线有码| 尤物视频一区| 一级黄色性爱裸体视频| 婷婷丁香人妻 | 人妻色偷色噜| 四虎精品永久在线观看| 色阁阁AV综合网| 久久欧美按摩999| 国产福利一区二| 色香综合天天影视综合| 加勒比AV天堂| 青青操97| 青青草在线成人视频| 伊人久操| 欧美精品久久久久久久久88| 免费日韩黄片| 搞中出久久| 高清国产精品福利网站| 亚洲97在线观看| 天天干人妻视频| 欧美亚洲厕所精品偷拍91| 日欧操屄视频| 在线观看色视频| 国产一区自拍欧美日韩| 国产精品一区二区手机看片| 精品日日人妻| 精品人妻久久久久一区二区三区| 欧美韩国你懂得在线| 日韩亚洲美女一区久久| 久操大香蕉手机视频在线看 | 久久久蜜桃一区二区三区| 亚洲欧美日韩精品久久久一区二区 | 熟女精品一区二区在线观看| 综合91网| 中文一区在线日| 韩国三级三级BD在线| 欧美久久婷| 99热色精品| 亚洲熟女中文字幕在线| 无码自拍SM| 国产第11页| 久久一二三四不卡| 久久综合久色欧美综合狠狠| 欧美国产操逼| 久久久精品一区二区| 超碰在线97国产| 午夜福利在线视频1000| nuu12国产麻豆精品| 欧美 亚洲 另类 综合| 欧美精品久久96人妻无码| 欧美熟女激情| 超碰久在线天天做| 97伊人| 久久久草草精品| 亚洲精品1区| 97情超碰色| 国产乱人妻精品入口| 97超碰总站| 久久久久久中文| 精品国产乱码久久久影院| 九九热精品视频六| 国产精品懂色tv影视免费观看| 亚洲一区二区三区春色| 国产亚洲女v在线观看| 波多野42部无码喷潮在线观看| 日韩精品碰碰| 91美女视屏| 精品人妻一区二区免费蜜桃| 九九九九欧美| 97超碰超碰| 不卡中文字幕aⅴ在线| 日韩人妻制服丝袜av| 欧美午夜一区二区三区| 91亚洲人电影| 蜜臀亚洲中文| 综合网少妇| 放黄片放3级黄片没穿衣服| 精品久久无码午夜福利| 我要看免费韩日黄片| 亚洲综合色男人网| 亚洲欧美综合网站| 欧美人黑A片无码免视费| 久久久亚洲Av| 丁香五月色| 欧美日韩精品久久| 男女啪啪网站免费视频| 国产a级午夜毛片| 91在线限制级| 久操免费观看| 懂色AV蜜臀无码精品APP| 嗯啊不要在线观看嗯啊| 黑人精品久久97| 人爽不卡视频| 色丁香五月婷婷| 亚洲AV无码黄色强奸| 精品一级毛片在线观看| 美女91在线| av天堂精品久久| 超碰日本97美女人妻人人玩人人爱| 香港日本韩国人妇99www.wccm20| 亚洲情色欧美| 免费看欧美美女黄色大片| 天天看天天综合成人网| 99热精品在线观看| 99热伊人| 欧美综合自拍亚洲综合图| 青娱乐老司机视频| 九九热九九热| 日本孕妇一区二区视频操逼免费看 | av在线观看不卡网站| 97人肏| 999国产精品999久久久久久| 国产一区在线免费播放| 久噜噜| 欧美区亚洲区偷拍区| 污啪啪啪视频| 亚洲AV无码乱码| 国产精品青草综合久久| 久噜噜| 国产精品一区二区手机看片| 920日本午夜免费| 久久少妇| 日韩欧亚太美不卡| 国产成人精品必看| 大香蕉在线视频15| 国产精品成人AV片免费看网站 | 久久久久久久国产| 黄页视频网站野外| 成人黄页| 日韩久久.一级黄色片| 大香蕉在线86| 天天草夜夜草高潮片| 青青草十区九区爱夜| 久久亚洲AV无码白度| 黄页18禁| 久久神马| 麻豆国产第一| 日韩中文字幕视频在线观看| 国产精品一二三| www.久久爱| 国语精品av| 色婷五月| 久久久96| 日日摸日日碰| 久久婷五月| 国产成人五月天丁香花| 欧美精品丝袜久久久中文字幕| 国产一区二区三区免费视频在性观看| 亚洲人成色9999精品久久| 久久久性少妇| 久久久com| 人妻精品一区二区| 97干在线视频| 2018天天日天天日| 日韩丝袜二区| 国产精品露脸在线观看| 大色综合| 久久精品国产AV一区二区三区| 97精品一区二区视频| 中文色综合| 欧美一区二区三区互相| av一区二区三区 中文| 男人天堂2019亚洲| 欧洲一区二区三区免费| 国产97av| 干超碰碰熟女| 凸凹视频在线观看| 午夜呻吟欧美| 九热超碰| 综合网欧美| 日本东京热加勒比久久| 亚洲91极品| 新视频sss国产| 天堂性色| jazzjazz国产精品麻豆| 亚洲福利中文字幕在线| 久久一二三级一一一| 国产夫妻性生活视频| 久久大黄片| 蜜乳AV网址| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 久综合国内精品自在自线| 国产粉嫩出水在线播放| 亚洲人在线成线成人| 俺也射| 屁股久久久久久久| 国产乱伦一二三区| 精品久久九| 久久尹人大香焦视| 免费无码国产精品v片在线观看| 亚洲操逼视频网站| 91爱看| 操国产高清| 日韩成人综合网| 成人熟女区| 电家庭影院午夜69久久夜色精品国产69乱 | 亚洲色图 欧美热图 清纯唯美 另类自拍 | 精人妻一区二区三区| 成人麻豆av电影网站| 自拍大香蕉乱插| 亚洲棕合电彰| 天天色欧美| JIZZJIZZ国产精品喷水| 国产传媒1234区| 日本阿v天堂在线观看| 国产精品久久久三级无码| 激情视频一二三| 黄色视频高清无码网站| 日本福利二区视频| 久久久96精品| 免费网站观看www在线观| 偷拍盗拍亚洲色图图片| 99色视频| 人妻熟女一区二区三区视频| 99久久婷婷国产综合精品草原| 国产丸一视频| 欧美强奸乱能| 欧美激情亚洲情色| 最近的最新的中文字幕视频| 91综合天天看| 五月丁香综合网| 国产AV线| 九九在线视频| 97视频免费播放| 五月丁香色色网| 91丝袜人妻| 中文字幕精品资源在线| 啊啊啊久久久视频| 黄片www.| 黄色工厂这里只有精品| 91国产精品熟女| 极品色| 高清不卡国产| 亚洲国产熟妇综合色专区| 日韩精品99999| 九九热AV| 午夜精品99久久久久传媒| 日韩15p| 久久免费中文字幕在线观看| 中国AV美女| 人妻出轨一区二区三区| 久久69精品久久久久久久| 精品久久九| 操逼网免费无码视频| 最新精品久久蜜桃 | 久久久久久久久久久久97| 日日操天天操| 国产亚洲精品一区二区三区| 制服中出中文人人精品| 日本日皮视频逼| 久久二| 日本丝袜美腿人妻九九| 日韩A优精品在线观看| 日韩天天综合| 午夜福利在线视频1000| 99久久99九九99九九九| 性爱视频无打码在线观看| 天躁夜夜躁2021| 亚洲日韩青青草色月| 久久精视频美日韩在线视频| 欧美组图日韩亚洲中文字幕| 97超碰这里只有精品| 亚洲av夫妻操穴网| 中文精品一区二去| 色妇综合网| 9精品在线| 国产欧美日韩在线不卡第一页| 玖玖久久久| 亚洲欧美日韩电影网站一区 | 91久热这里只有精品| 青娱乐亚洲自拍| 久久9久| 亚洲国产精品久久久久婷婷老年| 天天日日日射| av中文字幕在线熟女| 黑人嘿嘿嘿超爽免费视频| 极品销魂美女一区二区| 亚洲97资源| 欧美暴力猛交| 动漫片子网站3黄| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 久久婷婷影院| 色乱二区| 国产精品久久久久亚洲av| 成 人 A V免费视频在线观看| 中文有码9| 欧美青青草视频| 诱惑人妻欧美一区在线播放| 91在线综合网| 日韩有码免费视频| 97精品综合久久| 麻豆啪啪啪视频| 大香网站| 人干人人人操人人摸| 国产操逼视频在线观看| 亚洲中字幕日本一区二区三区| 国产97视频| 78m成人视线| 蜜臀在线网站| 五月天久久人妻| 精品久久久久av影院| 男人女人18禁片免费看网站| av亚欧| 人人操人人摸人人骑| 97Ai亚洲| 屁股久久久久久| 在线不欧美| 9丨久久九九九| 深夜国产福利| 中文字幕熟女人妻丝袜| 9Ⅰ老熟女| 国产一级舔足在线观看| 88xx成人精品视频| www.久久制服糖| 国产亚洲精品一区二区三区| 精品无码久久久久久国产浪潮| 日日干天天干夜夜爽| 立川理惠被中出无码| 欧美福利视频啊啊啊啊| 亚洲蜜乳av| 人人插人人摸人人| 一起草AV| 67194无码不卡| 青青草大香蕉在线视频| 欧美激情一| 欧洲视频在线| 老熟妇乱轮| 大香蕉一区二区在线观看.| 狠狠中文字幕| 色婷亚洲五月在线观看| 91 在线亚洲| 日韩成人午夜精品久久高潮| 日产123区精品免费观看| 国产超碰欧美| 91搡老女人老妇女老熟女歌词翻译| 午夜啪| 日韩精品亚洲专区在线影视| 精品一区二区三区蜜桃臀赵总| 欧美三级一级| 人妻少妇久久中文| 干少妇视频| 成 人片 黄色大片| 91狠狠综合久久| 乱理日韩中文| 少妇熟女视频一区二区三区| 九热中文字幕| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 日韩欧无码一区二区三区免费不卡| 亚洲欧美精品国产一区二区| 欧美黄色片AAAAA| 日韩中字av一区| 丝袜狠狠草尤物 91| www.91视频网| 操高情无码| 亚洲欧美激情另类色图| 日韩欧美偷拍美女视频| 男人精品区| 狠狠操夜夜| 深夜啪啪啪视频免费| 青青草乱入乱欲视频在线观看| 玖玖爱视频网站| 无码精品久久| 五月天婷婷欧美三区| 后入式在线免费观看60秒| 亚洲男人在线观看天堂| 3d成人精品一区二区| 久久久久13| 日日玩天天干| 手机在线中文字幕国产| 久久欧美1卡2卡3| 日本不卡免费二区| 国产成人无码啪| 亚洲国产精品乱码在线观看| 另类图片五月天| 精品九九国产无码| n1038 一二三区| 免费视频一二三区| 免费毛片在线播放| 精品中文日韩字幕视频| 秋霞成人做爱| 欧美黑人与女人91~| 国产精品久久久久婷婷二区次| 嫩草一区二区在线观看| 久久久久9| 蜜乳视频网站| 国产九九久久久精品| 加勒比综合88| 国产亚洲一黄| 欧美姓爱综合网| 影音先锋国产精品| 熟女高潮精品一区二区| 91成人在线免费视频| 粉嫩AV一区夜夜嗨| 欧美日韩另类在线| 伊人久久大香线综合无码| 五月亭亭六月丁香| 国产日韩精品一区二区三区| 日日夜夜精品视频| 色综合一区二区三巨| 91亚洲在线| 99re9在线| 五月丁香婷婷啪啪| 人妻另类| 五月丁香久久| 97干在线视频| 女同亚洲欧美一二三区久久电影| 91色狼| 大香蕉 222| 91色人妻| 91在线/欧洲| 一区二区三区四区免费视频| 日本五区不卡| 大香蕉久久| 中文字幕乱码在线观看| 色妹子A V| 亚洲97成人在线观看| 男插女青青影院| 嗯嗯啊操我| 大香蕉伊人网WWWn0n| 在线日韩精品一区二区三区| 久久久18禁| 欧美亚洲色图另类国产| 国产熟女自拍| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 久久老子无码午夜伦不卡| 欧美色图99| 97中文天堂| 亚洲一区操| 激情文学小说一区二区| 五月天开心网| 日韩成人精品| 东京热伊久| 色穴精品| 在线v中文字幕一区二区三区| 欧美—性—交—色| 少妇同性| 婷婷AV一区二区三区| 美欧色综合| 性色国产东北露脸精品视频| 在线性黄高清免费视频| 欧洲久久一二线| 色老牛| 色色色综合| 操婢日韩| 99夜夜操| 亚洲色图 综合| 91粉芽高清在线一区二区| 三级AV入口| 99少妇| 天美精品一区二区三区四区在线观看| 青青操狠狠撩| 热99这里有精品综合久久| 97视频620| 综合久久中文字幕综合日韩精品 | 青草园大香蕉| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 欧美性Fer办公室秘书| 欧美极品女人的天堂| 2017天天插| 久久久久国产| 精品无人区麻豆乱码久久久| 久久婷色| 亚欧无码在线| 久久在线观看免费视频| 91n处女在线观看| 午夜欧美神马久久久久| 激情综合97| 婷婷深爱五月| 国产二区三区免费视频| 日日躁夜夜躁狠狠躁超爽| 在线情色电影 91大| 午夜情侣自拍网站| 九九综合久久| 久久久久成人亚洲国产| 欧美午夜视频免费观看| 99re这里只有| 国产嫩草精品A88AV| 97精品中文字幕| 亚洲av总站| 十八禁网站在线| 九九碰九九爱97超碰| 国产色精品午夜大片| 亚洲一区中文精品| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 91校园春色长篇| 国产超碰在线一区| 人妻天天夜夜爽一区二区| av一区二区三区 中文| 婷婷激情五月天小说网| 99e久久国产精品| 草草草视频在线免费看| 少妇一区二区三区| 久久久久久久| 青娱乐啪啪视频| 欧美高清色| 992视频一区| 另类图片五月天| 国产av色网| 99热这里只有精品1| 加勒比五月天| 91超碰在线播放| 香蕉免费一区二区三区不读| 亚洲欧洲色情高清| 亚洲精品美女操逼| 加勒比人妻综合| 99在线精品视频| 久久久久九九九| 操屄不卡视频| 亚洲操操操| 国产精品电影| 麻豆蜜桃视频在线观看| 97亚洲性爱| 99啪啪视频| 欧美黄色图片| 亚洲熟女乱综合一区二区三区| 青木玲在线不卡| 亚州熟妇精品| 国产麻豆91欧美一区二区久久婷婷国产精品 | 日韩中文字幕视频| 日韩免费看在线黄色片| 操逼不卡中文字幕| 日韩一级片| 97五月天| 安徽熟妇视频| 久久精品电影| 西西美女视频网| 国产蜜臀在线| 国产传媒日韩| 青草草免费网站av| 国产午夜无码片在线观看影视| 亚洲成?V人片在线观看福利| 黑操B| 97九色人妻| 欧美72网页| 999久久芭蕾| 超碰95| 色翁荡息又大又硬又粗又爽| 欧美视频在线视频免费va| 久悠悠av| 五月天激情小说| 欧美精品 - 91爱爱| 亚洲男人天堂视频| 91在线欧美| 中国一级操逼视频| 五月天婷婷基地| 五月天久久婷婷亚洲| 黄站在线免费观看| 爱爱啊啊啊| 日本国产高清色www视频在线| 97色色视频| 欧美白嫩女HD| 亚洲丝袜在线观看| 国产精品自拍xxxx| 116美女午夜| 4虎在线视频| 热99这里有精品综合久久| 99色热国产视频精品| 日本视频一区二区三区| 欧美激情综合| 欧美激色| 成全动漫视频观看免费下载| 欧美日韩国内不卡| 青娱乐大香蕉| 亚洲天堂男人天堂网| 国产www色在线观看| 久久99黄色卞西瓜| 99热线麻豆 | 一区二区三区四区理论片| 色黄污美女啪啪啪免费网站| 一区二区三区机械有限公司| 黄色二级片网站| 人妻丰满熟妇av无码区蜜桃| 欧美特大AA级黄片| 婷婷五月影院| 欧美精品,四区。五区| 97资源视频| 综合国产97| 99999国产精品| 在线观看av区| 欧美大片一区二区三区| 人妻偷拍一区二区三区| 中文字幕啊啊啊在线观看视频| 黑人粗大V S日韩女优视频| 国产精品嫩草影院午夜两性 | 亚洲AV操| 中文字幕AV片| 大学生口爆吞精| 极品白嫩福利在线| 亚洲黑人在线| 超碰三级秋霞| 加勒比综合88| 色综合色综合网| 中文字幕第二页| JULIA一区二区三区在线播放| 日韩不卡一二三四| 人人看人人爰人人操| 人人超碰在线观看黄| 香港澳门日本三级网站| 青青操97| 欧美不卡五十路| 香一区二区三区| 精品九九九九| 丰满的三级少妇欧美久久久| 精品久久久久成人码免| 91精品伊人久久久大香线蕉91| 中文字幕诱惑制服人妻丝袜美丝袜美| 国产精品原创巨作?v网站| 78久久久| 人人操人人操人人操人人操人人操人人人11.CM| 天天做天天爱天天爽AV| 国产91av在线播放| 精品9区| 国产1769在线| 欧成人在线| 丁香五月激情婷婷| 日本欧美不卡| 极品粉嫩一区二区| 眼镜人妻101.com| 伊人操操| 岛国成人av在线播放网址| 欧美瑟综合| 日本91白丝| 一级毛片电影免费看| 夜夜国产一区| 91操人| 精品对白久久不卡| 97精品国产97久久久久久户外免费| 亚洲影院成人| 东京热不卡视频| 97精品熟女少妇一区| 蜜桃视频啊啊啊啊| 丁香五月天堂网| 亚洲黄片免费在线播放| 日本美女性生活久久久久久久 | 中文字幕福利视频一区二区三区在线观看| 久久草草欧美精品| 色呦呦国产精品免费看| 人妻激情在线视频| 激情综合五月天| 国产美女裸体秘 永久无遮挡| 极品后入免费视频| 337p大胆噜噜噜噜噜91Av| 91春色| 96久久久精品| 99九九精品| av爱爱爱| 亚洲玖玖爱| 高树玛利亚无码流出| 6080YYY午夜理论片在线观看| 精人妻无码一区二区三区伊人直播| 人、人、摸,人、人、草| 91网站18禁| 亚洲欧美在线综合| 蜜桃色色网站视频三区| 色哟哟511老熟女| 中文字幕视频在线观看| 亚洲男人的天堂网| 国产欧美日韩女同性恋ww喷水精品 | 日韩成人人妻网站| 99re这里只有精品3| 亚洲中文国际强奸字幕| 亚洲交性| 国产精品久久久久久久久久久久久久久久| 九九AV| 岛国片国产成人亚洲播放| 91肉丝| 91日日夜夜| 偷拍超碰| 国产欧美日韩在线观看麻豆传媒公司| 国产区91柔拿会所技师| 黑人综合网| 亚洲日本大香蕉1| 欧美中字二区| 国产精品白虎| 欧美老妇曰批的视频| 91老熟女| 日韩99999| 91精品人妻| 日韩情色视频| 午夜高清成人在线视频| 午夜福利无毒不卡| 女性喷水高潮在线观看| 丝袜视频网国产90| 亚洲日韩久久精品一区| 欧亚久久偷拍视频| 国产女上位好爽在线| 日本精品不卡一二三区| 影音先锋视频在线| 澳门黄片一香蕉视频| 69一区二区| 97精品久久久久中文字幕| 观看视频图片一区二区三区| 日韩97视频| 午夜精品久久久久久久99热影院| 色av中文字| 伊人五月天| 一起草精品人妻| 日韩AV无码中文一区二区| 中文字幕,人妻,日韩| 大色综合| 国产成年女黄特黄| 91精品国产91综合久久蜜臀| 91色拍| 国语少妇精| 大香久久| 搡老女人老91二区| 久夜视频| 亚洲天堂男人天堂| 亚洲熟妇A V黑人| 好爽视频在线观看视频| 午夜在线播放| 99国产精品| 久草新在线| 精品九九| 亚洲日韩视频二区| 国产日韩区| 亚洲性爱成人| 秋霞一级A片黄色视频| 91深夜夜| 99久久精品国产高潮| www.色操逼| 蜜臀99精品国产高清在线观看| 九九五月天| 高清无码久操视频| 18精品一二区| 在线一区| 国产夜夜操| 91GD.COM| 亚洲情色中文字幕一区| 性爱综合一区二区| 国产精品白丝| 欧美图片色综合| 久久久婷婷| 国产偷拍自拍在线视频| 国产精品麻豆成人av| 色约约一区=区三区| 人人爽人人精品乱人伦AV| 毛片视频白嫩| 久久久久久久人妻| 肉嘟嘟www视频在线观看高清| 9久精品| 少妇贴图| 视频在线97| 久久↗↗| 亚州国产成人精品女人久久| 久久熟妇五十路一区| 蜜臀精品1区2区| 日韩AV电影网站| 屌逼麻豆| av无码精品久久久久| 富女玩鸭子一级毛片| 国产女人视频三四五区| 91综合网站| 亚洲国产日韩精品久久久| 激情情色五月天| 日韩久草| 久久成人精品| 日韩成人人妻网站| 精品少妇人妻一区二区三区| 神马影院午夜福利久久久| 激情欧美日韩女同久久| 天天看人人操屄犊摸阴| 黑丝日韩av丝袜av| 玖色AV| 国产成人资源| 美女久久久久久久| 91最新综合| 蜜臀久久99精品| 丝袜视频一区二区在线播放国产中文 | 大香蕉碰碰| 91在线欧色| 色性综合| 久草视频分类在线| 99热伊人| 嗯嗯啊在线视频| 91狠婷| 婷婷亚洲综合| 校园春色 男人天堂| 1024香蕉视频| 国产伦精品一区二区三区视频女| 99在线精品观看99| 乱精品一区字幕二区| 综合干干干av久久久综合网| 天天天天天天天天综合| 在线五区| 欧美天天综合网| 张柏芝国产一区在线观看| 超清福利精品视频在线| 粉嫩不卡一区二区性爱| 99精品在线观看| 天天综合有色网| 麻豆 亚洲 97| 五月天婷婷社区| 岛国黄片网站| 岛园激情| 久九九九九九九热| 91处女视频在线观看| 玖玖资源视频一区二区三区| 日本欧美中文字幕| 一本一道vs波多野结衣| 六六久久日韩不卡| 中文乱码99| 日韩91网| 免费观看性欧美一级| 人妻-91porn| 熟女一区二区| 懂色av中文字幕一区二区三区天美| 国产精品乱码久久久| se吧提供91精品国产91久久久久久 | 色婷婷五月天| 亚洲精品国产av天美传媒| 亚洲在线A| 秋霞网—男女啪啪亚洲免费体验区| 免费视频a级毛片免费视频| 欧美日韩国第一区| 九九九九一区| 自怕偷自怕亚洲精品| 99在线精品观看99| 97频视在线| 亚洲资源站| 天天日天天干天天整| 91最新综合| 特色a在线上| 青娱乐日韩无码| 亚洲综合性感在线| 欧美色网络| 尤物一级在线免费观看| 91中文精品日韩欧美在线 | 午夜操一视频一区| 国产乱色国产精品免费视| 色嘟嘟人妻天堂网| 伊人四虎综合| 国产AV色黄看到爽| 伊人大香蕉在线| 日韩小电影| 婷婷综合网| AV色五月天| 性影在线视频| 夜夜嗷嗷一区二区| 欧美不卡五十路| 97久精品| 五十路熟女人妻一区二区在线观看| 思思性爱| 无码九九| 婷婷丁香五月天综合东京热| 粉嫩小泬久久久一区二区| 免费一级性爱久久| 亚洲中文字幕有码视频一区二区三区| 亚洲精品欧洲色| 91久久久久久久| 一卡二卡三卡| 欧美精品99久久久| 色97欧美| 人、人、摸,人、人、草| 蜜臀av中文字幕| 国产精品自拍欧美在线| 俞拍自拍| 亚洲欧美国产其他二区| 亚洲蜜臀视频精品久久| 日韩一级二级| 97香蕉网| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 国产亚洲女v在线观看| 亚洲国产精品久久久男人的天堂| 韩国手机不卡无码三级视频| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 岛国在线一区二区三区| 色爽——AV| 91粉嫩萝控精品福利网站_精品影音先锋国 | 人妻内射一区二区在线视频| 在线a v| nuu12国产麻豆精品| 女人爽到高潮潮喷18禁网站| 国偷自 一区| 99无码视频| 97视频在线免费观看| 成年男人的天堂| 操逼天美3区| 大香蕉日亚洲日本亚大| 偷窥自拍A片| 国产97亚洲| 久久超碰97中文字幕| 日本无码1| 久久爱97| 好爽,再快点啊哈嗯嗯嗯嗯| 欧美成年人性爱视频免费观看| 久久一二三四不卡 | 青青草久久| 国产成人久久久精品免费AV| 欧美资源| 97在线无精品| 五月天婷婷色色| 亚洲巨爆乳一区二区三区四季网| 青青草白白色| 亚洲无码久久久久久久| 日韩97P| 九九九精品一区二区无码| 中国亚洲呦女专区| 黄片www视频免费| 9久精品视频在线观看| 天堂中文资源在线bt| 精品欧美乱码久| 级品肉射| 99精品无码| wwwxxx日本爽| 麻豆亚洲AV成人无码久久精品| 九九九九九九九九九九九免费国产| 国产毛片在线| 97av在线观看| 偷拍综合亚洲| 天天欧美色| 国模少妇一区二区三区| 精品久| 日本黄色天堂| 二区熟妇韩日| 色欲天天综合网| 国产欧美精选激情视频| 夜夜欢天天干| www.高清无码诱惑一区.com | 欧美—性—交—色| 久久久久久久久久久999| 色五月综合| 天天草夜夜草高潮片| 亚洲丝袜诱惑| 加勒比久久av| a人欧美综合天堂麻豆| 长长久久88视频| 精品蜜乳AV免费观看| 大香蕉中文网| 久久久久国产精品人妻aⅴ天堂| 日本一二区免费| 五月婷视频| 黄aaaaaaaaaaaaaaaaaa色网站| 久久久久亚洲熟妇熟女| 日韩在线观看AV| 成人欧美日超碰| 图色综合网| 久久久久精| 五月天激情网站| 操逼操操操91| 欧洲欧美视频一区二区| 日日超碰亚洲| 91精品人妻一区二区三区蜜桃| 土豪酒店各种姿势玩弄极品幼稚| 情色五月天久久久| 天天噜| 日本操BAV| 眼镜人妻101.com| 操逼网站网站| 清纯唯美激情| 国产外初女出血视频| 伊人991| 最新精品久久蜜桃| 亚洲男人的天堂一区二区| 日日干日日| 亚洲精品99| 黄色一级视| 韩日无码在线观看| 国产成人免费观看在线视频| 日本性爱欧美性爱| 免费日韩黄片| 国产精品黄色三级av| 欧美一区二区三区入口| 12一15性XXXX粉嫩国产| 无码精品久久久久久亚洲| 粉嫩av在线| 日本性感人妻91| 亚洲**2021在线观看| 亚洲精品一二牛牛| 日少妇视频| 日韩色| 日韩肏逼视频| 免费a级毛片av无码久久精品中文字幕| 国产精品第一区第一页| 久久久久久久伊人精品| 国产Av超碰| 久久欲| 大香网站| 亚洲高清在线|