一条命令跑通 N_m3u8DL-RE:从安装到下载第一个 DASH 流
2026/9/19 10:11:52 网站建设 项目流程

一条命令跑通 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 --version

macOS:下载 Release 包,给可执行文件加执行权限:

chmod +x N_m3u8DL-RE ./N_m3u8DL-RE --version

Linux: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-1010-。效果:只下载范围内的分片,时间和流量都省下来。

字幕

场景:只要字幕,或要 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询