N_m3u8DL-RE 流媒体下载:5 场景完整教程
【免费下载链接】N_m3u8DL-RECross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文.项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE
周末想离线看一部纪录片,网页播放器把片源拆成几百个小分片,翻遍界面都没下载入口。把抓到的 m3u8 清单丢给 N_m3u8DL-RE,它自动拉齐全部分片、拼回一个能离线播放的 MP4。这是款跨平台的 MPD/M3U8/ISM 流媒体下载器,点播、直播都支持,命令一行就跑。
它是怎么把视频拼回来的 🔧
视频网站把内容切成几秒一段的小分片,再放一份清单文件(MPD / M3U8 / ISM)当目录。N_m3u8DL-RE 先读清单,解出全部音视频轨道和每个分片的真实地址;再用多线程把分片并发拉回来;最后调 FFmpeg 按顺序拼成完整文件。想顺藤摸瓜,可以顺着这几处看:
src/N_m3u8DL-RE.Parser/:解析 MPD / M3U8 / ISM 清单,拆出各轨道与分片地址src/N_m3u8DL-RE/DownloadManager/:调度分片下载,内含直播录制管理器src/N_m3u8DL-RE/Crypto/:AES、ChaCha20 等解密逻辑
下载本身零依赖,只有合并阶段会调 FFmpeg,先确认它装好了:
ffmpeg -version三分钟装好并跑通第一条命令
三条路线任选其一:
- 预编译:到 Release 页按系统选包(win-x64 / darwin / linux),解压即用
- 包管理器:Arch 系执行
yay -Syu n-m3u8dl-re-bin - 源码构建:
git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE后执行dotnet build -c Release
装完用N_m3u8DL-RE --version核对版本。下面这条命令用的是官方多音轨多字幕测试流,解析后会自动弹出交互框让你勾选轨道,选完即开始下载并合并出一个 mp4:
N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd"顺手记三个高频参数:
--save-dir ./videos:指定输出目录,不存在会自动创建--save-name "纪录片":自定义保存文件名--thread-count 16:并发线程数,默认 10,带宽够可加到核数两倍
小技巧:--ui-language zh-CN一键切中文界面,--no-log关掉日志文件刷屏。
三个场景练手
点播下载:用正则挑出想要的轨道
现象:一份清单常塞着三四档清晰度、五六条音轨,全下回来既占硬盘又拖时间。
命令:下面这行只取 1920 宽以上的最佳视频轨和最佳英语音轨,-mt让音画并发拉取:
N_m3u8DL-RE "链接" -sv res="1920*":for=best -sa lang=en:for=best -mt怎么算跑通:得到一条 1080p 视频加一条英语音轨的 MP4,比全量下载明显更快。想反着剔轨道用-dv / -da / -ds,只留字幕加--sub-only --sub-format VTT。
直播录制:实时合并并按时长自动停录
现象:直播分片边播边删、无限增长,若先下完再合并,录两三个小时会等很久。
命令:官方直播测试流,开启实时合并、录 10 分钟自动停:
N_m3u8DL-RE "https://cmafref.akamaized.net/cmaf/live-ull/2006350/akambr/out.mpd" --live-real-time-merge --live-record-limit 00:10:00怎么算跑通:边录边合成,到点自动停止,直接拿到可播放成品。弱网环境别开--live-pipe-mux,管道数据由 FFmpeg 负责读取,容易丢分片。
加密流解密:喂入密钥拉出明片
现象:清单里出现#EXT-X-KEY(HLS)或ContentProtection(DASH),分片是密文,直接下载打不开。
命令:官方 ClearKey 测试流,把KID:KEY通过--key喂进去:
N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd" --key 9eb4050de44b4802932e27d75083e266:166634c675823c235a4a9446fad52e4d怎么算跑通:默认调用 mp4decrypt 解密,输出无花屏、能正常播放的 MP4。HLS 若已知方法、密钥、IV,可用--custom-hls-method AES_128加--custom-hls-key、--custom-hls-iv直接硬指定,省去猜测。请只对你有合法权限的内容做解密。
提速、限速与排错 ⚡
先把路铺平,再谈下得爽不爽,这几个参数最常调:
--thread-count:并发线程数,速度上不去先加它-R:限速,单位 Mbps 或 Kbps,如15M,免得占满带宽--download-retry-count:单个分片失败的重试次数,默认 7--http-request-timeout:HTTP 请求超时秒数,默认 100--custom-proxy:走代理,如http://127.0.0.1:8888;想跟随系统代理用--use-system-proxy
常见故障对号入座:
| 症状 | 解法 |
|---|---|
| 提示找不到 FFmpeg | 安装 FFmpeg,或用--ffmpeg-binary-path指定 exe 全路径 |
| 合并后文件不完整 | 关掉--del-after-done留分片,用--check-segments-count核对数量 |
| 弱网反复失败 | 调高--download-retry-count,放宽--http-request-timeout |
| 老版 Windows 终端渲染错乱 | 换 cmder 之类终端运行 |
| 排障没头绪 | 开--log-level DEBUG --log-file-path ./d.log看详细日志 |
| 阶段 | 验证动作 |
|---|---|
| 装环境 | --version与ffmpeg -version都有输出 |
| 首战 | 官方测试流下载并合并出完整 MP4 |
| 挑轨道 | -sv / -sa / -ss配-mt跑通 |
| 录直播 | --live-real-time-merge+--live-record-limit验证 |
| 解加密 | --key KID:KEY跑通 ClearKey 示例 |
两个进阶参数:
--task-start-at 20260815230000:指定时间(yyyyMMddHHmmss)前不开工,适合凌晨跑大文件-M format=mkv:muxer=mkvmerge:换 mkvmerge 混流,--mux-import还能塞外部字幕
挑条测试流把第一段视频跑下来,往后看片就能存进本地硬盘 🎬
【免费下载链接】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),仅供参考