m3u8 与 mpd 流媒体下载完整指南N_m3u8DL-RE 三类任务一次跑通报错排查不再靠猜【免费下载链接】N_m3u8DL-RECross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文.项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-REN_m3u8DL-RE 是跨平台的 m3u8 / mpd / ism 流媒体下载工具点播存档和直播录制都能做。本文写给第一次打开终端就用它的新手先跑通一条最小化命令再按点播、直播、加密流三类任务各给一条可复制的命令最后附上下载失败与解密报错的排查顺序照着走就能自查。先把它跑起来 运行环境程序基于 net10.0Windows / Linux / macOS 都要先装 .NET 10 运行时需要混流 mp4 / mkv 时系统里要能找到 ffmpeg或 mkvmerge。获取程序克隆仓库后执行dotnet publish产出可执行文件也可从发行版渠道直接拿对应平台的预构建包git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE克隆下来的是 C# 源码装 .NET SDK 后可用dotnet publish编译出可执行文件。最小化命令一个链接加一个文件名就能跑解析、并发拉分片、合并三步全自动单分片失败默认自动重试 7 次N_m3u8DL-RE 你的m3u8或mpd链接 --save-name 第一个下载冒烟测试TestStreams.md 里列了仓库自带的公开测试流。第一条多音轨多字幕的 DASH 流最适合验证解析链加--skip-download只解析不下载N_m3u8DL-RE https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd --skip-download通过判定标准控制台依次打印流类型DASH、全部视频档分辨率、音频各语言轨、字幕轨最后提示跳过下载且不出现异常堆栈就算解析链打通再去掉这个参数完整跑一遍产物落地且能播放安装验证才算完成。最常做的三类任务任务一点播存档只留最高画质场景课程 m3u8 里 720p / 1080p 一堆变体你只想要最高档的完整 mp4不想逐条轨道挑。N_m3u8DL-RE 课程m3u8链接 --save-name 课程存档 --auto-select -M formatmp4--auto-select用它是因为变体档位多自动对视频、音频、字幕全类型挑最佳不用手写-sv res...正则是因为容易漏掉音频和字幕。-M formatmp4用它是因为任务结束后把分离的音、视频混流进 mp4不用它的话你拿到的是分开落盘的音轨和画轨不是能直接播放的成品。--save-name只用它控制文件名主干避免最后落到一串随机任务 ID。坑多分辨率同下时文件名会撞稳妥做法是再加--save-pattern SaveName_Resolution按分辨率区分。任务二直播录制边录边成型 场景直播链接希望文件边下边可看、录满 3 小时自动停而不是录完再等合并。N_m3u8DL-RE 直播链接 --save-name 直播实录 --live-real-time-merge --live-record-limit 03:00:00 --thread-count 8--live-real-time-merge用它是因为分片持续滚入实时合并后中断也能拿到已成型部分不开的话成品要等录完才出现。--live-record-limit 03:00:00用它是因为录满自动结束格式HH:mm:ss不用人肉盯盘 CtrlC。--thread-count 8直播不必拉满线程默认 10留带宽给实时合并的写入。坑网络不稳时保持默认--live-keep-segments保留分片丢数据后能重拼README 明确提醒别开--live-pipe-mux管道内数据由 ffmpeg 读取丢分片概率更高。任务三加密流把密钥喂进去场景CENC 类加密流清单里只有 KID密钥 IDKEY 要你从别处拿到。仓库测试流里就有一条带明文密钥的流media.axprod.net的v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd密钥是9eb4050de44b4802932e27d75083e266:166634c675823c235a4a9446fad52e4d见 TestStreams.md。N_m3u8DL-RE 加密流链接 --key KID值:KEY值 --mp4-real-time-decryption -sv best -sa best--key KID:KEY用它是因为清单只给 KID、不给 KEY多条密钥就重复传参整个流共用一个 KEY 时直接--key KEY也行。--mp4-real-time-decryption用它是因为 MP4 分片可以边下边解缩短总时长不用它则下载完成后统一交第三方工具解密。-sv best -sa best用它是因为加密流档位多且编码名不定best一步取最佳要精确挑轨时再换正则如-sv res3840*:codecshvc1:forbest只挑 4K HEVC。坑密钥格式是排解密问题的第一排查项十六进制值别带0x前缀多组密钥逐条传。参数速查分组参数什么时候用说明或默认值输出控制--save-name|--save-dir指定文件名与保存目录默认按时间戳自动命名输出控制-M formatmp4结束后把分离音画混流成成品混流程序默认 ffmpeg可muxermkvmerge输出控制--sub-format SRT字幕转通用格式默认 SRT轨道选择--auto-select全类型自动选最佳默认关闭轨道选择-sv|-sa|-ss按分辨率、编码、语言正则挑轨支持res/lang/codecs/frame等多维组合--morehelp select-video看全量语法网络调优--thread-count按带宽调并发默认 10网络调优--http-request-timeout弱网超时重试频繁时调高默认 100 秒网络调优--download-retry-count分片失败率高时加预算默认 7网络调优-R 15M限制下载速度Mbps 或 Kbps网络调优--custom-proxy必须走指定代理默认用系统代理加密--key KID:KEY流需要外部提供密钥可重复传多组加密--decryption-engine默认引擎解不开时换可选 FFMPEG / MP4DECRYPT / SHAKA_PACKAGER默认 MP4DECRYPT加密--mp4-real-time-decryptionMP4 分片边下边解默认关闭诊断--skip-download只验证解析、看轨道默认关闭诊断--log-level DEBUG定位出问题的环节默认 INFO幕后一条流媒体链接如何变成文件解析程序请求并拆解清单识别流类型、加密方式、分辨率与编码。DASH、HLS、MSS 各有独立解析器DASHExtractor2.cs、HLSExtractor.cs、MSSExtractor.cs密钥材料也在这一步二次请求入口是 StreamExtractor.cs。调度点播走SimpleDownloadManager直播走SimpleLiveRecordManager2与HTTPLiveRecordManager含实时合并分片由 Downloader/ 里的SimpleDownloader按线程数并发拉取失败自动重试。解密Crypto/ 内置 AES 与 ChaCha20 实现MP4 分片可边下边解否则下载后交 mp4decrypt / shaka-packager / ffmpeg 批量处理。合并分片拼接、音视频混流、字幕转 SRT / VTT 在 MergeUtil.cs 等完成混流 mp4 / mkv 依赖系统里的 ffmpeg 或 mkvmerge。排错时按环节对号入座选不出轨道是解析环下不完是调度环打不开或花屏是解密环音画错位是合并环。出事了下载失败与解密报错排查手册下载卡住或极慢先查线程数默认 10 可能低于带宽上限显式--thread-count 16试一次。再查超时日志里频繁出现超时重试就把--http-request-timeout调到 120 以上默认 100同时--download-retry-count 5加预算注意调大数字等于减少重试默认 7 次只有分片特别大时再往上调。最后查代理确认--custom-proxy指向的代理本身是通的程序默认走系统代理公司内网尤其注意。解密直接报错先查密钥格式--key接受KID:KEY或纯KEY十六进制值不带0x多组密钥逐条传。再查引擎--decryption-engine先试FFMPEG它对加密方案覆盖最宽确认对应程序在 PATH 中或用--ffmpeg-binary-path给全路径。最后查误判怀疑 HLS 加密方式被识别错时用--custom-hls-method手动指定AES_128、CHACHA20等配--custom-hls-key/--custom-hls-iv直接喂密钥材料。输出文件缺音 / 缺画先查轨道选择--log-level DEBUG重跑一遍对照解析阶段列出的轨道和你实际选中的项。再查混流音画分离想合并就补-M formatmp4或-M formatmkv:muxermkvmerge要引入外部字幕或音轨用--mux-import pathzh.srt:langchi:name中文 (简体)注意它依赖-M开启混流两者必须同时出现缺一个程序会直接报错。最后查字幕轴VTT 转 SRT 后在播放器端校准或确认--auto-subtitle-fix没被关掉默认开启。平台特有坑旧版 WindowsNT6.0 及以下自带终端跑不动换 cmder 执行Arch 系通过 AUR 的n-m3u8dl-re-bin发行版或n-m3u8dl-re-git开发版安装macOS 先装 .NET 运行时否则命令行找不到程序本体终端颜色异常加--no-ansi-color关闭彩色输出不影响功能。收尾合规边界与源码入口本项目基于 MIT License 开源按原样提供请只下载你拥有合法权限的内容遵守所在国家或地区的法律法规与平台服务条款侵权用途的法律责任由使用者自行承担。想深入源码从三个入口进解析链看 src/N_m3u8DL-RE.Parser/ 下的 StreamExtractor.cs参数到运行配置的映射看 src/N_m3u8DL-RE/Config/ 的 DownloaderConfig.cs功能验证可参考 src/N_m3u8DL-RE.Tests/ 里的解析器与下载管理器测试。【免费下载链接】N_m3u8DL-RECross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文.项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考