[{"data":1,"prerenderedAt":1831},["ShallowReactive",2],{"docs-navigation":3,"\u002Fdocs\u002Ffeatures\u002Fformat-conversion":298,"\u002Fdocs\u002Ffeatures\u002Fformat-conversion-surround":1826},[4,165],{"title":5,"path":6,"stem":7,"children":8,"page":32},"Docs","\u002Fdocs","1.docs",[9,33,79,100,129,149],{"title":10,"path":11,"stem":12,"children":13,"icon":32},"Getting Started","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started\u002F1.index",[14,17,22,27],{"title":15,"path":11,"stem":12,"icon":16},"Introduction","i-lucide-house",{"title":18,"path":19,"stem":20,"icon":21},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","1.docs\u002F1.getting-started\u002F2.installation","i-lucide-download",{"title":23,"path":24,"stem":25,"icon":26},"Usage Guide","\u002Fdocs\u002Fgetting-started\u002Fusage","1.docs\u002F1.getting-started\u002F3.usage","i-lucide-sliders",{"title":28,"path":29,"stem":30,"icon":31},"Configuration Reference","\u002Fdocs\u002Fgetting-started\u002Fconfiguration","1.docs\u002F1.getting-started\u002F4.configuration","i-lucide-settings",false,{"title":34,"icon":35,"path":36,"stem":37,"children":38,"page":32},"Features","i-lucide-star","\u002Fdocs\u002Ffeatures","1.docs\u002F2.features",[39,44,49,54,59,64,69,74],{"title":40,"path":41,"stem":42,"icon":43},"Video Sniffing","\u002Fdocs\u002Ffeatures\u002Fvideo-sniffing","1.docs\u002F2.features\u002F1.video-sniffing","i-lucide-video",{"title":45,"path":46,"stem":47,"icon":48},"Audio Capture","\u002Fdocs\u002Ffeatures\u002Faudio-capture","1.docs\u002F2.features\u002F2.audio-capture","i-lucide-music",{"title":50,"path":51,"stem":52,"icon":53},"Image Download","\u002Fdocs\u002Ffeatures\u002Fimage-download","1.docs\u002F2.features\u002F3.image-download","i-lucide-image",{"title":55,"path":56,"stem":57,"icon":58},"Privacy & Security","\u002Fdocs\u002Ffeatures\u002Fprivacy-security","1.docs\u002F2.features\u002F4.privacy-security","i-lucide-shield-check",{"title":60,"path":61,"stem":62,"icon":63},"Format Conversion","\u002Fdocs\u002Ffeatures\u002Fformat-conversion","1.docs\u002F2.features\u002F5.format-conversion","i-lucide-arrow-left-right",{"title":65,"path":66,"stem":67,"icon":68},"Batch Download","\u002Fdocs\u002Ffeatures\u002Fbatch-download","1.docs\u002F2.features\u002F6.batch-download","i-lucide-layers",{"title":70,"path":71,"stem":72,"icon":73},"Keyboard Shortcuts","\u002Fdocs\u002Ffeatures\u002Fkeyboard-shortcuts","1.docs\u002F2.features\u002F7.keyboard-shortcuts","i-lucide-keyboard",{"title":75,"path":76,"stem":77,"icon":78},"Search & Filter","\u002Fdocs\u002Ffeatures\u002Fsearch-filter","1.docs\u002F2.features\u002F8.search-filter","i-lucide-search",{"title":80,"icon":81,"path":82,"stem":83,"children":84,"page":32},"Advanced","i-lucide-book-open","\u002Fdocs\u002Fadvanced","1.docs\u002F3.advanced",[85,90,95],{"title":86,"path":87,"stem":88,"icon":89},"Online Tools","\u002Fdocs\u002Fadvanced\u002Fonline-tools","1.docs\u002F3.advanced\u002F1.online-tools","i-lucide-globe",{"title":91,"path":92,"stem":93,"icon":94},"Browser Compatibility","\u002Fdocs\u002Fadvanced\u002Fbrowser-compatibility","1.docs\u002F3.advanced\u002F2.browser-compatibility","i-lucide-monitor-check",{"title":96,"path":97,"stem":98,"icon":99},"Download Engine Architecture","\u002Fdocs\u002Fadvanced\u002Fdownload-engine","1.docs\u002F3.advanced\u002F3.download-engine","i-lucide-cpu",{"title":101,"icon":102,"path":103,"stem":104,"children":105,"page":32},"Use Cases","i-lucide-lightbulb","\u002Fdocs\u002Fusecases","1.docs\u002F4.usecases",[106,111,115,120,125],{"title":107,"path":108,"stem":109,"icon":110},"Online Course Video Downloader for Offline Learning","\u002Fdocs\u002Fusecases\u002Fonline-courses","1.docs\u002F4.usecases\u002F1.online-courses","i-lucide-graduation-cap",{"title":112,"path":113,"stem":114,"icon":43},"Video Platform Stream Downloader for Public Media","\u002Fdocs\u002Fusecases\u002Fvideo-platforms","1.docs\u002F4.usecases\u002F2.video-platforms",{"title":116,"path":117,"stem":118,"icon":119},"Live Replay Downloader for Large Streaming Videos","\u002Fdocs\u002Fusecases\u002Flive-replays","1.docs\u002F4.usecases\u002F3.live-replays","i-lucide-radio",{"title":121,"path":122,"stem":123,"icon":124},"Podcast and Audio Downloader for Offline Listening","\u002Fdocs\u002Fusecases\u002Fpodcasts-audio","1.docs\u002F4.usecases\u002F4.podcasts-audio","i-lucide-headphones",{"title":126,"path":127,"stem":128,"icon":53},"Bulk Image Downloader for Web Galleries and Wallpapers","\u002Fdocs\u002Fusecases\u002Fimage-galleries","1.docs\u002F4.usecases\u002F5.image-galleries",{"title":130,"icon":131,"path":132,"stem":133,"children":134,"page":32},"Troubleshooting","i-lucide-wrench","\u002Fdocs\u002Ftroubleshooting","1.docs\u002F5.troubleshooting",[135,139,144],{"title":136,"path":137,"stem":138,"icon":131},"Common Issues Troubleshooting","\u002Fdocs\u002Ftroubleshooting\u002Fcommon-issues","1.docs\u002F5.troubleshooting\u002F1.common-issues",{"title":140,"path":141,"stem":142,"icon":143},"Known Limitations & Caveats","\u002Fdocs\u002Ftroubleshooting\u002Fknown-issues","1.docs\u002F5.troubleshooting\u002F2.known-issues","i-lucide-alert-triangle",{"title":145,"path":146,"stem":147,"icon":148},"FAQ","\u002Fdocs\u002Ftroubleshooting\u002Ffaq","1.docs\u002F5.troubleshooting\u002F3.faq","i-lucide-message-circle-question",{"title":150,"icon":151,"path":152,"stem":153,"children":154,"page":32},"Developer Docs","i-lucide-code","\u002Fdocs\u002Fdeveloper","1.docs\u002F6.developer",[155,160],{"title":156,"path":157,"stem":158,"icon":159},"Contributing Guide","\u002Fdocs\u002Fdeveloper\u002Fcontributing","1.docs\u002F6.developer\u002F1.contributing","i-lucide-git-pull-request",{"title":161,"path":162,"stem":163,"icon":164},"Project Architecture","\u002Fdocs\u002Fdeveloper\u002Farchitecture","1.docs\u002F6.developer\u002F2.architecture","i-lucide-box",{"title":166,"path":167,"stem":168,"children":169,"page":32},"Zh Hans","\u002Fzh-hans","zh-Hans",[170,189,226,243,268,285],{"title":171,"path":172,"stem":173,"children":174,"icon":32},"快速开始","\u002Fzh-hans\u002Fgetting-started","zh-Hans\u002F1.getting-started\u002F1.index",[175,177,181,185],{"title":176,"path":172,"stem":173,"icon":16},"简介",{"title":178,"path":179,"stem":180,"icon":21},"安装","\u002Fzh-hans\u002Fgetting-started\u002Finstallation","zh-Hans\u002F1.getting-started\u002F2.installation",{"title":182,"path":183,"stem":184,"icon":26},"使用方法","\u002Fzh-hans\u002Fgetting-started\u002Fusage","zh-Hans\u002F1.getting-started\u002F3.usage",{"title":186,"path":187,"stem":188,"icon":31},"配置参考","\u002Fzh-hans\u002Fgetting-started\u002Fconfiguration","zh-Hans\u002F1.getting-started\u002F4.configuration",{"title":190,"icon":35,"path":191,"stem":192,"children":193,"page":32},"功能特性","\u002Fzh-hans\u002Ffeatures","zh-Hans\u002F2.features",[194,198,202,206,210,214,218,222],{"title":195,"path":196,"stem":197,"icon":43},"视频嗅探","\u002Fzh-hans\u002Ffeatures\u002Fvideo-sniffing","zh-Hans\u002F2.features\u002F1.video-sniffing",{"title":199,"path":200,"stem":201,"icon":48},"音频捕获","\u002Fzh-hans\u002Ffeatures\u002Faudio-capture","zh-Hans\u002F2.features\u002F2.audio-capture",{"title":203,"path":204,"stem":205,"icon":53},"图片下载","\u002Fzh-hans\u002Ffeatures\u002Fimage-download","zh-Hans\u002F2.features\u002F3.image-download",{"title":207,"path":208,"stem":209,"icon":58},"隐私与安全","\u002Fzh-hans\u002Ffeatures\u002Fprivacy-security","zh-Hans\u002F2.features\u002F4.privacy-security",{"title":211,"path":212,"stem":213,"icon":63},"格式转换","\u002Fzh-hans\u002Ffeatures\u002Fformat-conversion","zh-Hans\u002F2.features\u002F5.format-conversion",{"title":215,"path":216,"stem":217,"icon":68},"批量下载","\u002Fzh-hans\u002Ffeatures\u002Fbatch-download","zh-Hans\u002F2.features\u002F6.batch-download",{"title":219,"path":220,"stem":221,"icon":73},"键盘快捷键","\u002Fzh-hans\u002Ffeatures\u002Fkeyboard-shortcuts","zh-Hans\u002F2.features\u002F7.keyboard-shortcuts",{"title":223,"path":224,"stem":225,"icon":78},"搜索与筛选","\u002Fzh-hans\u002Ffeatures\u002Fsearch-filter","zh-Hans\u002F2.features\u002F8.search-filter",{"title":227,"icon":81,"path":228,"stem":229,"children":230,"page":32},"高级指南","\u002Fzh-hans\u002Fadvanced","zh-Hans\u002F3.advanced",[231,235,239],{"title":232,"path":233,"stem":234,"icon":89},"在线工具","\u002Fzh-hans\u002Fadvanced\u002Fonline-tools","zh-Hans\u002F3.advanced\u002F1.online-tools",{"title":236,"path":237,"stem":238,"icon":94},"浏览器兼容性","\u002Fzh-hans\u002Fadvanced\u002Fbrowser-compatibility","zh-Hans\u002F3.advanced\u002F2.browser-compatibility",{"title":240,"path":241,"stem":242,"icon":99},"下载引擎架构","\u002Fzh-hans\u002Fadvanced\u002Fdownload-engine","zh-Hans\u002F3.advanced\u002F3.download-engine",{"title":244,"icon":102,"path":245,"stem":246,"children":247,"page":32},"使用场景","\u002Fzh-hans\u002Fusecases","zh-Hans\u002F4.usecases",[248,252,256,260,264],{"title":249,"path":250,"stem":251,"icon":110},"在线课程视频下载与离线学习","\u002Fzh-hans\u002Fusecases\u002Fonline-courses","zh-Hans\u002F4.usecases\u002F1.online-courses",{"title":253,"path":254,"stem":255,"icon":43},"视频平台流媒体下载与素材收集","\u002Fzh-hans\u002Fusecases\u002Fvideo-platforms","zh-Hans\u002F4.usecases\u002F2.video-platforms",{"title":257,"path":258,"stem":259,"icon":119},"直播回放下载与大文件流媒体保存","\u002Fzh-hans\u002Fusecases\u002Flive-replays","zh-Hans\u002F4.usecases\u002F3.live-replays",{"title":261,"path":262,"stem":263,"icon":124},"播客与网页音频下载","\u002Fzh-hans\u002Fusecases\u002Fpodcasts-audio","zh-Hans\u002F4.usecases\u002F4.podcasts-audio",{"title":265,"path":266,"stem":267,"icon":53},"图库与壁纸批量图片下载","\u002Fzh-hans\u002Fusecases\u002Fimage-galleries","zh-Hans\u002F4.usecases\u002F5.image-galleries",{"title":269,"icon":131,"path":270,"stem":271,"children":272,"page":32},"故障排除","\u002Fzh-hans\u002Ftroubleshooting","zh-Hans\u002F5.troubleshooting",[273,277,281],{"title":274,"path":275,"stem":276,"icon":131},"常见问题排查","\u002Fzh-hans\u002Ftroubleshooting\u002Fcommon-issues","zh-Hans\u002F5.troubleshooting\u002F1.common-issues",{"title":278,"path":279,"stem":280,"icon":143},"已知限制与注意事项","\u002Fzh-hans\u002Ftroubleshooting\u002Fknown-issues","zh-Hans\u002F5.troubleshooting\u002F2.known-issues",{"title":282,"path":283,"stem":284,"icon":148},"常见问题解答","\u002Fzh-hans\u002Ftroubleshooting\u002Ffaq","zh-Hans\u002F5.troubleshooting\u002F3.faq",{"title":286,"icon":151,"path":287,"stem":288,"children":289,"page":32},"开发者文档","\u002Fzh-hans\u002Fdeveloper","zh-Hans\u002F6.developer",[290,294],{"title":291,"path":292,"stem":293,"icon":159},"贡献指南","\u002Fzh-hans\u002Fdeveloper\u002Fcontributing","zh-Hans\u002F6.developer\u002F1.contributing",{"title":295,"path":296,"stem":297,"icon":164},"项目架构","\u002Fzh-hans\u002Fdeveloper\u002Farchitecture","zh-Hans\u002F6.developer\u002F2.architecture",{"id":299,"title":60,"body":300,"date":1816,"description":1817,"extension":1818,"lastModified":1819,"meta":1820,"navigation":1821,"path":61,"seo":1822,"stem":62,"__hash__":1825},"docs\u002F1.docs\u002F2.features\u002F5.format-conversion.md",{"type":301,"value":302,"toc":1785},"minimark",[303,307,314,317,322,325,375,382,398,410,412,416,419,534,540,542,546,549,601,606,609,620,626,642,652,657,739,744,755,759,765,769,780,784,795,799,807,819,823,826,830,848,852,863,867,875,879,882,887,893,899,905,909,912,918,927,929,933,937,942,956,961,981,984,988,1002,1006,1022,1026,1032,1034,1038,1041,1145,1150,1154,1233,1235,1239,1243,1246,1317,1321,1324,1375,1383,1386,1465,1472,1474,1477,1480,1628,1631,1684,1686,1689,1693,1696,1700,1709,1713,1716,1727,1738,1740,1744,1781],[304,305,306],"p",{},"FlowPick can merge fragments and convert to standard formats while downloading streaming media. This document explains supported conversion paths, underlying technical principles, output format selection, and performance characteristics.",[304,308,309],{},[310,311],"img",{"alt":312,"src":313},"Format Conversion Workflow","\u002Fscreenshots\u002Fformat-conversion.png",[315,316],"hr",{},[318,319,321],"h2",{"id":320},"prerequisite-concepts-container-vs-codec","Prerequisite Concepts: Container vs Codec",[304,323,324],{},"Before understanding format conversion, need to distinguish two easily confused concepts:",[326,327,328,344],"table",{},[329,330,331],"thead",{},[332,333,334,338,341],"tr",{},[335,336,337],"th",{},"Concept",[335,339,340],{},"Description",[335,342,343],{},"Analogy",[345,346,347,362],"tbody",{},[332,348,349,356,359],{},[350,351,352],"td",{},[353,354,355],"strong",{},"Container",[350,357,358],{},"File's \"shell\", determines file extension and internal data organization",[350,360,361],{},"Shipping box — determines package shape",[332,363,364,369,372],{},[350,365,366],{},[353,367,368],{},"Codec",[350,370,371],{},"Compression algorithm for audio\u002Fvideo data",[350,373,374],{},"Contents inside the box",[304,376,377,378,381],{},"FlowPick's format conversion ",[353,379,380],{},"only changes the container, not the codec"," (i.e., \"remuxing\"). This means:",[383,384,385,392,395],"ul",{},[386,387,388,389],"li",{},"Video quality and audio quality ",[353,390,391],{},"remain completely unchanged",[386,393,394],{},"Conversion is very fast (no re-encoding involved)",[386,396,397],{},"Cannot change codec formats (e.g., H.265 → H.264)",[399,400,401],"tip",{},[304,402,403,404,409],{},"If you need to change codec formats (e.g., compress video, convert codec), use native FFmpeg command-line tool. See ",[405,406,408],"a",{"href":407},"#command-line-alternatives","Command Line Alternatives",".",[315,411],{},[318,413,415],{"id":414},"conversion-path-overview","Conversion Path Overview",[304,417,418],{},"FlowPick supports following conversion paths, covering both HLS and DASH mainstream streaming protocols:",[326,420,421,443],{},[329,422,423],{},[332,424,425,428,431,434,437,440],{},[335,426,427],{},"Source Format",[335,429,430],{},"Target Format",[335,432,433],{},"Conversion Method",[335,435,436],{},"Speed",[335,438,439],{},"Quality",[335,441,442],{},"Typical Use Case",[345,444,445,465,483,499,516],{},[332,446,447,450,453,456,459,462],{},[350,448,449],{},"HLS (TS fragments)",[350,451,452],{},"MP4",[350,454,455],{},"FFmpeg WASM Remuxing",[350,457,458],{},"Medium",[350,460,461],{},"Lossless",[350,463,464],{},"Universal playback, video editing",[332,466,467,469,472,475,478,480],{},[350,468,449],{},[350,470,471],{},"TS",[350,473,474],{},"Binary Direct Concatenation",[350,476,477],{},"Extremely Fast",[350,479,461],{},[350,481,482],{},"Maximum speed, post-processing",[332,484,485,488,490,492,494,496],{},[350,486,487],{},"DASH (MP4 fragments)",[350,489,452],{},[350,491,455],{},[350,493,458],{},[350,495,461],{},[350,497,498],{},"Universal playback",[332,500,501,504,506,509,511,513],{},[350,502,503],{},"DASH (FMP4 fragments)",[350,505,452],{},[350,507,508],{},"FFmpeg WASM Reassembly",[350,510,458],{},[350,512,461],{},[350,514,515],{},"Requires init segment",[332,517,518,521,523,526,529,531],{},[350,519,520],{},"DASH (separate audio\u002Fvideo)",[350,522,452],{},[350,524,525],{},"FFmpeg WASM Merge",[350,527,528],{},"Slower",[350,530,461],{},[350,532,533],{},"DASH separate audio\u002Fvideo streams",[535,536,537],"blockquote",{},[304,538,539],{},"\"Lossless\" means no re-encoding is performed; only container format is changed. Video and audio encoded data remain unchanged.",[315,541],{},[318,543,545],{"id":544},"technical-principles-of-conversion","Technical Principles of Conversion",[304,547,548],{},"FlowPick uses two conversion engines, automatically selecting optimal solution based on scenario:",[326,550,551,567],{},[329,552,553],{},[332,554,555,558,561,564],{},[335,556,557],{},"Engine",[335,559,560],{},"Applicable Scenario",[335,562,563],{},"Advantages",[335,565,566],{},"Disadvantages",[345,568,569,585],{},[332,570,571,576,579,582],{},[350,572,573],{},[353,574,575],{},"FFmpeg WASM",[350,577,578],{},"TS→MP4 remuxing, DASH merging, audio-video merge",[350,580,581],{},"Full functionality, supports complex conversions",[350,583,584],{},"Needs to load WASM file, higher memory usage",[332,586,587,592,595,598],{},[350,588,589],{},[353,590,591],{},"TSToMP4Muxer",[350,593,594],{},"TS→MP4 streaming remuxing",[350,596,597],{},"Pure JS implementation, no need to load FFmpeg, high memory efficiency",[350,599,600],{},"Only supports single TS→MP4 scenario",[602,603,605],"h3",{"id":604},"ts-fragments-mp4-ffmpeg-wasm-remuxing","TS Fragments → MP4 (FFmpeg WASM Remuxing)",[304,607,608],{},"HLS streams typically use MPEG-TS container. When converting to MP4, FlowPick uses FFmpeg WASM to perform following operations:",[304,610,611,614,615,619],{},[353,612,613],{},"Input",": Multiple ",[616,617,618],"code",{},".ts"," fragment files",[304,621,622,625],{},[353,623,624],{},"Processing Flow",":",[627,628,629,632,639],"ol",{},[386,630,631],{},"Write all TS fragments into FFmpeg virtual file system (WASM memory)",[386,633,634,635,638],{},"Generate concat file list (",[616,636,637],{},"filelist.txt",")",[386,640,641],{},"Execute remuxing command:",[643,644,649],"pre",{"className":645,"code":647,"language":648},[646],"language-text","ffmpeg -f concat -safe 0 -i filelist.txt \\\n  -c copy \\\n  -movflags +faststart \\\n  -bsf:a aac_adtstoasc \\\n  output.mp4\n","text",[616,650,647],{"__ignoreMap":651},"",[304,653,654,625],{},[353,655,656],{},"Key Parameter Explanation",[326,658,659,672],{},[329,660,661],{},[332,662,663,666,669],{},[335,664,665],{},"Parameter",[335,667,668],{},"Function",[335,670,671],{},"Why Needed",[345,673,674,687,700,713,726],{},[332,675,676,681,684],{},[350,677,678],{},[616,679,680],{},"-f concat",[350,682,683],{},"Use concat demuxer to concatenate fragments",[350,685,686],{},"TS fragments cannot be directly merged, need demuxer processing",[332,688,689,694,697],{},[350,690,691],{},[616,692,693],{},"-safe 0",[350,695,696],{},"Allow arbitrary file paths",[350,698,699],{},"WASM virtual file system has special path format",[332,701,702,707,710],{},[350,703,704],{},[616,705,706],{},"-c copy",[350,708,709],{},"Stream copy mode, no re-encoding",[350,711,712],{},"Ensures lossless conversion, fastest speed",[332,714,715,720,723],{},[350,716,717],{},[616,718,719],{},"-movflags +faststart",[350,721,722],{},"Move moov atom to beginning of file",[350,724,725],{},"Supports network progressive playback, watch while downloading",[332,727,728,733,736],{},[350,729,730],{},[616,731,732],{},"-bsf:a aac_adtstoasc",[350,734,735],{},"AAC audio format conversion",[350,737,738],{},"TS uses ADTS format, MP4 needs ASC format",[304,740,741,625],{},[353,742,743],{},"Performance Characteristics",[383,745,746,749,752],{},[386,747,748],{},"No encoding\u002Fdecoding involved, low CPU usage",[386,750,751],{},"Main time cost is in file I\u002FO (WASM virtual file system read\u002Fwrite)",[386,753,754],{},"Processing speed approximately 50-100 MB\u002Fs (depends on CPU and fragment count)",[602,756,758],{"id":757},"ts-fragments-mp4-tstomp4muxer-streaming-remuxing","TS Fragments → MP4 (TSToMP4Muxer Streaming Remuxing)",[304,760,761,762,764],{},"For large file scenarios, FlowPick prioritizes using proprietary ",[616,763,591],{}," for streaming remuxing, avoiding FFmpeg WASM memory limitations:",[304,766,767,625],{},[353,768,624],{},[627,770,771,774,777],{},[386,772,773],{},"Parse TS packets one by one (188 bytes\u002Fpacket), extract PES data",[386,775,776],{},"Convert to MP4 format media data in real-time",[386,778,779],{},"Stream write to disk via Streams API (FSA) or memory (Blob)",[304,781,782,625],{},[353,783,563],{},[383,785,786,789,792],{},[386,787,788],{},"Pure JavaScript implementation, no need to load FFmpeg WASM (saves ~30MB memory)",[386,790,791],{},"Streaming processing, memory usage independent of file size",[386,793,794],{},"Supports File System Access API for direct disk writing",[304,796,797,625],{},[353,798,566],{},[383,800,801,804],{},[386,802,803],{},"Only supports single TS→MP4 conversion path",[386,805,806],{},"Does not support separate audio-video merging",[808,809,810],"note",{},[304,811,812,814,815,818],{},[616,813,591],{}," is one of FlowPick's core innovations. It makes processing GB-scale video files possible in the browser without triggering memory overflow. See ",[405,816,817],{"href":97},"Download Engine"," for details.",[602,820,822],{"id":821},"ts-fragments-ts-direct-concatenation","TS Fragments → TS (Direct Concatenation)",[304,824,825],{},"This is the fastest \"conversion\" method — actually performs no conversion at all, only binary concatenation of TS fragments in order.",[304,827,828,625],{},[353,829,624],{},[627,831,832,835,845],{},[386,833,834],{},"Download all TS fragments to memory",[386,836,837,838,841,842],{},"Concatenate ",[616,839,840],{},"ArrayBuffer","s sequentially into single ",[616,843,844],{},"Uint8Array",[386,846,847],{},"Write directly to file",[304,849,850,625],{},[353,851,563],{},[383,853,854,857,860],{},[386,855,856],{},"Zero CPU overhead, speed limited only by disk write speed",[386,858,859],{},"Completely faithful, does not modify any bytes",[386,861,862],{},"Suitable for subsequent processing with professional tools",[304,864,865,625],{},[353,866,566],{},[383,868,869,872],{},[386,870,871],{},"File size may be slightly larger than MP4 (TS container overhead ~5-15%)",[386,873,874],{},"Some players have poorer support for TS files than MP4",[602,876,878],{"id":877},"dash-fragments-mp4","DASH Fragments → MP4",[304,880,881],{},"DASH stream fragments are usually MP4 or FMP4 format. Conversion process:",[304,883,884,625],{},[353,885,886],{},"Standard MP4 fragments",[643,888,891],{"className":889,"code":890,"language":648},[646],"ffmpeg -f concat -safe 0 -i filelist.txt \\\n  -c copy \\\n  -movflags +faststart \\\n  output.mp4\n",[616,892,890],{"__ignoreMap":651},[304,894,895,898],{},[353,896,897],{},"FMP4 fragments"," (requires init segment):",[643,900,903],{"className":901,"code":902,"language":648},[646],"ffmpeg -i init.mp4 -i video.mp4 -i audio.mp4 \\\n  -c:v copy -c:a copy \\\n  -movflags +faststart \\\n  output.mp4\n",[616,904,902],{"__ignoreMap":651},[602,906,908],{"id":907},"audio-video-separate-merge","Audio-Video Separate Merge",[304,910,911],{},"DASH streams' video and audio are usually in different AdaptationSets. Merging process:",[643,913,916],{"className":914,"code":915,"language":648},[646],"ffmpeg -f concat -safe 0 -i video_list.txt \\\n  -f concat -safe 0 -i audio_list.txt \\\n  -c:v copy -c:a copy \\\n  -movflags +faststart \\\n  -bsf:a aac_adtstoasc \\\n  output.mp4\n",[616,917,915],{"__ignoreMap":651},[399,919,920],{},[304,921,922,923,818],{},"DASH separate audio-video is an important feature of DASH protocol, allowing platforms to provide independent bitrate options for video and audio. FlowPick auto-detects and merges separate audio-video tracks. See ",[405,924,926],{"href":925},"\u002Fdocs\u002Ffeatures\u002Fvideo-sniffing#dashmpd-streams","Video Sniffing — DASH Streams",[315,928],{},[318,930,932],{"id":931},"output-format-selection-guide","Output Format Selection Guide",[602,934,936],{"id":935},"mp4-recommended","MP4 (Recommended)",[304,938,939],{},[353,940,941],{},"Use Cases:",[383,943,944,947,950,953],{},[386,945,946],{},"Need to play on various players and devices",[386,948,949],{},"Need to import into video editing software (Premiere, DaVinci Resolve, etc.)",[386,951,952],{},"Need to upload to video platforms (YouTube, Bilibili, etc.)",[386,954,955],{},"Need to ensure maximum compatibility",[304,957,958],{},[353,959,960],{},"Technical Details:",[383,962,963,966,972,975],{},[386,964,965],{},"Container: MPEG-4 Part 14",[386,967,968,969],{},"MIME Type: ",[616,970,971],{},"video\u002Fmp4",[386,973,974],{},"Supports H.264\u002FAVC, H.265\u002FHEVC, AAC, MP3 etc. codecs",[386,976,977,980],{},[616,978,979],{},"faststart"," flag ensures network progressive playback",[602,982,471],{"id":983},"ts",[304,985,986],{},[353,987,941],{},[383,989,990,993,996,999],{},[386,991,992],{},"Pursue fastest download speed (skip remuxing step)",[386,994,995],{},"Will further process with professional tools (e.g., FFmpeg CLI) later",[386,997,998],{},"Source stream itself is TS format and doesn't need conversion",[386,1000,1001],{},"Temporary storage, may delete later",[304,1003,1004],{},[353,1005,960],{},[383,1007,1008,1011,1016,1019],{},[386,1009,1010],{},"Container: MPEG Transport Stream",[386,1012,968,1013],{},[616,1014,1015],{},"video\u002Fmp2t",[386,1017,1018],{},"Each fragment independently playable",[386,1020,1021],{},"File size typically 5-15% larger than MP4",[602,1023,1025],{"id":1024},"format-selection-decision-tree","Format Selection Decision Tree",[643,1027,1030],{"className":1028,"code":1029,"language":648},[646],"Need max compatibility? ──Yes──→ Choose MP4\n      │\n      No\n      │\n      ▼\nPursue fastest speed? ──Yes──→ Choose TS\n      │\n      No\n      │\n      ▼\nWill process with FFmpeg later? ──Yes──→ Choose TS\n      │\n      No\n      │\n      ▼\n    Choose MP4 (Recommended)\n",[616,1031,1029],{"__ignoreMap":651},[315,1033],{},[318,1035,1037],{"id":1036},"performance-comparison","Performance Comparison",[304,1039,1040],{},"Following is actual test data under typical conditions (Chrome 126, Intel i7-13700, 16GB RAM):",[326,1042,1043,1065],{},[329,1044,1045],{},[332,1046,1047,1050,1053,1056,1059,1062],{},[335,1048,1049],{},"Scenario",[335,1051,1052],{},"Fragment Count",[335,1054,1055],{},"Total Size",[335,1057,1058],{},"TS Concatenation",[335,1060,1061],{},"MP4 Remuxing (FFmpeg)",[335,1063,1064],{},"MP4 Streaming (Muxer)",[345,1066,1067,1087,1106,1125],{},[332,1068,1069,1072,1075,1078,1081,1084],{},[350,1070,1071],{},"10 min 1080p video",[350,1073,1074],{},"~60",[350,1076,1077],{},"~200 MB",[350,1079,1080],{},"\u003C1 sec",[350,1082,1083],{},"~3 sec",[350,1085,1086],{},"~2 sec",[332,1088,1089,1092,1095,1098,1100,1103],{},[350,1090,1091],{},"30 min 1080p video",[350,1093,1094],{},"~180",[350,1096,1097],{},"~600 MB",[350,1099,1080],{},[350,1101,1102],{},"~8 sec",[350,1104,1105],{},"~5 sec",[332,1107,1108,1111,1114,1117,1119,1122],{},[350,1109,1110],{},"60 min 4K video",[350,1112,1113],{},"~360",[350,1115,1116],{},"~2.5 GB",[350,1118,1086],{},[350,1120,1121],{},"~30 sec",[350,1123,1124],{},"~18 sec",[332,1126,1127,1130,1133,1136,1139,1142],{},[350,1128,1129],{},"120 min 4K video",[350,1131,1132],{},"~720",[350,1134,1135],{},"~5 GB",[350,1137,1138],{},"~4 sec",[350,1140,1141],{},"~60 sec",[350,1143,1144],{},"~35 sec",[535,1146,1147],{},[304,1148,1149],{},"Above data are estimates; actual performance depends on CPU, memory, and browser state. Streaming Muxer shows more obvious advantages when processing large files.",[602,1151,1153],{"id":1152},"factors-affecting-conversion-speed","Factors Affecting Conversion Speed",[326,1155,1156,1169],{},[329,1157,1158],{},[332,1159,1160,1163,1166],{},[335,1161,1162],{},"Factor",[335,1164,1165],{},"Impact Level",[335,1167,1168],{},"Explanation",[345,1170,1171,1182,1192,1202,1212,1222],{},[332,1172,1173,1176,1179],{},[350,1174,1175],{},"Fragment count",[350,1177,1178],{},"High",[350,1180,1181],{},"More fragments = more file I\u002FO operations",[332,1183,1184,1187,1189],{},[350,1185,1186],{},"Total file size",[350,1188,1178],{},[350,1190,1191],{},"Directly affects read\u002Fwrite time",[332,1193,1194,1197,1199],{},[350,1195,1196],{},"CPU performance",[350,1198,458],{},[350,1200,1201],{},"FFmpeg WASM needs CPU for demux\u002Fmux",[332,1203,1204,1207,1209],{},[350,1205,1206],{},"Memory size",[350,1208,458],{},[350,1210,1211],{},"WASM virtual file system needs sufficient memory",[332,1213,1214,1217,1219],{},[350,1215,1216],{},"Disk write speed",[350,1218,458],{},[350,1220,1221],{},"Greater impact when using FSA direct writes",[332,1223,1224,1227,1230],{},[350,1225,1226],{},"Browser version",[350,1228,1229],{},"Low",[350,1231,1232],{},"Newer browsers have better WASM performance",[315,1234],{},[318,1236,1238],{"id":1237},"limitations-notes","Limitations & Notes",[602,1240,1242],{"id":1241},"codec-format-limitations","Codec Format Limitations",[304,1244,1245],{},"FlowPick's conversion only changes container format, does not perform re-encoding. This means:",[326,1247,1248,1260],{},[329,1249,1250],{},[332,1251,1252,1255,1257],{},[335,1253,1254],{},"Limitation",[335,1256,1168],{},[335,1258,1259],{},"Impact",[345,1261,1262,1273,1284,1295,1306],{},[332,1263,1264,1267,1270],{},[350,1265,1266],{},"Cannot convert codecs",[350,1268,1269],{},"H.265 source still outputs as H.265",[350,1271,1272],{},"Older players may not support",[332,1274,1275,1278,1281],{},[350,1276,1277],{},"Cannot change bitrate",[350,1279,1280],{},"Output bitrate matches source",[350,1282,1283],{},"Cannot compress file size",[332,1285,1286,1289,1292],{},[350,1287,1288],{},"Cannot change resolution",[350,1290,1291],{},"Output resolution matches source",[350,1293,1294],{},"Cannot downgrade or upgrade quality",[332,1296,1297,1300,1303],{},[350,1298,1299],{},"Cannot change framerate",[350,1301,1302],{},"Output framerate matches source",[350,1304,1305],{},"Cannot convert 60fps→30fps",[332,1307,1308,1311,1314],{},[350,1309,1310],{},"Non-standard sample rate",[350,1312,1313],{},"Output remains as-is",[350,1315,1316],{},"Some players may behave abnormally",[602,1318,1320],{"id":1319},"memory-limitations","Memory Limitations",[304,1322,1323],{},"FFmpeg WASM runs in browser, subject to following limitations:",[326,1325,1326,1337],{},[329,1327,1328],{},[332,1329,1330,1332,1335],{},[335,1331,1254],{},[335,1333,1334],{},"Specific Value",[335,1336,1259],{},[345,1338,1339,1350,1361],{},[332,1340,1341,1344,1347],{},[350,1342,1343],{},"WASM memory limit",[350,1345,1346],{},"4GB (32-bit address space)",[350,1348,1349],{},"Very large files may exceed limit",[332,1351,1352,1355,1358],{},[350,1353,1354],{},"Virtual file system",[350,1356,1357],{},"Stored in memory",[350,1359,1360],{},"File size limited by available memory",[332,1362,1363,1366,1372],{},[350,1364,1365],{},"Multi-threaded mode",[350,1367,1368,1369],{},"Requires ",[616,1370,1371],{},"SharedArrayBuffer",[350,1373,1374],{},"Needs correct COEP\u002FCOOP headers",[399,1376,1377],{},[304,1378,1379,1380,818],{},"For files over 2GB, FlowPick automatically uses streaming Muxer or TS direct concatenation mode to avoid FFmpeg WASM memory limitations. See ",[405,1381,1382],{"href":97},"Download Engine — Memory Management",[602,1384,91],{"id":1385},"browser-compatibility",[326,1387,1388,1407],{},[329,1389,1390],{},[332,1391,1392,1395,1398,1401,1404],{},[335,1393,1394],{},"Feature",[335,1396,1397],{},"Chrome",[335,1399,1400],{},"Edge",[335,1402,1403],{},"Firefox",[335,1405,1406],{},"Safari",[345,1408,1409,1424,1439,1452],{},[332,1410,1411,1414,1417,1419,1421],{},[350,1412,1413],{},"FFmpeg WASM single-threaded",[350,1415,1416],{},"Supported",[350,1418,1416],{},[350,1420,1416],{},[350,1422,1423],{},"Partially supported",[332,1425,1426,1429,1432,1434,1436],{},[350,1427,1428],{},"FFmpeg WASM multi-threaded",[350,1430,1431],{},"Needs COEP\u002FCOOP",[350,1433,1431],{},[350,1435,1431],{},[350,1437,1438],{},"Not supported",[332,1440,1441,1444,1446,1448,1450],{},[350,1442,1443],{},"TSToMP4Muxer streaming",[350,1445,1416],{},[350,1447,1416],{},[350,1449,1416],{},[350,1451,1416],{},[332,1453,1454,1457,1459,1461,1463],{},[350,1455,1456],{},"TS direct concatenation",[350,1458,1416],{},[350,1460,1416],{},[350,1462,1416],{},[350,1464,1416],{},[399,1466,1467],{},[304,1468,1469,1470,409],{},"For more details on browser compatibility, see ",[405,1471,91],{"href":92},[315,1473],{},[318,1475,408],{"id":1476},"command-line-alternatives",[304,1478,1479],{},"If you're familiar with command line, you can use native FFmpeg for better performance:",[643,1481,1485],{"className":1482,"code":1483,"language":1484,"meta":651,"style":651},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# HLS → MP4\nffmpeg -i \"https:\u002F\u002Fexample.com\u002Fplaylist.m3u8\" -c copy -bsf:a aac_adtstoasc output.mp4\n\n# DASH → MP4\nffmpeg -i \"https:\u002F\u002Fexample.com\u002Fmanifest.mpd\" -c copy output.mp4\n\n# TS fragment concatenation\ncat segment_*.ts > output.ts\n\n# TS → MP4 remuxing\nffmpeg -i output.ts -c copy -bsf:a aac_adtstoasc output.mp4\n","bash",[616,1486,1487,1496,1532,1539,1545,1565,1570,1576,1597,1602,1608],{"__ignoreMap":651},[1488,1489,1492],"span",{"class":1490,"line":1491},"line",1,[1488,1493,1495],{"class":1494},"sHwdD","# HLS → MP4\n",[1488,1497,1499,1503,1507,1511,1514,1517,1520,1523,1526,1529],{"class":1490,"line":1498},2,[1488,1500,1502],{"class":1501},"sBMFI","ffmpeg",[1488,1504,1506],{"class":1505},"sfazB"," -i",[1488,1508,1510],{"class":1509},"sMK4o"," \"",[1488,1512,1513],{"class":1505},"https:\u002F\u002Fexample.com\u002Fplaylist.m3u8",[1488,1515,1516],{"class":1509},"\"",[1488,1518,1519],{"class":1505}," -c",[1488,1521,1522],{"class":1505}," copy",[1488,1524,1525],{"class":1505}," -bsf:a",[1488,1527,1528],{"class":1505}," aac_adtstoasc",[1488,1530,1531],{"class":1505}," output.mp4\n",[1488,1533,1535],{"class":1490,"line":1534},3,[1488,1536,1538],{"emptyLinePlaceholder":1537},true,"\n",[1488,1540,1542],{"class":1490,"line":1541},4,[1488,1543,1544],{"class":1494},"# DASH → MP4\n",[1488,1546,1548,1550,1552,1554,1557,1559,1561,1563],{"class":1490,"line":1547},5,[1488,1549,1502],{"class":1501},[1488,1551,1506],{"class":1505},[1488,1553,1510],{"class":1509},[1488,1555,1556],{"class":1505},"https:\u002F\u002Fexample.com\u002Fmanifest.mpd",[1488,1558,1516],{"class":1509},[1488,1560,1519],{"class":1505},[1488,1562,1522],{"class":1505},[1488,1564,1531],{"class":1505},[1488,1566,1568],{"class":1490,"line":1567},6,[1488,1569,1538],{"emptyLinePlaceholder":1537},[1488,1571,1573],{"class":1490,"line":1572},7,[1488,1574,1575],{"class":1494},"# TS fragment concatenation\n",[1488,1577,1579,1582,1585,1589,1591,1594],{"class":1490,"line":1578},8,[1488,1580,1581],{"class":1501},"cat",[1488,1583,1584],{"class":1505}," segment_",[1488,1586,1588],{"class":1587},"sTEyZ","*",[1488,1590,618],{"class":1505},[1488,1592,1593],{"class":1509}," >",[1488,1595,1596],{"class":1505}," output.ts\n",[1488,1598,1600],{"class":1490,"line":1599},9,[1488,1601,1538],{"emptyLinePlaceholder":1537},[1488,1603,1605],{"class":1490,"line":1604},10,[1488,1606,1607],{"class":1494},"# TS → MP4 remuxing\n",[1488,1609,1611,1613,1615,1618,1620,1622,1624,1626],{"class":1490,"line":1610},11,[1488,1612,1502],{"class":1501},[1488,1614,1506],{"class":1505},[1488,1616,1617],{"class":1505}," output.ts",[1488,1619,1519],{"class":1505},[1488,1621,1522],{"class":1505},[1488,1623,1525],{"class":1505},[1488,1625,1528],{"class":1505},[1488,1627,1531],{"class":1505},[304,1629,1630],{},"Advantages of native FFmpeg:",[326,1632,1633,1642],{},[329,1634,1635],{},[332,1636,1637,1640],{},[335,1638,1639],{},"Advantage",[335,1641,1168],{},[345,1643,1644,1652,1660,1668,1676],{},[332,1645,1646,1649],{},[350,1647,1648],{},"Not limited by browser memory",[350,1650,1651],{},"Can use all system memory",[332,1653,1654,1657],{},[350,1655,1656],{},"Hardware-accelerated encoding\u002Fdecoding",[350,1658,1659],{},"Supports NVENC, QSV, VideoToolbox etc.",[332,1661,1662,1665],{},[350,1663,1664],{},"More formats and codecs",[350,1666,1667],{},"Supports hundreds of formats and codecs",[332,1669,1670,1673],{},[350,1671,1672],{},"Faster processing",[350,1674,1675],{},"Native code performance far exceeds WASM",[332,1677,1678,1681],{},[350,1679,1680],{},"Supports re-encoding",[350,1682,1683],{},"Can change codec format, bitrate, resolution",[315,1685],{},[318,1687,145],{"id":1688},"faq",[602,1690,1692],{"id":1691},"why-is-converted-mp4-smaller-than-ts","Why is converted MP4 smaller than TS?",[304,1694,1695],{},"TS container has header overhead per 188-byte packet, while MP4 container's index structure is more compact. After remuxing, file size typically reduces 5-15%, but audio-video data remains completely unchanged.",[602,1697,1699],{"id":1698},"does-conversion-lose-quality","Does conversion lose quality?",[304,1701,1702,1705,1706,1708],{},[353,1703,1704],{},"No."," FlowPick uses ",[616,1707,706],{}," (stream copy) mode, only changing container format, no re-encoding. Every byte of video and audio is preserved as-is.",[602,1710,1712],{"id":1711},"why-cant-some-videos-play-after-conversion","Why can't some videos play after conversion?",[304,1714,1715],{},"Possible reasons:",[383,1717,1718,1721,1724],{},[386,1719,1720],{},"Source video uses codec unsupported by your player (e.g., H.265)",[386,1722,1723],{},"Missing fragments during conversion caused incomplete file",[386,1725,1726],{},"Issue with source stream itself",[399,1728,1729],{},[304,1730,1731,1732,1734,1735,409],{},"If you encounter playback issues, please check ",[405,1733,136],{"href":137}," and ",[405,1736,1737],{"href":141},"Known Issues",[315,1739],{},[318,1741,1743],{"id":1742},"related-documentation","Related Documentation",[383,1745,1746,1751,1756,1761,1766,1771,1776],{},[386,1747,1748,1750],{},[405,1749,40],{"href":41}," — Learn about detection principles for HLS and DASH streams",[386,1752,1753,1755],{},[405,1754,817],{"href":97}," — Deep dive into streaming processing and memory management",[386,1757,1758,1760],{},[405,1759,28],{"href":29}," — Download settings like output format",[386,1762,1763,1765],{},[405,1764,23],{"href":24}," — Step-by-step guide for format conversion operations",[386,1767,1768,1770],{},[405,1769,91],{"href":92}," — Browser support status for WASM and FSA",[386,1772,1773,1775],{},[405,1774,136],{"href":137}," — Diagnosis and resolution of conversion-related issues",[386,1777,1778,1780],{},[405,1779,1737],{"href":141}," — Known limitations of format conversion",[1782,1783,1784],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":651,"searchDepth":1498,"depth":1498,"links":1786},[1787,1788,1789,1796,1801,1804,1809,1810,1815],{"id":320,"depth":1498,"text":321},{"id":414,"depth":1498,"text":415},{"id":544,"depth":1498,"text":545,"children":1790},[1791,1792,1793,1794,1795],{"id":604,"depth":1534,"text":605},{"id":757,"depth":1534,"text":758},{"id":821,"depth":1534,"text":822},{"id":877,"depth":1534,"text":878},{"id":907,"depth":1534,"text":908},{"id":931,"depth":1498,"text":932,"children":1797},[1798,1799,1800],{"id":935,"depth":1534,"text":936},{"id":983,"depth":1534,"text":471},{"id":1024,"depth":1534,"text":1025},{"id":1036,"depth":1498,"text":1037,"children":1802},[1803],{"id":1152,"depth":1534,"text":1153},{"id":1237,"depth":1498,"text":1238,"children":1805},[1806,1807,1808],{"id":1241,"depth":1534,"text":1242},{"id":1319,"depth":1534,"text":1320},{"id":1385,"depth":1534,"text":91},{"id":1476,"depth":1498,"text":408},{"id":1688,"depth":1498,"text":145,"children":1811},[1812,1813,1814],{"id":1691,"depth":1534,"text":1692},{"id":1698,"depth":1534,"text":1699},{"id":1711,"depth":1534,"text":1712},{"id":1742,"depth":1498,"text":1743},"2026-07-08","Complete technical guide for FlowPick format conversion — TS\u002FMP4 remuxing principles, FFmpeg WASM workflow, output format selection, and performance comparison.","md","2026-08-17",{},{"icon":63},{"title":1823,"description":1824},"TS to MP4 and Streaming Format Conversion Guide | FlowPick","Understand TS to MP4 remuxing, FFmpeg WASM processing, supported output formats, and how to choose the right format.","qqUY4kNpU8FK-ZpfFKoh5J3TrAmqC12ALGsYuB19cj4",[1827,1829],{"title":55,"path":56,"stem":57,"description":1828,"icon":58,"children":-1},"Complete privacy and security documentation for FlowPick, covering zero data collection, local processing, permission explanations, network behavior, and security best practices.",{"title":65,"path":66,"stem":67,"description":1830,"icon":68,"children":-1},"FlowPick batch download guide — leveraging browser's native download capabilities to save multiple media resources with one click. Covers resource selection, filtering tips, and practical advice.",1788792260538]