N_m3u8DL-RE 新手完整实战指南:把 MPD/M3U8 流媒体视频离线下载成 MP4
N_m3u8DL-RE 新手完整实战指南把 MPD/M3U8 流媒体视频离线下载成 MP4【免费下载链接】N_m3u8DL-RECross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文.项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-REN_m3u8DL-RE 是一款跨平台的开源流媒体下载器专治 MPDDASH、M3U8HLS和 ISMMSS格式的只能在线播放的视频它把清单文件里成百上千个分片自动抓取回来再用 FFmpeg 合并成一个完整文件点播、直播都能覆盖。本文用六个由浅入深的小节带你从零走到独立完成一次视频下载。一、从一个让人抓狂的瞬间说起去年自驾进山手机信号从满格一路掉到只剩一格。出发前我特意在视频网站把想看的纪录片全点了缓存结果到了没网的地方一打开——会员缓存的视频有有效期一部分早过期了还有几集压根没缓下来。那一刻我特别想要一种能力把这些在线视频真正下载到硬盘里不受会员期限和网络信号的约束。后来我遇到了 N_m3u8DL-RE。这类网站的视频很少是单个大文件而是把一个视频切成几十上百个几秒的分片靠清单文件.mpd、.m3u8、.ism组织起来边播边拉。手动一个个抓分片再拼回去基本不现实而 N_m3u8DL-RE 做的正是这件事——解析清单、并发下载分片、自动合并一条命令全部完成。如果你也遇到过下面这些情况这篇文章值得读完网站能看不能存会员到期后缓存全部失效想录一场正在进行的直播赛事或会议回头慢慢看下载时只想留 1080p 高画质不想把五六条音轨全搬回家遇到加密的流AES-128、ClearKey 等不知道从哪里下手二、先认识它三个标签 一张模块地图给 N_m3u8DL-RE 贴三个标签你就能快速记住它的性格跨平台命令行Windows、macOS、Linux 都能用可双击可进脚本方便自动化主流格式全覆盖MPD、M3U8、ISM 三大主流清单格式都能解析点播直播都能录既能下载点播视频也能持续录制直播流它的代码组织得很规整想深入了解可以从这几个目录入手源码目录职责src/N_m3u8DL-RE.Parser/解析 MPD / M3U8 / ISM 清单抽取音视频轨道信息src/N_m3u8DL-RE/DownloadManager/下载调度含直播录制管理器src/N_m3u8DL-RE/Crypto/AES、ChaCha20 等加解密实现src/N_m3u8DL-RE/Util/合并、字幕、杂项工具src/N_m3u8DL-RE.Common/实体定义、日志、HTTP 客户端等公共层下载本身零依赖但合并与解密阶段建议装好 FFmpeg。先在终端敲ffmpeg -version确认一下没有就装一个后面会省很多事。三、三步完成安装并发出第一条下载命令第一步挑一种安装方式方式 A下载预编译包新手最省事。打开项目的 Release 页面按系统挑压缩包Windows 选带 win-x64 的 zipmacOS 选 darwin 版本Linux 选 linux-x64。解压后直接运行里面的可执行文件不需要装任何运行时。方式 B包管理器安装。Arch Linux 及衍生版用户最方便AUR 里有社区维护的两个包# 正式发行版 yay -Syu n-m3u8dl-re-bin # 开发版抢先体验新功能 yay -Syu n-m3u8dl-re-git方式 C从源码构建。想追最新改动可以用 .NET 自己编译git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE.git cd N_m3u8DL-RE/src/N_m3u8DL-RE dotnet build -c Release第二步验证安装无论哪种方式先跑一下版本号确认程序正常N_m3u8DL-RE --version第三步发出第一条下载命令下面这个链接是项目官方测试流多音轨多字幕很适合第一次体验完整流程N_m3u8DL-RE https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd程序会解析清单、自动挑一套最佳轨道、下载所有分片并合并进度条一路跑完你就在当前目录拿到一个 MP4 了。日常使用我还会习惯性加三个参数N_m3u8DL-RE https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd \ --save-dir ./videos \ --save-name 我的收藏 \ --thread-count 8--save-dir输出目录不存在会自动创建--save-name自定义文件名比默认的任务 ID 好认--thread-count并发线程数宽带够用时可调到 CPU 核心数的两倍左右提速两个容易被忽略的小参数也值得记住--ui-language zh-CN把界面切成中文--no-log关掉日志文件避免目录里堆一堆日志。四、实战四个高频需求按图索骥需求一一招选出最佳画质与想要的语言轨道很多 DASH 清单里塞着三四档清晰度、好几条音轨。默认只下最佳一套想精细控制就用轨道选择参数。它们都支持正则格式是字段正则用冒号拼接最后用forbest|worst|all决定取几条# 只要 1080p 且 HEVC 编码的最佳视频轨 N_m3u8DL-RE 清单链接 -sv res1920*:codecshvc1:forbest # 最佳英语音轨 N_m3u8DL-RE 清单链接 -sa langen:forbest # 所有名字带中文的字幕全要 N_m3u8DL-RE 清单链接 -ss name中文:forall对应的-dv / -da / -ds则是反向剔除。原理一句话程序先把清单里所有轨道列出来再用你的正则逐条过滤最后按for的规则挑出结果。小贴士下载多条轨道时用--save-pattern让文件名自动带上分辨率和码率避免互相覆盖N_m3u8DL-RE 清单链接 --save-name video \ --save-pattern SaveName_Resolution_Bandwidth输出类似video_1920x1080_5000000.mp4模板还支持Language、Codecs、FrameRate等变量自由组合。需求二边播边录一场正在进行的直播直播流的分片无限增长且边播边删所以需要专门的参数。默认策略是先全部下载完再合并录几个小时会很拖开启实时合并后录完即得成品N_m3u8DL-RE https://cmafref.akamaized.net/cmaf/live-ull/2006350/akambr/out.mpd \ --live-real-time-merge不想让它一直录下去用--live-record-limit设上限格式为时:分:秒N_m3u8DL-RE 直播链接 \ --live-real-time-merge \ --live-record-limit 02:00:00另外三个参数按需使用--live-perform-as-vod把直播当点播一次性拉取--live-pipe-mux通过管道实时喂给 FFmpeg 混流输出延迟更低画面和字幕对不齐时试试--live-fix-vtt-by-audio程序会读音频起始时间来修正字幕。小贴士⚠️ 网络不稳时别开--live-pipe-mux——管道数据由 FFmpeg 读取弱网环境容易丢直播数据。录制默认保留分片--live-keep-segments想省磁盘空间可以关掉。需求三给加密流配一把钥匙HLS / DASH 常见的加密有 AES-128、CENCClearKey等加密流一般需要KID:KEY形式的密钥。用--key指定可以重复多次N_m3u8DL-RE https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd \ --key 9eb4050de44b4802932e27d75083e266:166634c675823c235a4a9446fad52e4d多个分片共用同一个 KEY 时也可以直接简写--key 密钥值。密钥太多就写进文件用--key-text-file让程序按 KID 自动查找。解密依赖第三方工具用--decryption-engine切换默认 MP4DECRYPT可选FFMPEG | MP4DECRYPT | SHAKA_PACKAGER工具没在 PATH 里就加--decryption-binary-path指定全路径。小贴士HLS 场景如果已知加密方法、密钥和 IV可以直接硬指定省去猜测流程N_m3u8DL-RE 链接 \ --custom-hls-method AES_128 \ --custom-hls-key 000102030405060708090a0b0c0d0e0f \ --custom-hls-iv 000102030405060708090a0b0c0d0e0f⚠️ 解密功能请只用于你有合法权限的内容工具本身仅供学习与技术研究。需求四只下一段、定时开始、按需混流只想试看中间一段--custom-range 05:00-20:00只下载第 5 到 20 分钟的分片想半夜再开始跑任务--task-start-at 20260815230000格式yyyyMMddHHmmss想混流成指定容器-M formatmp4或-M formatmkv:muxermkvmerge混流时引入外部字幕/音轨--mux-import pathzh-Hans.srt:langchi:name中文 (简体)原理一句话这几个参数都是把下载这件事切成更细的粒度——控制范围、控制时机、控制产物格式。小贴士--custom-range除了时间写法也支持分片序号写法比如0-10第 0 到 10 个分片、10-从第 10 个往后、-99前 100 个分片试看片段时特别好用。五、高频问题排障速查症状 → 原因 → 解法症状原因解法合并或解密阶段报 FFmpeg 错误机器上没装 FFmpegUbuntu/Debian 执行sudo apt install ffmpegWindows 下载后把bin目录加进 PATH或用--ffmpeg-binary-path指定 exe 全路径下载速度上不去线程数太低或想让带宽给其他程序让路调大--thread-count限速用-R如-R 15M支持 Mbps / Kbps分片反复失败、中途断流网络不稳定调高--download-retry-count默认 3 次和--http-request-timeout默认 100 秒走代理加--custom-proxy http://127.0.0.1:8888合并后文件不完整分片数量对不上临时分片已被清理程序默认开启--check-segments-count数量校验把--del-after-done设为 false 保留临时分片便于二次排查通用排查手段先把日志级别调到 DEBUG跟着日志一步步定位N_m3u8DL-RE 链接 \ --log-level DEBUG \ --log-file-path ./download.log--log-level支持DEBUG / INFO / WARN / ERROR / OFF。还有一个环境细节版本较低的 Windows 自带终端可能渲染不出程序界面换用 cmder 之类的终端即可正常显示。六、收尾一张自查清单与三个进阶方向把全文浓缩成一张清单跟着走就不会卡壳✅ 装好 N_m3u8DL-RE 与 FFmpeg--version确认可用✅ 用官方测试流完成第一条N_m3u8DL-RE 链接命令✅ 用--save-dir / --save-name / --thread-count规范输出✅ 多轨道用-sv / -sa / -ss精确挑选-mt并发提速✅ 直播用--live-real-time-merge配--live-record-limit边录边合并✅ 加密流用--key KID:KEY配合--decryption-engine解密✅ 出问题先开--log-level DEBUG跟着日志定位根因想继续深入推荐三个方向一是通读项目根目录的 README 文档里面有全部命令行参数的详细说明和--morehelp示例二是翻一翻TestStreams.md里面整理了覆盖点播、直播、加密、多字幕场景的官方测试流是实操练习的好素材三是对照源码了解src/N_m3u8DL-RE.Parser/、src/N_m3u8DL-RE/DownloadManager/与src/N_m3u8DL-RE/Crypto/的实现想二次开发或定制行为时用得上。下次出门前与其赌会员缓存不过期不如花十分钟把想看的视频真正下载到硬盘里。现在就去复制一条测试流链接点亮你的第一格本地播放图标吧。【免费下载链接】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),仅供参考