[{"data":1,"prerenderedAt":1021},["ShallowReactive",2],{"blog-zh-Hant-browser-video-processing-performance-benchmarks":3,"blog-zh-Hant-browser-video-processing-performance-benchmarks-surround":1011},{"id":4,"title":5,"author":6,"body":7,"category":992,"date":993,"description":994,"extension":995,"image":996,"lastModified":993,"meta":997,"navigation":998,"path":999,"readingTime":1000,"seo":1001,"stem":1002,"tags":1003,"__hash__":1010},"blog_zh_Hant\u002Fzh-Hant\u002Fblog\u002Fbrowser-video-processing-performance-benchmarks.md","瀏覽器影片處理效能基準：FFmpeg WASM vs WebCodecs vs 原生","FlowPick 團隊",{"type":8,"value":9,"toc":973},"minimark",[10,14,18,24,37,42,53,58,97,102,141,144,148,228,234,238,294,299,306,310,360,365,368,372,375,429,439,442,446,520,525,528,532,585,590,598,601,604,660,663,666,669,672,675,754,759,762,765,771,777,783,789,799,811,814,820,826,832,838,844,848,851,854,862,865,892,895,898,901,914,917,920],[11,12,13],"p",{},"瀏覽器影片處理的效能宣稱一般兩種味兒：「夠快，信我」或者「WASM 比原生慢 2 倍」。都沒用。這篇是真硬體上的真實資料，附方法論和原始資料，讓你自己判斷瀏覽器能不能扛你的工作負載。",[15,16,17],"h2",{"id":17},"測試配置",[11,19,20],{},[21,22,23],"strong",{},"硬體：",[25,26,27,31,34],"ul",{},[28,29,30],"li",{},"Mac：MacBook Pro M2 Pro（12 核）、32GB RAM、macOS 14.5",[28,32,33],{},"Windows：ThinkPad X1 Carbon Gen 11（Intel i7-1370P、14 核）、32GB RAM、Windows 11 23H2",[28,35,36],{},"中階：Acer Aspire 5（Ryzen 5 5500U、8GB RAM）、Windows 11",[11,38,39],{},[21,40,41],{},"瀏覽器（均為 2026 年 7 月最新穩定版）：",[25,43,44,47,50],{},[28,45,46],{},"Chrome 127",[28,48,49],{},"Firefox 127",[28,51,52],{},"Safari 17.5",[11,54,55],{},[21,56,57],{},"工作負載：",[59,60,61,67,73,79,91],"ol",{},[28,62,63,66],{},[21,64,65],{},"1080p HLS → MP4 重封裝"," — 30 分鐘影片、300 個 TS 分片、約 500MB",[28,68,69,72],{},[21,70,71],{},"4K HLS → MP4 重封裝"," — 30 分鐘影片、300 個 TS 分片、約 2.5GB",[28,74,75,78],{},[21,76,77],{},"8K HLS → MP4 重封裝"," — 10 分鐘影片、100 個 TS 分片、約 4GB",[28,80,81,84,85,90],{},[21,82,83],{},"解碼 + 抽幀","（1080p、每秒 1 幀、1800 幀）— ",[86,87,89],"a",{"href":88},"\u002Fzh-Hant\u002Fblog\u002Fwebcodecs-web-workers-opfs-video-processing","WebCodecs 那篇"," 裡講過",[28,92,93,96],{},[21,94,95],{},"DASH → MP4 重封裝"," — 跟 #1 同樣的影片，但 DASH 源（不需要 TS 解封裝）",[11,98,99],{},[21,100,101],{},"測試方案：",[25,103,104,114,124,135],{},[28,105,106,109,110],{},[21,107,108],{},"原生 FFmpeg","（命令列，基線）— ",[111,112,113],"code",{},"ffmpeg -f concat -safe 0 -i list.txt -c copy -f mp4 out.mp4",[28,115,116,119,120,123],{},[21,117,118],{},"FFmpeg WASM（單執行緒）"," — ",[111,121,122],{},"@ffmpeg\u002Fffmpeg"," 0.12.x，無 pthreads",[28,125,126,119,129,131,132],{},[21,127,128],{},"FFmpeg WASM（多執行緒）",[111,130,122],{}," 0.12.x，配 ",[111,133,134],{},"CORE_THREADS=8",[28,136,137,140],{},[21,138,139],{},"WebCodecs + Worker"," — 僅解碼工作負載；不做重封裝",[11,142,143],{},"每個測試跑 5 次；數字取中位數。所有場景方差小於 5%。",[15,145,147],{"id":146},"結果1080p-hls-mp4-重封裝30-分鐘影片","結果：1080p HLS → MP4 重封裝（30 分鐘影片）",[149,150,151,170],"table",{},[152,153,154],"thead",{},[155,156,157,161,164,167],"tr",{},[158,159,160],"th",{},"方案",[158,162,163],{},"Mac (M2)",[158,165,166],{},"Win (i7)",[158,168,169],{},"中階 (Ryzen)",[171,172,173,187,201,214],"tbody",{},[155,174,175,178,181,184],{},[176,177,108],"td",{},[176,179,180],{},"8s",[176,182,183],{},"12s",[176,185,186],{},"22s",[155,188,189,192,195,198],{},[176,190,191],{},"FFmpeg WASM 單執行緒",[176,193,194],{},"75s",[176,196,197],{},"95s",[176,199,200],{},"180s",[155,202,203,206,208,211],{},[176,204,205],{},"FFmpeg WASM 多執行緒（8 執行緒）",[176,207,186],{},[176,209,210],{},"28s",[176,212,213],{},"65s",[155,215,216,219,222,225],{},[176,217,218],{},"WebCodecs + Worker（僅解碼）",[176,220,221],{},"18s",[176,223,224],{},"24s",[176,226,227],{},"50s",[11,229,230,233],{},[21,231,232],{},"結論："," 多執行緒 FFmpeg WASM 大約是原生的 2-3 倍、單執行緒的 3-4 倍。中階硬體上單執行緒 FFmpeg WASM 對 1080p 勉強能用（30 分鐘花 180 秒 = 0.16 倍即時）；多執行緒沒問題（65 秒 = 0.036 倍即時）。",[15,235,237],{"id":236},"結果4k-hls-mp4-重封裝30-分鐘影片25gb","結果：4K HLS → MP4 重封裝（30 分鐘影片，2.5GB）",[149,239,240,252],{},[152,241,242],{},[155,243,244,246,248,250],{},[158,245,160],{},[158,247,163],{},[158,249,166],{},[158,251,169],{},[171,253,254,267,280],{},[155,255,256,258,261,264],{},[176,257,108],{},[176,259,260],{},"38s",[176,262,263],{},"52s",[176,265,266],{},"110s",[155,268,269,271,274,277],{},[176,270,191],{},[176,272,273],{},"380s",[176,275,276],{},"480s",[176,278,279],{},"OOM（1.4GB 時崩）",[155,281,282,285,288,291],{},[176,283,284],{},"FFmpeg WASM 多執行緒",[176,286,287],{},"115s",[176,289,290],{},"145s",[176,292,293],{},"OOM（1.8GB 時崩）",[11,295,296,298],{},[21,297,232],{}," 4K 重封裝是單執行緒 FFmpeg WASM 失效的臨界點。中階硬體（8GB）記憶體壓力導致崩潰——WASM 單實例記憶體上限 2-4GB，分片緩衝 + 解碼狀態加起來就過了。多執行緒在高階硬體上能扛 4K，但比原生慢 2-3 倍。",[11,300,301,302,305],{},"中階崩潰才是值得看的部分。就算分塊處理（一次處理 N 個分片、寫 OPFS、釋放記憶體），4K TS 解封裝需要大量工作記憶體。修復在 ",[86,303,304],{"href":88},"OPFS 串流模式","——別把整個輸出裝進記憶體。",[15,307,309],{"id":308},"結果8k-hls-mp4-重封裝10-分鐘影片4gb","結果：8K HLS → MP4 重封裝（10 分鐘影片，4GB）",[149,311,312,324],{},[152,313,314],{},[155,315,316,318,320,322],{},[158,317,160],{},[158,319,163],{},[158,321,166],{},[158,323,169],{},[171,325,326,338,348],{},[155,327,328,330,333,335],{},[176,329,108],{},[176,331,332],{},"42s",[176,334,213],{},[176,336,337],{},"OOM",[155,339,340,342,344,346],{},[176,341,191],{},[176,343,337],{},[176,345,337],{},[176,347,337],{},[155,349,350,352,355,358],{},[176,351,284],{},[176,353,354],{},"OOM（3.1GB 時崩）",[176,356,357],{},"OOM（3.4GB 時崩）",[176,359,337],{},[11,361,362,364],{},[21,363,232],{}," 2026 年的 FFmpeg WASM 扛不了 8K。4GB 單實例記憶體上限是硬牆。就算分塊串流，8K HEVC TS 解封裝需要同時持多個 100MB+ 分片做 PTS 重排。",[11,366,367],{},"這是已知限制。提案中的 WASM memory64 規範會把它升到 64 位元定址，但 2026 年還在 Chrome 的 flag 後面，Firefox\u002FSafari 沒有。",[15,369,371],{"id":370},"結果dash-重封裝無-ts-解封裝","結果：DASH 重封裝（無 TS 解封裝）",[11,373,374],{},"同樣的 1080p\u002F4K 內容但 DASH 源（fMP4 分片，不需要解封裝）：",[149,376,377,389],{},[152,378,379],{},[155,380,381,383,386],{},[158,382,160],{},[158,384,385],{},"Mac (M2) 1080p",[158,387,388],{},"Mac (M2) 4K",[171,390,391,400,409,419],{},[155,392,393,395,398],{},[176,394,108],{},[176,396,397],{},"4s",[176,399,221],{},[155,401,402,404,406],{},[176,403,191],{},[176,405,183],{},[176,407,408],{},"70s",[155,410,411,413,416],{},[176,412,284],{},[176,414,415],{},"6s",[176,417,418],{},"25s",[155,420,421,424,427],{},[176,422,423],{},"純 JS 拼接（不用 FFmpeg）",[176,425,426],{},"2s",[176,428,183],{},[11,430,431,433,434,438],{},[21,432,232],{}," DASH 快得多，因為沒有解封裝步驟——",[86,435,437],{"href":436},"\u002Fzh-Hant\u002Fblog\u002Fbrowser-streaming-remux-mp4-isobmff","重封裝那篇"," 講為什麼。純 JS 拼接（完全不用 FFmpeg）對 DASH 可行，跑到接近記憶體頻寬極限。",[11,440,441],{},"這就是為什麼 FlowPick 的 DASH 路徑比 HLS 路徑快——HLS 要解 MPEG-TS，DASH 不用。",[15,443,445],{"id":444},"結果解碼-抽幀30-分鐘-1080p-抽-1800-幀","結果：解碼 + 抽幀（30 分鐘 1080p 抽 1800 幀）",[149,447,448,460],{},[152,449,450],{},[155,451,452,454,456,458],{},[158,453,160],{},[158,455,163],{},[158,457,166],{},[158,459,169],{},[171,461,462,472,483,495,507],{},[155,463,464,466,468,470],{},[176,465,108],{},[176,467,221],{},[176,469,224],{},[176,471,263],{},[155,473,474,476,478,480],{},[176,475,191],{},[176,477,290],{},[176,479,200],{},[176,481,482],{},"320s",[155,484,485,487,489,492],{},[176,486,284],{},[176,488,263],{},[176,490,491],{},"68s",[176,493,494],{},"130s",[155,496,497,499,502,504],{},[176,498,139],{},[176,500,501],{},"31s",[176,503,260],{},[176,505,506],{},"85s",[155,508,509,512,514,517],{},[176,510,511],{},"WebCodecs + Worker 池（4 worker）",[176,513,183],{},[176,515,516],{},"16s",[176,518,519],{},"35s",[11,521,522,524],{},[21,523,232],{}," WebCodecs 加 worker 池是瀏覽器最快的方案——高階硬體上在原生的 2 倍以內。硬體加速真有差。中階硬體上 FFmpeg WASM 多執行緒跟 WebCodecs 單 worker 相當，因為 Ryzen 5 5500U 的 GPU 弱。",[11,526,527],{},"worker 池的擴充性重要：4 worker 比 1 worker 快約 2.5 倍（亞線性，因 GPU 爭用）。8 worker 沒多大用——GPU 在 4-6 路並發解碼就飽和了。",[15,529,531],{"id":530},"結果瀏覽器對比mac-m21080p-重封裝","結果：瀏覽器對比（Mac M2，1080p 重封裝）",[149,533,534,548],{},[152,535,536],{},[155,537,538,541,543,545],{},[158,539,540],{},"瀏覽器",[158,542,191],{},[158,544,284],{},[158,546,547],{},"WebCodecs",[171,549,550,560,573],{},[155,551,552,554,556,558],{},[176,553,46],{},[176,555,194],{},[176,557,186],{},[176,559,501],{},[155,561,562,564,567,570],{},[176,563,49],{},[176,565,566],{},"92s",[176,568,569],{},"n\u002Fa（無 pthreads）",[176,571,572],{},"n\u002Fa（無 WebCodecs）",[155,574,575,577,580,582],{},[176,576,52],{},[176,578,579],{},"88s",[176,581,569],{},[176,583,584],{},"35s（codec 支援有限）",[11,586,587,589],{},[21,588,232],{}," Chrome 是唯一所有方案都能跑的瀏覽器。Firefox 同時缺 WASM pthreads 和 WebCodecs（2026 年中 WebCodecs 還在 flags 後面）。Safari 有 WebCodecs 但 codec 支援有限（無 AV1，VP9 有限）。",[11,591,592,593,597],{},"這就是為什麼 FlowPick 推薦 Chrome——見 ",[86,594,596],{"href":595},"\u002Fzh-Hant\u002Fblog\u002Fflowpick-v1-0-0-first-public-release","v1.0.0 發布說明","。",[15,599,600],{"id":600},"記憶體使用",[11,602,603],{},"峰值記憶體（Chrome 127、Mac M2、1080p 重封裝）：",[149,605,606,618],{},[152,607,608],{},[155,609,610,612,615],{},[158,611,160],{},[158,613,614],{},"峰值記憶體",[158,616,617],{},"說明",[171,619,620,630,640,650],{},[155,621,622,624,627],{},[176,623,108],{},[176,625,626],{},"80MB",[176,628,629],{},"基線",[155,631,632,634,637],{},[176,633,191],{},[176,635,636],{},"220MB",[176,638,639],{},"WASM 開銷 + 分片緩衝",[155,641,642,644,647],{},[176,643,205],{},[176,645,646],{},"280MB",[176,648,649],{},"+ 8 個 worker 上下文",[155,651,652,654,657],{},[176,653,139],{},[176,655,656],{},"95MB",[176,658,659],{},"硬體加速用 GPU 記憶體，不占主存",[11,661,662],{},"4K 重封裝峰值記憶體翻倍到約 500MB（FFmpeg WASM 多執行緒）——還在瀏覽器分頁 2GB 軟上限內，但夠近，可能要關其他分頁。",[11,664,665],{},"記憶體曲線影響體驗。4K 重封裝讓 8GB 機器的分頁崩是糟糕體驗。FlowPick 的分塊處理（一次處理 50 個分片、寫 OPFS、釋放記憶體）讓 4K 的峰值記憶體也壓在 300MB 以內。",[15,667,668],{"id":668},"串流下載基準",[11,670,671],{},"分片本身能下多快？這是網路瓶頸部分。",[11,673,674],{},"測試：300 個分片、每個約 1.7MB、共 500MB、來自 CloudFront CDN。",[149,676,677,690],{},[152,678,679],{},[155,680,681,684,687],{},[158,682,683],{},"並發",[158,685,686],{},"實際耗時",[158,688,689],{},"有效頻寬",[171,691,692,702,712,723,733,744],{},[155,693,694,697,699],{},[176,695,696],{},"1",[176,698,290],{},[176,700,701],{},"3.4 MB\u002Fs",[155,703,704,707,709],{},[176,705,706],{},"4",[176,708,260],{},[176,710,711],{},"13.2 MB\u002Fs",[155,713,714,717,720],{},[176,715,716],{},"6",[176,718,719],{},"26s",[176,721,722],{},"19.2 MB\u002Fs",[155,724,725,728,730],{},[176,726,727],{},"8",[176,729,186],{},[176,731,732],{},"22.7 MB\u002Fs",[155,734,735,738,741],{},[176,736,737],{},"12",[176,739,740],{},"21s",[176,742,743],{},"23.8 MB\u002Fs",[155,745,746,749,751],{},[176,747,748],{},"16",[176,750,224],{},[176,752,753],{},"20.8 MB\u002Fs（更慢——被限速）",[11,755,756,758],{},[21,757,232],{}," 6-8 個並發連線是甜點。超過這個數 CDN 開始按 IP 限速。FlowPick 預設 6。",[11,760,761],{},"「有效頻寬」被 CDN 卡，不是被瀏覽器卡。無限並發也跑不過 CDN 允許的上限。",[15,763,764],{"id":764},"方法論細節",[11,766,767,770],{},[21,768,769],{},"預熱："," 每個測試跑兩次；第一次丟掉（WASM 編譯、JIT 預熱等）。",[11,772,773,776],{},[21,774,775],{},"電源："," 筆記型插電、效能模式。電池模式 Mac 降頻約 30%、Windows 約 50%。",[11,778,779,782],{},[21,780,781],{},"其他分頁："," 無。背景分頁搶 CPU\u002F記憶體。",[11,784,785,788],{},[21,786,787],{},"散熱："," 所有筆記型放在散熱墊上。熱降頻是真的——沒主動散熱，持續 4K 重封裝 5 分鐘後掉 15-20%。",[11,790,791,794,795,798],{},[21,792,793],{},"FFmpeg 參數："," ",[111,796,797],{},"-c copy -f mp4 -movflags +faststart"," 做重封裝。無濾鏡、無轉碼。",[11,800,801,794,804,807,808,810],{},[21,802,803],{},"WASM 版本：",[111,805,806],{},"@ffmpeg\u002Fcore"," 0.12.10，多執行緒版配 ",[111,809,134],{},"。COEP\u002FCOOP 標頭正確設定以支援 SharedArrayBuffer。",[15,812,813],{"id":813},"這些數字意味著什麼",[11,815,816,819],{},[21,817,818],{},"1080p 內容（最常見）："," 瀏覽器扛得住。FFmpeg WASM 多執行緒 30 分鐘 1080p 在 22-65 秒，看硬體。能用 WebCodecs 更快。原生快 2-3 倍但要安裝。",[11,821,822,825],{},[21,823,824],{},"4K 內容："," 高階硬體（16GB+ RAM、近期 CPU）上瀏覽器扛得住。中階硬體掙扎。分塊處理是必須的。",[11,827,828,831],{},[21,829,830],{},"8K 內容："," 2026 年瀏覽器扛不住。等 memory64 WASM 或者用原生。",[11,833,834,837],{},[21,835,836],{},"解碼密集型（抽幀、分析）："," WebCodecs 加 worker 池是明顯贏家。好硬體上在原生 2 倍以內。",[11,839,840,843],{},[21,841,842],{},"廣泛 codec 支援："," FFmpeg WASM。WebCodecs 限於瀏覽器支援的 codec（H.264、H.265、VP9、AV1——每個瀏覽器有 caveat）。",[15,845,847],{"id":846},"我的看法瀏覽器對-90-場景夠用","我的看法：瀏覽器對 90% 場景夠用",[11,849,850],{},"「瀏覽器做不了真影片處理」這話過時了。1080p 重封裝和解碼——覆蓋絕大多數真實使用——現代硬體跑 Chrome 瀏覽器影片處理在原生的 2-3 倍以內。夠快了，幾秒的延遲差（30 分鐘影片多等幾秒）遠不如工作流的差（不安裝、不配 PATH、不安裝 FFmpeg）重要。",[11,852,853],{},"剩下 10%——中階硬體上的 4K、任何地方的 8K、稀有 codec——還得原生。這沒關係。什麼活用什麼工具。",[11,855,856,857,861],{},"FlowPick 的的賭注：瀏覽器裡最佳化 90% 場景，剩下 10% 給「用 yt-dlp」的建議。",[86,858,860],{"href":859},"\u002Fzh-Hant\u002Fblog\u002Fflowpick-vs-yt-dlp","FlowPick vs. yt-dlp 對比"," 講什麼時候用哪個。",[15,863,864],{"id":864},"參考資料",[25,866,867,876,884],{},[28,868,869,875],{},[86,870,874],{"href":871,"rel":872},"https:\u002F\u002Fffmpegwasm.netlify.app\u002F",[873],"nofollow","FFmpeg WASM 文件"," — 設定和執行緒配置",[28,877,878,883],{},[86,879,882],{"href":880,"rel":881},"https:\u002F\u002Fcaniuse.com\u002Fwebcodecs",[873],"WebCodecs 瀏覽器支援"," — 相容性表",[28,885,886,891],{},[86,887,890],{"href":888,"rel":889},"https:\u002F\u002Fgithub.com\u002FWebAssembly\u002Fmemory64",[873],"Memory64 提案"," — 提升 WASM 4GB 記憶體上限的提案",[15,893,894],{"id":894},"小結",[11,896,897],{},"瀏覽器影片處理對 1080p 工作負載在任何現代硬體上都可行，4K 在高階硬體上可行。8K 在 WASM 出 memory64 之前不可行。FFmpeg WASM 多執行緒是最好的通用工具；WebCodecs 加 worker 在解碼密集型任務上更快但受 codec 限制。",[11,899,900],{},"這裡的方法論可重現——測試檔案在參考資料裡連結，FFmpeg 參數列了，硬體指定了。你的工作負載不同，用同樣模式自己跑測試。",[11,902,903,904,906,907,909,910,597],{},"支撐這些數字的實現模式，看 ",[86,905,89],{"href":88}," 和 ",[86,908,437],{"href":436},"。你能處理什麼的法律考量，看 ",[86,911,913],{"href":912},"\u002Fzh-Hant\u002Fblog\u002Fis-it-legal-to-download-streaming-video","串流媒體下載合法性指南",[915,916],"hr",{},[15,918,919],{"id":919},"推薦閱讀",[25,921,922,930,938,947,955,964],{},[28,923,924,929],{},[21,925,926],{},[86,927,928],{"href":88},"WebCodecs + Web Workers + OPFS：瀏覽器影片處理實戰"," — 這裡測的實現模式",[28,931,932,937],{},[21,933,934],{},[86,935,936],{"href":436},"瀏覽器端影片重封裝：fMP4、ISOBMFF 和不轉碼的理由"," — 重封裝為什麼快、轉碼為什麼不快",[28,939,940,946],{},[21,941,942],{},[86,943,945],{"href":944},"\u002Fzh-Hant\u002Fblog\u002Fhow-flowpick-merges-video-segments-in-browser","FlowPick 是怎麼在瀏覽器裡把幾百個影片分片合成 MP4 的"," — FlowPick 具體實現",[28,948,949,954],{},[21,950,951],{},[86,952,953],{"href":859},"FlowPick vs. yt-dlp"," — 瀏覽器還是原生的選擇時機",[28,956,957,963],{},[21,958,959],{},[86,960,962],{"href":961},"\u002Fzh-Hant\u002Fblog\u002Fhls-m3u8-deep-dive-encryption-multitrack","HLS 深度：加密、多音軌、值得記住的 EXT-X 標籤"," — 這裡做基準的 HLS 格式",[28,965,966,972],{},[21,967,968],{},[86,969,971],{"href":970},"\u002Fzh-Hant\u002Fblog\u002Fflowpick-v1-1-0-smarter-media-detection","FlowPick v1.1.0：更聰明的媒體偵測"," — 加上分塊處理大檔案的那個版本",{"title":974,"searchDepth":975,"depth":975,"links":976},"",2,[977,978,979,980,981,982,983,984,985,986,987,988,989,990,991],{"id":17,"depth":975,"text":17},{"id":146,"depth":975,"text":147},{"id":236,"depth":975,"text":237},{"id":308,"depth":975,"text":309},{"id":370,"depth":975,"text":371},{"id":444,"depth":975,"text":445},{"id":530,"depth":975,"text":531},{"id":600,"depth":975,"text":600},{"id":668,"depth":975,"text":668},{"id":764,"depth":975,"text":764},{"id":813,"depth":975,"text":813},{"id":846,"depth":975,"text":847},{"id":864,"depth":975,"text":864},{"id":894,"depth":975,"text":894},{"id":919,"depth":975,"text":919},"tips","2026-08-04","真實硬體上的真實資料——1080p\u002F4K\u002F8K 重封裝和解碼基準，橫跨 FFmpeg WASM、WebCodecs、原生 FFmpeg。附方法論、原始資料、數字到底意味著什麼。","md","\u002Fscreenshots\u002Fformat-conversion.png",{},true,"\u002Fzh-hant\u002Fblog\u002Fbrowser-video-processing-performance-benchmarks",13,{"title":5,"description":994},"zh-Hant\u002Fblog\u002Fbrowser-video-processing-performance-benchmarks",[1004,1005,1006,1007,1008,1009],"效能","基準","wasm","webcodecs","ffmpeg","深度","0DFnZe6OZirNNl8VSihi8_Q00OoTs3ZdUfuAQustYaE",[1012,1016],{"title":936,"path":1013,"stem":1014,"description":1015,"date":993,"category":992,"children":-1},"\u002Fzh-hant\u002Fblog\u002Fbrowser-streaming-remux-mp4-isobmff","zh-Hant\u002Fblog\u002Fbrowser-streaming-remux-mp4-isobmff","把 TS 分片拼成 MP4 不是轉碼——是重封裝。講清楚 fMP4 結構、為什麼 init 分片是命脈、純 JS 怎麼實作，以及和 FFmpeg WASM 的效能對比。",{"title":1017,"path":1018,"stem":1019,"description":1020,"date":993,"category":992,"children":-1},"DASH 深度：SegmentTemplate、ContentProtection 與多視角 MPD 結構","\u002Fzh-hant\u002Fblog\u002Fdash-mpd-deep-dive-segmenttemplate-contentprotection","zh-Hant\u002Fblog\u002Fdash-mpd-deep-dive-segmenttemplate-contentprotection","MPD 入門之後的進階——SegmentTemplate 對比 SegmentTimeline、$Number$ 對比 $Time$、ContentProtection 信令，以及 DASH 比 HLS 難解析卻好下載的結構性原因。",1787670589819]