news 2026/10/20 1:12:04

M3U8 与 DASH 流媒体下载录制:安装、选流到加密流操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
M3U8 与 DASH 流媒体下载录制:安装、选流到加密流操作

M3U8 与 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 是一款跨平台的流媒体下载工具,输入 M3U8 或 MPD 地址后,它会完成选流、下载、解密、合并,最后交给你能直接播放的完整文件。

能力全景

N_m3u8DL-RE 解决的核心问题是"从拿到清单到拿到成片"这条链路上的所有环节:解析 HLS、DASH、ISM 三类清单,按条件挑选视频、音频、字幕轨道,多线程拉取分片,处理 AES-128、CHACHA20 等加密,再合并混流出可播放文件。相比自己拼接下载器和 FFmpeg,它把密钥管理、直播录制和轨道筛选都收进了同一套命令行。

维度N_m3u8DL-RE通用下载器
协议覆盖HLS / DASH / ISM多为单一协议
加密分片内置解密引擎,密钥可命令行或文件传入依赖外部工具
直播实时合并、限时录制、回看补录通常只存分片
轨道选择按分辨率、编码、语言、码率筛选手动挑流
平台Windows / Linux / macOS视工具而定

运行环境与获取方式

  1. 源码方式需要 .NET 10 运行时,可从微软官网安装;合并和混流还需要系统里有一份可用的 FFmpeg。
  2. 源码编译:
git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE cd N_m3u8DL-RE dotnet build src/N_m3u8DL-RE.sln -c Release
  1. 预编译方式:从项目发布页下载对应平台的包,解压后将可执行文件加入PATH即可。
  2. Arch 及衍生发行版可用 AUR 包n-m3u8dl-re-bin,一条命令装好依赖。

装好后先跑一次N_m3u8DL-RE doctor,它会检查本机 FFmpeg、mp4decrypt 等工具是否就位,后续排障会反复用到。

一条命令拿到可播放的点播文件

目标:输入 m3u8 地址,得到一个完整媒体文件。

N_m3u8DL-RE "https://example.com/video.m3u8"

预期结果:默认自动选择每类轨道的最佳版本,多线程拉完分片后自动合并;--del-after-done默认开启,临时分片用完即删,--write-meta-json默认输出解析出的媒体信息 JSON,方便你核对实际选中的轨道。

给输出文件、画质和编码加约束

目标:指定保存名、目录,把视频锁定在 1080p 且编码为 avc1。

N_m3u8DL-RE "https://example.com/video.m3u8" \ --save-name "Python数据分析入门" \ --save-dir "D:/media/courses" \ -sv "res=1920x1080:codecs=avc1:for=best"
# 只挑字幕,输出 VTT 格式 N_m3u8DL-RE "https://example.com/movie.m3u8" --sub-only --sub-format VTT

预期结果:视频与选中的音频、字幕分别落盘,音视频随后按默认流程混流。多轨道命名混乱时,用--save-pattern "<SaveName>_<Resolution>_<Language>"按变量生成文件名,变量列表见 README。

直播持续录制与回看补录

目标:完整保存一场直播,边录边合并,并限制总时长。

N_m3u8DL-RE "https://example.com/live.m3u8" \ --live-real-time-merge \ --live-record-limit "02:00:00" \ --save-name "产品发布会"

预期结果:--live-real-time-merge让分片在录制过程中实时合并进最终文件,--live-record-limit到点自动停止。错过开头时改用回看:

N_m3u8DL-RE "https://example.com/live.mpd" \ --live-catchup "01:00:00" \ --live-record-limit "00:30:00" \ --live-real-time-merge \ -M format=mkv

从一小时前开始补录 30 分钟,最后混流为 MKV。注意回看依赖清单中的时间信息,起点必须仍在服务端保留窗口内,否则回看会失败。

处理加密分片的三种传入方式

目标:清单里的媒体分片是密文,本地解密后得到可播放文件。

# 密钥明确时直接传入,KEY 相同时可省略 KID N_m3u8DL-RE "https://example.com/encrypted.m3u8" --key "1234567890ABCDEF1234567890ABCDEF" # 多 KID 场景从文件按 KID 检索 N_m3u8DL-RE "https://example.com/protected.mpd" --key-text-file keys.txt # 指定解密引擎(默认 MP4DECRYPT,可选 FFMPEG、SHAKA_PACKAGER) N_m3u8DL-RE "https://example.com/stream.m3u8" --decryption-engine FFMPEG

解密调用 mp4decrypt、shaka-packager 或 ffmpeg 完成,先确认它们已安装;结果异常时用--custom-hls-method AES_128显式声明加密方式,并配--custom-hls-key手工提供密钥。

高频参数速查与调优思路

参数作用示例值
--thread-count下载线程数16
--save-dir输出目录D:/media
--save-name输出文件名my-video
--auto-select各类轨道自动选最佳(开关)
-sv/-sa/-ss按正则筛选视频/音频/字幕流res=3840*:for=best
-M完成后混流参数format=mp4
--key解密密钥,可重复KID:KEY
--decryption-engine解密引擎FFMPEG
--live-real-time-merge直播实时合并(开关)
--live-record-limit录制时长上限02:00:00
--live-catchup回看起点01:00:00
-H/--cookies自定义请求头 / Cookie 文件User-Agent: ...
--custom-proxy/--interface代理 / 指定出口网卡http://127.0.0.1:8888

调优思路:--thread-count默认 10,先按带宽和磁盘余量往上加,线程并非越多越好,弱网环境反而建议配合--download-retry-count提高单分片重试容忍度。超时方面,--http-request-timeout只约束单次请求和分片连续无数据的时间,不限制总下载时长,直播场景未手动指定时会自动调整。

下载异常时的排查路径

下载直接返回 403 或 404。多数是服务器要求完整请求头。用-H "User-Agent: Mozilla/5.0 ..."补上浏览器标识;需要登录态时,从浏览器导出 Netscape 格式文件再传--cookies cookies.txt,手动 Cookie 头优先于文件。

直播录制卡住、长时间不增长。流可能已经停更,用--live-idle-timeout 120在无新分片超过 120 秒时自动结束;刷新太慢则把--live-wait-time调小。

加密分片下载完却放不了。说明没传密钥或 KID 对不上,回到--key或--key-text-file核对;解密失败也先运行N_m3u8DL-RE doctor确认解密工具本身可用。

合并阶段报 FFmpeg 相关错误。先doctor看 FFmpeg 是否被找到,找不到就装一份,或--ffmpeg-binary-path "C:/Tools/ffmpeg.exe"显式指路。

多轨道视频选错或音频缺失。加--auto-select让程序自动挑每类最佳轨道;想精确控制就用-sv res=3840*:codecs=hvc1:for=best这类条件显式锁定。

项目会随新平台和加密方式持续更新,常用参数可以存进本地配置文件,下次直接生效。遇到问题先运行N_m3u8DL-RE doctor --json导出环境信息,反馈给维护者时定位会快很多。最后提醒:只下载你拥有合法权限的内容,并遵守所在平台的使用条款。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/20 1:11:40

焊将军学园:湖南电焊培训与食宿安排解析

引言湖南省内电焊技能培训需求持续增长&#xff0c;株洲地区学员在选择培训机构时&#xff0c;常关注课程是否贴合用工标准、是否有住宿配套以及就业保障是否可落地。焊将军学园作为长沙市汇德职业培训学校旗下业务板块&#xff0c;成立于2022年&#xff0c;总部设于长沙市雨花…

作者头像 李华
网站建设 2026/10/20 1:11:35

Folia PlayerCap 教程:逐字歌词动画零门槛接入 OBS 直播画面

Folia PlayerCap 教程&#xff1a;逐字歌词动画零门槛接入 OBS 直播画面 【免费下载链接】folia-major 专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器 项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major Folia 内置 PlayerCap…

作者头像 李华
网站建设 2026/10/20 1:10:52

windows 及Mac os 获取谷歌浏览器路径

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/20 1:09:51

2024年题22项目实战:编号式任务从定义到交付的完整拆解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/20 1:08:49

智能除冰机器人设计全解析:STM32闭环控制与状态机实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华