一条命令跑通 N_m3u8DL-RE:从安装到下载第一个 DASH 流
【免费下载链接】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 的解析、选轨、分片下载和合并混流做进一条命令行里,适合有下载需求但没空折腾 ffmpeg 的普通用户。
📍 项目定位
N_m3u8DL-RE 是跨平台命令行工具,覆盖 DASH(MPD)、HLS(M3U8)、MSS(ISM)三种协议的点播与直播。它比手写 curl + ffmpeg 省事:自动识别轨道、多线程拉分片、自动合并混流,全程不用你碰中间文件,界面支持 en-US、zh-CN、zh-TW 三种语言。
💻 三平台安装
Windows:从仓库 Releases 下载最新版 zip,解压后双击 exe 即可。版本较低的 Windows 自带终端可能渲染异常,改用 Windows Terminal 或 cmder 运行。
N_m3u8DL-RE.exe --versionmacOS:下载 Release 包,给可执行文件加执行权限:
chmod +x N_m3u8DL-RE ./N_m3u8DL-RE --versionLinux:Arch 系从 AUR 装,其他发行版用 Release 包或从源码构建:
yay -Syu n-m3u8dl-re-bin唯一依赖是 ffmpeg,混流和解密都靠它,没有会直接启动失败。解密还会用到 mp4decrypt 或 shaka-packager。
🚀 跑通第一条命令
拿仓库 TestStreams.md 里的公开测试流验证安装:
N_m3u8DL-RE "https://storage.googleapis.com/shaka-demo-assets/angel-one-hls/hls.m3u8" -sv best -sa best先会列出所有轨道。不指定筛选条件时出现交互式选择框,用方向键选流、F5 确认;给了-sv best -sa best就直接开始下载。临时目录里出现同名目录,内含下载的分片和 meta.json,结束时显示 Done 即成功,输出文件在--save-dir指定的位置(默认当前目录)。
🎬 核心能力拆解
自动选轨
场景:流里有多档画质和多条音轨,不想手动对比。参数:--auto-select,视频取最高分辨率、每种语言各取一条最佳音轨。效果:一条参数代替整页轨道列表。
正则选轨
场景:只要 4K 视频加英语音轨。参数:
N_m3u8DL-RE <url> -sv res="3840*" -sa lang=en支持 id、res、codecs、lang 等正则条件,for=best2取前两条最佳。
只下时间段
场景:两小时的录像只要中间十分钟。参数:--custom-range 05:00-20:00,也支持按分片号0-10、10-。效果:只下载范围内的分片,时间和流量都省下来。
字幕
场景:只要字幕,或要 SRT 格式。参数:--sub-only --sub-format SRT,-ss all选全部字幕。效果:输出 SRT 或 VTT,默认自动修正字幕时间轴。
直播录制
场景:录直播不想等直播结束再合并。参数:--live-real-time-merge,配合--live-record-limit 01:00:00限制时长。效果:边录边合并,--live-pipe-mux更进一步实时混流,但弱网下容易丢包,README 明确提示网络不稳时别开。
加密流解密
场景:MPD 带 ClearKey/CENC。参数:--key KID1:KEY1,密钥来自页面或 meta.json。效果:自动调用 mp4decrypt(默认)完成解密,也可用--decryption-engine FFMPEG切换。
混流输出
场景:音视频分片下载完还要合成一个文件。参数:-M format=mp4,或-M format=mkv:muxer=mkvmerge。效果:全部任务完成后自动混流,mkvmerge 方式会先做二进制合并再混流。
高频参数速查:
| 参数 | 作用 | 示例 |
|---|---|---|
-sv/-sa/-ss | 正则筛选视频/音频/字幕流 | -sv best -sa lang=en |
-M | 完成后混流为指定容器 | -M format=mp4 |
--sub-format | 字幕输出格式 SRT/VTT | --sub-format VTT |
--thread-count | 下载线程数,默认 CPU 线程数 | --thread-count 8 |
--download-retry-count | 单分片失败重试次数,默认 3 | --download-retry-count 5 |
--custom-proxy | 请求代理 | --custom-proxy http://127.0.0.1:8888 |
⚠️ 四个最容易踩的坑
启动即报 ffmpeg 找不到
现象:命令一跑就退出。原因:程序预先检查 ffmpeg,找不到直接抛 FileNotFoundException。解法:装好 ffmpeg,非标准路径时加--ffmpeg-binary-path指定。
加密流下载后打不开
现象:文件存在但无法播放。原因:内容带 DRM,没给密钥。解法:从页面提取 KID 和 KEY,传--key KID:KEY;只认 HLS 侧加密时用--custom-hls-key指定 KEY。
终端显示乱码或颜色错乱
现象:进度条和轨道列表渲染异常。原因:老版本 Windows 终端不支持 ANSI。解法:换 Windows Terminal 或 cmder,临时压制颜色可加--no-ansi-color。
直播中途丢片段
现象:实时合并的录像出现断档。原因:--live-pipe-mux由 ffmpeg 负责读管道,弱网下会丢数据。解法:关掉 pipe mux 用普通实时合并,加--download-retry-count提高重试,弱网时代理走--custom-proxy。
🔍 源码结构速览
- 下载与直播调度:src/N_m3u8DL-RE/DownloadManager/,改下载行为看这里
- 流解析与提取器:src/N_m3u8DL-RE.Parser/,MPD/M3U8/ISM 解析和轨道列表在这
- 解密引擎:src/N_m3u8DL-RE/Crypto/,AES、ChaCha20 相关
- 命令行参数:src/N_m3u8DL-RE/CommandLine/,参数定义和复杂参数解析
收束
下一个待下的流,按"跑通第一条命令"把测试流换成真实地址即可。遇到问题先加--log-file-path导出日志,再带着日志去仓库提 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),仅供参考