CutFast CutFast
教程指南

m3u8 直播流怎么录制?浏览器免装方案 vs OBS / N_m3u8DL-CLI 全面对比(2026 版)

发布于 · 作者: CutFast Team
把 CutFast 设为 Google 优先来源 在热门报道和 AI 概览里看到更多 CutFast。

直播 m3u8 跟普通 VOD 的区别:为什么 wget 下来就完事是错的

直播 m3u8(Live HLS)和点播 m3u8(VOD)共用同一种 .m3u8 文件格式,但运行机制完全不同——直播流的 ts 片段列表是动态滚动的,token 通常 5-30 分钟过期,断流后边缘节点会清掉旧 segment,所以你不能像下载 VOD 那样 wget 一个 m3u8 就万事大吉。

具体差异有三个:第一,EXT-X-PLAYLIST-TYPE 不同——VOD 是 VOD,直播是不写或写 EVENT,且会带 #EXT-X-MEDIA-SEQUENCE 标记当前窗口起点。第二,滚动窗口:典型直播只在 m3u8 里保留最近 3-6 个片段(约 18-36 秒),过期片段直接消失,所以”等直播结束再下载”是不可能的,必须实时拉取。第三,鉴权 token 短期:很多商业直播平台的 ts URL 带 ?auth_key=xxx&t=1234567890 短期 token,10-30 分钟后即失效,长时间录制必须能在 token 刷新时续上。

这三点决定了:录直播本质是一个长期运行的拉取+拼接进程,而不是一次性下载。下面 4 个方案就是围绕这件事展开的不同实现思路。

4 种主流 m3u8 直播录制方案对比

目前主流的 m3u8 直播录制方案分四类:桌面软件(OBS Studio)、命令行工具(N_m3u8DL-CLI / FFmpeg)、浏览器内方案(cutfa.st)。每种思路不同——OBS 是画面捕获派,N_m3u8DL-CLI / FFmpeg 是流捕获派,cutfa.st 是浏览器内流捕获派。

维度OBS StudioN_m3u8DL-CLIFFmpegcutfa.st 浏览器
安装需安装(300MB+)需安装(CLI)需安装(CLI)零安装
录制原理屏幕/窗口捕获直接抓 ts 片段直接抓 ts 片段WebCodecs 抓流
画质上限受屏幕分辨率限制源画质 1:1源画质 1:1源画质 1:1
CPU 占用高(实时编码)低(直接拼接)低(直接拼接)中(浏览器解码)
长时间录制优秀(数小时)优秀(无上限)优秀(无上限)受浏览器内存限制
上手难度中(需配置)中(命令行)高(参数复杂)极低(贴 URL)
隐私本地处理本地处理本地处理本地处理
自动化批量优秀优秀
跨平台Win/Mac/LinuxWin 为主全平台任何浏览器
合规风险用户自负用户自负用户自负用户自负

简单总结:想要最快、最简单录 1-10 分钟切片——浏览器;想录 3 小时颁奖典礼完整存档——OBS 或 FFmpeg;要批量定时录 50 个直播间——N_m3u8DL-CLI 脚本化。

浏览器方案实战:cutfa.st hls-live-recorder 的设计逻辑

cutfa.st 的 hls-live-recorder 提供 1/3/5/10 分钟四档定时录制,刻意不做”无限时长”,这是基于浏览器环境的工程取舍。打开页面,贴入 m3u8 URL,选时长,点开始——浏览器后台开始拉 ts 片段并用 WebCodecs 实时拼接,到达预设时长后自动停止并下载 mp4。

为什么是定时分段而不是手动停止?三个原因:第一,浏览器内存有上限——一个 1080p 直播流每分钟产生约 30-50MB 解码后视频帧缓冲,连续录 30 分钟以上 Tab 会被浏览器主动 kill;第二,token 失效保护——5 分钟切片在大多数平台 token 有效期内能完整完成,避免录到一半失效白录;第三,断流自愈——分段录制天然规避了”直播暂停 5 秒整个录制崩”的问题,单个 5 分钟段失败不影响下一段。

实际操作只需三步:

  1. 用浏览器开发者工具 Network 面板抓到目标直播的 .m3u8 URL(含 token)
  2. 粘贴到 hls-live-recorder,选时长
  3. 等到时间到自动下载 mp4,过程中可以同时开 m3u8-player 监看实际录制画面

如果直播比较长,建议连续录多个 10 分钟段然后用 hls-to-mp4 拼接——这比让浏览器单次跑 60 分钟稳定得多。

适用场景对照:选错方案会让你白忙半天

不同录制需求适合不同方案,强行用一种工具搞所有事会很痛苦。下面是按场景的快速决策表,对号入座即可。

短切片场景(推荐 cutfa.st 浏览器):自媒体抓直播金句做切片、记者抓发布会片段、博主截直播做表情包素材、临时记录 5 分钟内的精彩瞬间。这类需求贵在响应快——你看到精彩内容时离它结束可能就 30 秒,没时间打开 OBS 配场景;浏览器方案 10 秒内就能开始录。

长存档场景(推荐 OBS / FFmpeg):录制 2-4 小时的颁奖典礼、完整存档某场 3 小时的电竞比赛、归档自己的整场直播带货。这类需求贵在稳定性——你要离开电脑也能持续录,OBS 内置硬编码(NVENC / VideoToolbox)能让 i5 笔记本跑 4 小时不掉帧,浏览器方案撑不到那么久。

批量自动化场景(推荐 N_m3u8DL-CLI):每天定时录 50 个特定直播间、监控某频道 24 小时不间断、做直播数据分析需要长期素材。这类需求贵在脚本化——可以写 cron + bash 自动调度,浏览器和 OBS 都没法这样规模化。

移动端临时录(只能 cutfa.st 浏览器):在 iPad / Android 平板上想录直播——OBS 移动版功能阉割、N_m3u8DL-CLI 没移动端,唯一可行的是浏览器方案,这也是 cutfa.st 在移动场景的独占优势。

cutfa.st 浏览器方案 vs OBS:详细对比

OBS 是直播录制领域的事实标准,但它和浏览器方案解决问题的思路截然不同——这个差异决定了你用谁更合适。下面从五个维度详细拆。

录制原理差异最关键:OBS 是画面捕获——它打开浏览器播放直播,然后用屏幕录制把播放画面录下来,再实时编码成 mp4。这意味着你的屏幕分辨率成了画质上限——1080p 屏幕录不出 4K 流,且全程 OBS 必须前台运行(最小化都不行)。cutfa.st 是流捕获——直接拉取 ts 片段后用 WebCodecs 解码拼接,画质和源流 1:1,不受屏幕影响,且 Tab 在后台也能录(部分浏览器需保持 Tab 不被休眠)。

速度对比:OBS 从启动到开始录约 30-60 秒(启动软件 + 配置场景 + 添加浏览器源 + 开始播放)。cutfa.st 从打开页面到开始录约 10-15 秒(打开页面 + 贴 URL + 选时长 + 开始)。短切片场景下浏览器方案 3-4 倍快

CPU 占用:OBS 实时编码 1080p30 的 H.264 流,i7 笔记本 CPU 占用约 15-25%(用硬编码可降到 5-10%)。cutfa.st 用 WebCodecs 调用浏览器内置硬解码,CPU 占用约 8-15%——比 OBS 软编码低,比 OBS 硬编码略高。

隐私:两者都是本地处理零上传——OBS 录到本地硬盘,cutfa.st 走 WebCodecs 在 Tab 内处理后下载到本地,ts 片段不经过任何 cutfa.st 服务器。这一点上两者打平。

安装包:OBS 安装包约 300MB+,需管理员权限,首次配置场景约 10 分钟。cutfa.st 零安装,任何 Chrome / Edge / Safari 直接打开就用——这点对偶尔录一次的人价值巨大

录完后处理:拼接、剪辑、转格式一条龙

录下来的 mp4 通常需要二次处理。比如你用浏览器分了 6 段 10 分钟的录制,需要拼成 1 小时完整版;或者要把直播切片转成 GIF 发微博、提取音频做播客素材。这一段是后续处理的常见路径。

多段拼接成完整版:把多个 mp4 片段拖进 hls-to-mp4(虽然名字是 hls-to-mp4,但底层支持 mp4 拼接),按顺序排列后合并导出,整个过程也是浏览器内本地处理。FFmpeg 的等价命令是:

# 创建文件清单 list.txt
echo "file 'part1.mp4'" > list.txt
echo "file 'part2.mp4'" >> list.txt
ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp4

N_m3u8DL-CLI 直接录直播命令(适合熟命令行的人对照):

N_m3u8DL-CLI "https://example.com/live/stream.m3u8" \
  --workDir ./recordings \
  --saveName "stream-2026-05-10" \
  --enableDelAfterDone \
  --maxThreads 16

FFmpeg 录直播命令

ffmpeg -i "https://example.com/live/stream.m3u8" \
  -c copy -bsf:a aac_adtstoasc \
  -t 600 \
  output.mp4
# -t 600 = 录 600 秒(10 分钟)

录完之后想做切片、转 GIF、提音频,cutfa.st 的其他工具(剪辑、抽帧、提音频)都能本地搞定,不再赘述——核心思想是:录制工具选最适合的,后期处理用浏览器一条龙

合法合规:录直播前必须确认你有权限

录直播必须在合法权限范围内进行,这条没有任何回旋余地。本文所有内容仅适用于以下三种情况:你录自己的直播作存档、录公开免费且无版权声明的直播、已获得直播主或版权方明确授权。

不允许做的事:录制付费订阅直播再分发、绕过 DRM 保护流(cutfa.st 浏览器方案技术上也录不了 DRM 流,Mediabunny 1.44 对 DRM 仅只读)、录制带”禁止录屏/转载”声明的直播、录后用于商业用途但未获授权。这些行为可能违反平台用户协议、《信息网络传播权保护条例》乃至《著作权法》。

cutfa.st 不会、技术上也无法帮你绕过任何 DRM、付费墙或 token 鉴权——你需要先在浏览器登录账号、打开直播、抓到 m3u8 URL,整个过程相当于”用你自己的账号录你能合法访问的内容”。最终责任在使用者,工具只负责高效执行。

FAQ

Q1: 用浏览器录直播会不会卡当前播放页面? 不会。hls-live-recorder 在独立 Tab 内拉取 ts 片段并解码,跟你播放直播的 Tab 是两个独立的 worker——你可以一边在 A Tab 看直播,一边在 cutfa.st Tab 录制同一个 m3u8 URL。两者唯一共享的是网络带宽,4G 以上网络下感知不到。

Q2: 录到一半 token 过期怎么办? 单段 ≤10 分钟的设计就是为了规避这个——99% 的平台 token 有效期 ≥10 分钟。如果真的中途失效,单段会提前结束并保存已录部分,你重新抓一次新 URL 开始下一段即可。这就是为什么不做”无限时长”——长录制一旦 token 失效,前面录的内容也很可能因为段间 ts 引用断裂导致不可播放。

Q3: 抓 m3u8 URL 时遇到 CORS 失败怎么办? 有些直播站 m3u8 服务端配了 Access-Control-Allow-Origin: <自家域名>,浏览器跨域抓取会被拦。两个对策:第一,用浏览器扩展(如 ModHeader)改 Origin 头;第二,改用 N_m3u8DL-CLI 或 FFmpeg 命令行——它们不受浏览器同源策略限制。这是浏览器方案的固有限制,没办法绕过。

Q4: 长时间录制 1 小时以上浏览器内存爆了怎么办? 用 6 段 10 分钟代替 1 段 60 分钟,录完用 hls-to-mp4 拼起来。如果你每天都要录 1 小时以上的内容,直接换 OBS 或 FFmpeg——浏览器不是为长跑设计的,逼它跑长跑等于自找麻烦。

Q5: 录公开新闻直播作为新闻报道素材合法吗? 《著作权法》有”合理使用”条款(如新闻报道、个人学习),但具体边界需要根据你的国家/地区法律判断。强烈建议任何商用前咨询专业律师,本文不构成法律意见。

Q6: 浏览器方案画质能上 4K 60fps HDR 吗? 理论上 WebCodecs 支持 4K H.264/H.265 解码,实际取决于源流编码——如果直播本身是 4K HEVC,且你的浏览器支持 HEVC 硬解(Safari / 部分 Chrome),可以 1:1 录到 4K。但 60fps HDR 在 2026 年的 WebCodecs 实现中仍有兼容性问题,建议这种极端场景用 OBS + 硬件采集卡。

查看「工具对比与选型」全部 41 篇 →

试试这些 AI 工具