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-RE
流媒体下载工具最常见的诉求,是把在线视频存到本地,变成一个能正常播放的文件。N_m3u8DL-RE 是一款跨平台的 DASH/HLS/MSS 下载器:解析 MPD、M3U8、ISM 清单,点播与 DASH/HLS 直播都支持,能处理 CENC、AES-128、ChaCha20 等加密,提供简中、繁中、英文三种界面,运行于 Windows 与 Linux。本文按安装、运行、常用操作展开,新手五分钟内应能产出结果。
⚡ 快速开始:五分钟拿到产出
获取方式有两种:从项目 Releases 页面下载预编译包解压即用,或克隆源码自行构建:
git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE dotnet build src/N_m3u8DL-RE.sln构建完成后,可执行文件位于输出目录。用仓库 TestStreams.md 里的一条 HLS 公共测试流跑第一条命令:
N_m3u8DL-RE "http://playertest.longtailvideo.com/adaptive/oceans_aes/oceans_aes.m3u8" --save-name oceans程序会先解析播放列表并列出可用轨道,随后下载视频与音频分片、自动合并,最终得到 oceans.mp4 和一份元信息 json。注意:旧版 Windows 的自带终端可能无法正常显示输出,可换用第三方终端运行。
🗺️ 能力地图:它都能做什么
- 协议支持:解析 DASH(MPD)、HLS(M3U8)、MSS(ISM)清单,点播与直播均可,混流可输出 mp4/mkv,直播支持管道混流为 TS。
- 运行平台:Windows 与 Linux;Arch Linux 系可从 AUR 安装 n-m3u8dl-re-bin / n-m3u8dl-re-git。
- 解密能力:支持 CENC、SAMPLE-AES、AES-128(含 ECB)、ChaCha20 等,默认调用 mp4decrypt,可切换 ffmpeg 或 shaka-packager。
- 并发与限速:线程数默认取 CPU 线程数,支持多轨道并发下载,限速精度到 Kbps/Mbps。
- 轨道与字幕:视频、音频、字幕按正则表达式选取,字幕可输出 SRT/VTT,带字幕自动修正与广告分片过滤。
📥 N_m3u8DL-RE 点播下载:一条命令存下在线视频
适用于手头已有 MPD 或 M3U8 点播链接的情况:
N_m3u8DL-RE "<链接>" --save-name 我的视频 --auto-select--auto-select 会自动挑选最佳视频、音频和字幕轨道。想手动控制时用 -sv / -sa / -ss 按正则选取,例如-sv res="1920*":for=best取 1920 级别中最高的一条。同时保存多个轨道时,给 --save-pattern 加上<Resolution>、<Language>等变量,可生成互不冲突的文件名。
🔑 加密流解密参数怎么配
适用于已拿到密钥的加密流:
N_m3u8DL-RE "<加密链接>" --key KID:KEY --save-name 解密后的视频--key 支持两种写法:KID:KEY 配对,以及所有轨道共用同一密钥时直接传 KEY。多个 KID 就传多条 --key,也可以用 --key-text-file 指向一份 KID-KEY 映射文件。解密引擎默认 MP4DECRYPT,--decryption-engine 可切换为 FFMPEG 或 SHAKA_PACKAGER。若遇到自定义的 HLS AES-128,还能用 --custom-hls-key / --custom-hls-iv 分别指定密钥和 IV,接受 HEX、Base64 或文件三种形式。
🎥 N_m3u8DL-RE 直播录制:时长限制怎么设
适用于持续开播的直播流,录到限定时长自动停止:
N_m3u8DL-RE "<直播链接>" --live-record-limit 01:00:00--live-record-limit 采用 HH:mm:ss 格式,上面表示录制 1 小时。加 --live-real-time-merge 可在录制过程中边录边合并,省掉事后二次合并;--live-pipe-mux 则把分片通过管道交给 ffmpeg 实时混出 TS,但 README 明确提示网络不稳时管道容易丢失直播数据,启用需谨慎。--live-take-count 可调整首次获取的分片数量,默认 16。
📋 常用参数速查
| 参数 | 作用 | 示例 |
|---|---|---|
| --save-name | 设置输出文件名 | --save-name 电影名 |
| --save-dir | 设置输出目录 | --save-dir "D:\Videos" |
| --tmp-dir | 设置临时文件目录 | --tmp-dir "C:\Temp" |
| --thread-count | 下载线程数,默认取 CPU 线程数 | --thread-count 8 |
| -R, --max-speed | 限速,单位 Mbps 或 Kbps | -R 15M |
| -sv / -sa / -ss | 正则选择视频/音频/字幕 | -sv best |
| --key | 解密密钥,KID:KEY 或纯 KEY | --key KID1:KEY1 |
| -M, --mux-after-done | 完成后混流分离的音视频 | -M format=mp4 |
| -H, --header | 设置请求头 | -H "User-Agent: iOS" |
| --log-level | 日志级别:DEBUG/INFO/WARN/ERROR/OFF | --log-level DEBUG |
🏗️ 代码结构速览
工程按职责分成四层,下面这些路径可以直接作为读源码的入口:
- 流解析器:把 MPD/M3U8/ISM 清单解析成轨道与分片列表,并处理解密信息提取。src/N_m3u8DL-RE.Parser/
- 任务管理:点播与直播录制的线程调度、重试、实时合并编排。src/N_m3u8DL-RE/DownloadManager/
- 解密逻辑:AES、ChaCha20 等解密的实现与第三方解密器调用。src/N_m3u8DL-RE/Crypto/
- 合并与混流:把分片拼成完整文件,调用 ffmpeg 或 mkvmerge 混流。src/N_m3u8DL-RE/Util/MergeUtil.cs
🔧 症状速查:常见异常与处理
- Windows 终端下进度条、颜色显示错乱:旧版 Windows 自带终端不支持相关输出,换用 cmder 等第三方终端,或加 --no-ansi-color 去掉颜色。
- 下载速度偏低:提高 --thread-count;也可先用 -R 限速观察真实带宽;超时频繁时再调 --http-request-timeout。
- 403 或分片拉取失败:平台校验请求头,用 -H 传入需要的头;分片 URL 需要带上链接参数时启用 --append-url-params。
- 解密失败:核对 KID 与密钥是否匹配,再用 --decryption-engine FFMPEG 换一家引擎试试。
- 直播录制丢数据:--live-pipe-mux 的管道在网络不稳时易丢数据,关掉它改用普通实时合并。
小结
点播下载、解密、直播录制是 N_m3u8DL-RE 使用频率最高的三条路径,上面覆盖了各自的核心参数。完整参数以运行 --help 的输出和 README.md 为准;要更新版本去项目 Releases 页面,遇到问题和改进建议到项目 Issue 区反馈。请只下载自己有权访问的内容,并遵守所在地区的法律法规。
【免费下载链接】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),仅供参考