ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

N_m3u8DL-RE 完整上手指南:M3U8/MPD 下载、解密与直播录制实战

N_m3u8DL-RE 完整上手指南:M3U8/MPD 下载、解密与直播录制实战 N_m3u8DL-RE 完整上手指南M3U8/MPD 下载、解密与直播录制实战【免费下载链接】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 是一款跨平台的流媒体下载工具专门解决 M3U8HLS、MPDDASH、ISM 这类链接下载下来是一堆散装分片、加密内容打不开、直播录不全的问题。它把抓取、分片下载、合并、混流、解密整条链路都包办了你只需要在命令行里给一个链接加几个参数。全文按任务推进先把工具跑起来然后拿下第一个视频再处理带加密的内容最后完整盯住一场直播。先想清楚你要干嘛不同任务读不同的段落可以先对号入座还没装好工具 → 从「把工具跑起来」开始这一步只需要 5 分钟手里有一个普通链接想把视频弄下来 → 直接读「拿下第一个视频」链接下载下来是花的、提示缺密钥、日志里出现 KID/KEY → 读「解密带保护的内容」想把一场直播从头录到尾 → 读「完整录下直播」下载到一半报错 → 翻到「踩坑速查」对照处理。把工具跑起来这步的目标让N_m3u8DL-RE在终端里能直接敲出来。它没有复杂的配置项装二进制文件就行。在 Windows 上安装它从项目仓库的 Releases 页面下载 Windows 压缩包解压到任意目录比如C:\Tools\N_m3u8DL-RE把这个目录加入系统环境变量PATH打开新的终端验证N_m3u8DL-RE --version能打印出版本号就算装好了。低版本 Windows 自带的终端可能跑不动官方建议改用 cmder 运行。在 Linux / macOS 上安装它下载对应平台的压缩包解压后给可执行文件加权限并放到PATH里# 解压后给可执行文件加执行权限并移动到系统路径 unzip N_m3u8DL-RE-linux-x64.zip chmod x N_m3u8DL-RE sudo mv N_m3u8DL-RE /usr/local/bin/Arch Linux 用户也可以走 AURyay -Syu n-m3u8dl-re-bin。装好依赖工具 ffmpeg下载本身不依赖任何东西但合并、混流、部分解密都要调用 ffmpeg建议先装好# Ubuntu/Debian sudo apt install ffmpeg # macOS brew install ffmpeg其他两个依赖按需装mp4decryptMP4 解密用、shaka-packager个别特殊加密场景用。装完后跑一句ffmpeg -version能输出版本信息就 OK。顺手把界面改成中文如果默认不是你想要的语言N_m3u8DL-RE URL --ui-language zh-CN拿下第一个视频这章的目标一个链接进去一个能播放的文件出来。下面用的示例流来自项目自带的 TestStreams.md列表里还有几十个可随便练手的链接。用一条命令下载 M3U8下载一个 HLS 流指定输出目录和文件名N_m3u8DL-RE https://storage.googleapis.com/shaka-demo-assets/angel-one-hls/hls.m3u8 \ --save-dir ~/Downloads \ --save-name angel_test跑完后看两件事判断成功日志最后有收尾提示~/Downloads下出现了angel_test相关文件拖进播放器能正常播放。挑对画质和音轨一个多码率流里可能有好几条视频轨、音频轨用-sv视频、-sa音频、-ss字幕按正则挑# 挑 1080p 最佳视频轨 全部音轨 N_m3u8DL-RE URL -sv res1920*:forbest -sa all # 挑最佳中文音轨 N_m3u8DL-RE URL -sa langzh:forbest # 懒得挑让程序自动选各类型的最佳轨 N_m3u8DL-RE URL --auto-select注意-ss在这里是选字幕轨不是从某时间点开始下。想只下载视频的一部分用的是--custom-range# 只下载第 5 分钟到第 20 分钟的内容 N_m3u8DL-RE URL --custom-range 05:00-20:00下载完的视频、音频是分开的文件想要一个能直接播的 MP4加个混流参数# 全部完成后把音视频混流成一个 mp4 N_m3u8DL-RE URL -M formatmp4常用参数速查后面几章也会反复用到这些集中放在这里参数作用备注--save-dir/--save-name输出目录 / 文件名最常用-sv/-sa/-ss正则选择视频 / 音频 / 字幕如res1920*:forbest--auto-select自动选各类型最佳轨省事首选--thread-count下载线程数默认 本机 CPU 线程数--download-retry-count分片失败重试次数默认 3弱网可调大--http-request-timeout请求超时秒默认 100--tmp-dir临时文件目录磁盘紧张时可指到别的盘-H加请求头如-H Cookie: xxx-mt音视频字幕并发下载大文件更快-M完成后混流如-M formatmp4--sub-only/--sub-format只下字幕 / 字幕格式格式支持SRT或VTT--custom-range只下部分分片如05:00-20:00哪个参数不确定敲N_m3u8DL-RE --morehelp 参数名例如--morehelp select-video能看详细文档比翻全量帮助快得多。解密带保护的内容这章的目标把加密流变成能正常播放的明文文件。怎么判断流是加密的日志里出现EXT-X-KEY、KID 之类的字样或者下载完播放是雪花屏、音频刺耳基本就是加密问题。把密钥喂给程序密钥有三种给法看手头材料决定# 全流共用一把密钥直接给 KEY N_m3u8DL-RE URL --key 1234567890ABCDEF1234567890ABCDEF # 不同分片用不同密钥给 KID:KEY 对可多次 N_m3u8DL-RE URL --key KID1:KEY1 --key KID2:KEY2 # 密钥很多时放一个文本文件每行一个 KID:KEY N_m3u8DL-RE URL --key-text-file keys.txt拿项目自带的加密测试流练手这条命令可以直接跑# 测试流自带 KID:KEY 对下载即解密 N_m3u8DL-RE https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd \ --key 9eb4050de44b4802932e27d75083e266:166634c675823c235a4a9446fad52e4d选对解密引擎--decryption-engine决定背后调哪个第三方程序默认MP4DECRYPT大多数情况不用动引擎背后程序什么时候用MP4DECRYPT默认mp4decryptMP4/CENC 类加密的常规场景FFMPEGffmpeg个别 HLS AES-128 场景SHAKA_PACKAGERshaka-packager前面两个都不行时再试另外两种特殊情况直播边下边解加--mp4-real-time-decryptionMP4 分片下完立刻解密不用等最后统一处理播放列表里根本没写密钥信息时手动补--custom-hls-method AES_128 --custom-hls-key HEX或Base64方法还可以是CENC、CHACHA20、SAMPLE_AES等具体值看--help里的枚举。确认解密结果能播两招# 无输出 文件结构没问题 ffmpeg -v error -i output.mp4 -f null -再快进快退把文件头尾各看几眼。如果解密还是失败九成是密钥本身的问题——KID 和 KEY 没对上或者 HEX 和 Base64 搞混了先回头核对密钥格式再考虑换引擎。完整录下直播这章的目标从开播到收播得到一个完整可播的直播文件。直播和点播最大的区别是播放列表一直在变所以要开直播模式。基础直播录制命令# 开启实时合并分片边下边拼CtrlC 结束录制并自动完成收尾 N_m3u8DL-RE LIVE_URL --live-real-time-merge --save-name live_recording判断成功的标准录制过程中日志持续有新分片写入CtrlC停止后输出文件能正常播放、时长和你实际录的时间基本一致。项目测试流里有一条 DASH 直播流可以拿来练手见 TestStreams.mdN_m3u8DL-RE https://cmafref.akamaized.net/cmaf/live-ull/2006350/akambr/out.mpd \ --live-real-time-merge --save-name live_demo限定录制时长不想盯着终端时给它一个时长上限到点自动停# 录满 2 小时 30 分钟自动结束时:分:秒 N_m3u8DL-RE LIVE_URL --live-real-time-merge --live-record-limit 2:30:00弱网环境下再加大重试和列表刷新间隔减少断流丢片段# 断流后多等一会儿、多试几次 N_m3u8DL-RE LIVE_URL --live-real-time-merge \ --live-wait-time 30 --download-retry-count 10用管道实时混流--live-pipe-mux会把分片通过管道交给 ffmpeg 实时混成 TS 文件成品更接近边录边成片。在 Linux/macOS 上还可以用环境变量微调 ffmpeg 参数# 管道混流时让 ffmpeg 用 copy 视频、AAC 编码音频 export RE_LIVE_PIPE_OPTIONS-c:v copy -c:a aac -b:a 192k N_m3u8DL-RE LIVE_URL --live-real-time-merge --live-pipe-mux一句提醒网络不稳定的时候别开管道混流管道里的数据读取由 ffmpeg 负责掉流时容易直接丢数据普通实时合并更稳。另外默认会保留已录分片--live-keep-segments方便断了重录磁盘紧张记得预留空间。踩坑速查症状大概率原因怎么解决分片报 401/403、下载 0 字节站点要求身份校验-H Cookie: xxx补请求头或--custom-proxy走代理提示找不到密钥 / 解密后是雪花屏KID 与 KEY 不匹配或 HEX/Base64 格式混淆核对密钥HLS 可用--custom-hls-key强制指定合并阶段报找不到 ffmpeg没装 ffmpeg 或不在 PATH装 ffmpeg或--ffmpeg-binary-path指全路径直播录制中间缺片段网络抖动、分片拉取失败调大--download-retry-count调整--live-wait-time成品没有声音音轨分离但没选-sa all或-sa langxx把音轨选上直播字幕时间轴对不上字幕起始时间未修正加--live-fix-vtt-by-audio低版本 Windows 终端报错旧终端不兼容换 cmder 运行字幕想只要某一种语言默认全下了--sub-only配合-ss name中文精挑接下来还能玩什么跑通上面四件事之后可以试试--mux-import把外部音轨、字幕文件混进成品--save-pattern SaveName_Resolution让文件名自动带上分辨率--task-start-at定时让任务在指定时刻开始。任何一个参数拿不准--morehelp 参数名都是最快的一手文档。【免费下载链接】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),仅供参考
返回列表