N_m3u8DL-RE 实操:从安装到直播录制,6 张任务卡把 m3u8/MPD 下载命令全跑通
【免费下载链接】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 是跨平台流下载器,负责 m3u8 下载与 MPD(DASH)、ISM(MSS)链接:给一个地址,它解析轨道、多线程拉分片、解密、合并,产出可直接播放的完整文件。全文 6 张任务卡,每张都是可复制命令加参数解释加成功信号。
先自测:三个问题判断这工具适不适合你
- 手上有没有浏览器里能直接播放的 m3u8、MPD 或 ISM 链接?
- 需求是点播存完整文件,还是直播录一段固定时长?
- 需要挑清晰度、挑音轨语言,或者只下字幕?
勾中两条以上,下文命令可以直接复制用;一条都没勾中,这工具帮不上你。
安装 N_m3u8DL-RE 并验证环境
按系统选一种安装方式:
# Arch 及其衍生版 yay -Syu n-m3u8dl-re-binWindows 从项目 Releases 页拿对应平台的压缩包,解压后直接运行 N_m3u8DL-RE.exe。想从源码构建,两条命令:
git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE cd N_m3u8DL-RE && dotnet build下载前先验证安装:
N_m3u8DL-RE --version N_m3u8DL-RE --help成功信号:版本号加完整参数列表能正常打印才算装对,否则先解决安装问题,别往下走。
验证通过后跑第一条下载命令,从 TestStreams.md 里挑一条无加密、多音轨多字幕的流:
N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd" --save-name "demo"成功信号:分片进度条跑完,输出目录出现合并好的视频文件加一份同名 .json 解析文件。到这里环境就算通了。
任务卡一:只给链接就拿到完整文件
所有「给我一个地址,我要整个文件」的场景,零参数:
N_m3u8DL-RE "视频地址"| 参数 | 作用 |
|---|---|
| 链接() | m3u8/MPD/ISM 地址,唯一必填项 |
| --auto-select | 强制为所有类型选最佳轨,拿不准自动选结果时加上 |
成功信号:合并文件能直接播放,旁边多出一份同名 .json 解析文件(可留可删)。
任务卡二:多码率流只挑一路清晰度和语言轨
只留 4K、只留英语、中文字幕全要:
N_m3u8DL-RE "视频地址" -sv 'res="3840*":codecs=hvc1:for=best' -sa 'lang=en:for=best' -ss 'lang=zh:for=all'| 参数 | 作用 |
|---|---|
| -sv | 筛视频轨:宽度以 3840 开头(4K)且 HEVC 编码 |
| -sa | 筛音轨:只留英语中最匹配的一条 |
| -ss | 筛字幕轨:中文的全部保留 |
| for=best / for=all | best 只取最匹配的一条,all 匹配的全拿 |
筛不中的码率根本不发分片请求,带宽就省在这。正则写不出来就加 --auto-select 让程序代选。
成功信号:输出目录只出现 4K 视频、英语音频和你指定的中文字幕。
任务卡三:只下字幕不拉音视频
N_m3u8DL-RE "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8" --sub-only --sub-format SRT| 参数 | 作用 |
|---|---|
| --sub-only | 只挑字幕轨,音视频完全跳过 |
| --sub-format SRT | 输出 SRT 格式,可改成 VTT |
时间轴自动修正在默认情况下一直开着。
成功信号:输出目录出现 .srt 文件,挂进播放器后时间点能对上。
任务卡四:加密流配 KID:KEY 解密
N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd" --key "9eb4050de44b4802932e27d75083e266:166634c675823c235a4a9446fad52e4d"| 参数 | 作用 |
|---|---|
| --key KID:KEY | 冒号前是密钥 ID,冒号后是密钥本体;多组密钥就传多个 --key |
| --decryption-engine FFMPEG | 默认引擎解密失败时换 ffmpeg,也可选 SHAKA_PACKAGER |
成功信号:解密合并后的文件正常播放,不花屏不静音。
任务卡五:直播录固定时长后自动停
N_m3u8DL-RE "直播地址" --live-perform-as-vod --live-record-limit 02:00:00 --save-name "live"| 参数 | 作用 |
|---|---|
| --live-perform-as-vod | 按点播逻辑处理直播流 |
| --live-record-limit | 格式 HH:mm:ss,录满即自动停止 |
| --live-real-time-merge | 可选,边录边实时合并,录着就有完整文件 |
| --live-pipe-mux | 可选,实时混流,网络不稳别开 |
成功信号:到时进程自动退出,输出目录里是一个完整的直播录像。
任务卡六:多份链接批量下载
存成 batch.sh,把 URLS 里的两个地址换成你自己的即可:
#!/bin/bash URLS=( "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd" "http://playertest.longtailvideo.com/adaptive/oceans_aes/oceans_aes.m3u8" ) mkdir -p ./videos for url in "${URLS[@]}"; do N_m3u8DL-RE "$url" --save-dir ./videos --auto-select --thread-count 8 done| 参数 | 作用 |
|---|---|
| --save-dir | 所有链接统一落到同一输出目录 |
| --auto-select | 每个地址自动选最佳轨 |
| --thread-count 8 | 8 线程并行拉分片 |
成功信号:脚本跑完后 ./videos 里每个链接对应一个完整文件。
参数速查:最绕的四个机制
完整参数列表见 README.md,这里只讲容易混淆的几组。
for 取值决定保留几条轨道
-sv / -sa / -ss 通用:
| 取值 | 行为 |
|---|---|
| best(默认) | 只留最匹配的一条 |
| best2 | 留最匹配的两条 |
| all | 匹配的全留 |
| worst | 留最弱的一条,测试对比用 |
前面的 res、codecs、lang、ch 条件都是正则,竖线表示或,例如 lang="ja|en" 匹配日语或英语。
三种解密引擎怎么挑
| 引擎 | 调用的工具 | 什么时候选 |
|---|---|---|
| MP4DECRYPT(默认) | mp4decrypt | 速度最快,默认就用它 |
| FFMPEG | ffmpeg | 兼容性最好,手头有 ffmpeg 最省事 |
| SHAKA_PACKAGER | shaka-packager | 功能最全 |
选哪个就把哪个放进 PATH,或用 --decryption-binary-path / --ffmpeg-binary-path 指全路径。
三种合并方式怎么挑
| 方式 | 原理 | 用途 |
|---|---|---|
| 默认 | 调 ffmpeg 合并,产出可直接播放的文件 | 标准情况 |
| --binary-merge | 纯二进制拼接,不依赖 ffmpeg | fMP4/CMAF 分片 |
| --skip-merge | 完全不合并,只留分片 | 想留分片备份 |
想把分离的音视频混进指定容器,再加 -M format=mp4 或 -M format=mkv:muxer=mkvmerge。
--custom-range 的四种写法
只下载视频的一部分分片:
| 写法 | 含义 |
|---|---|
| 05:00-20:00 | 第 5 分钟到第 20 分钟这一段 |
| 0-10 | 分片序号 0 到 10,共 11 个 |
| -99 | 前 100 个分片 |
| 10- | 从第 10 个分片一直到结尾 |
排障:按现象直接拿修复命令
动手前先 N_m3u8DL-RE --version 确认是最新版,很多坑新版已修。
| 现象 | 大概率原因 | 修复 |
|---|---|---|
| 分片反复失败,任务卡住 | 网络不稳,或默认 100 秒超时太短 | 命令里加 --download-retry-count 5 --http-request-timeout 300 |
| 解密失败,文件打不开 | key 只填了 KEY 没带 KID | 改成完整 KID:KEY 形式,或换 --decryption-engine FFMPEG |
| 合并阶段提示找不到 ffmpeg | ffmpeg 没装或不在 PATH | 用 --ffmpeg-binary-path 指全路径,或改用 --binary-merge / --skip-merge 绕开 |
| 速度上不去,任务拖很久 | 线程开太多互相挤 | 调低 --thread-count,同时加大 --http-request-timeout |
| 直播录制出的文件不完整 | 录制中直播流断过 | 开启 --live-real-time-merge 边录边合并 |
| 老 Windows 终端乱码或无响应 | 旧终端不支持本程序 | 换 cmder 运行 |
读完照做的三步
- 先跑测试流:从 TestStreams.md 挑第一条无加密多轨流把首条命令跑通,安装和环境一次验完;
- 再学选轨:执行 N_m3u8DL-RE --morehelp select-video,把 -sv / -sa / -ss 的规则学完,之后不用一直靠 --auto-select 代选;
- 卡住先查表:按「现象 / 大概率原因」定位,八成问题不用翻源码。
最后一句底线:只下载你拥有合法权限的内容。
【免费下载链接】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),仅供参考