首页/新闻资讯/正文详情

视频号直播录制全链路:从按钮点击到 MP4 落盘

发布时间:2026/11/7 9:31:18 来源:云帆数科 栏目:资讯中心
视频号直播录制全链路:从按钮点击到 MP4 落盘
视频号直播录制全链路从按钮点击到 MP4 落盘【免费下载链接】wx_channels_download微信视频号下载器项目地址: https://gitcode.com/gh_mirrors/wx/wx_channels_download直播录制和普通视频下载是两回事直播流没有确定长度也不能按字节断点续传。wx_channels_download 为直播录制设计了独立管道前端注入脚本在直播页挂出下载按钮后端 ffmpeg 子进程把无限流分段录成文件再转封装成 MP4。文章先分清 FILE 与 STREAM 的资源模型差异再讲两条录制触发路径。随后拆解 ffmpeg 子进程的生命周期管理并给出 HTTP 与 MCP 两个脚本化入口。直播流和普通视频到底差在哪下载引擎在 engine.go 中定义三种资源类型FILE定长文件、COLLECTION保留类型、STREAM直播流。FILE 走常规的分段下载循环STREAM 则交给独立的录制调度器两者从请求模型开始就分道扬镳维度FILE普通视频STREAM直播流资源长度确定可算总量与完成百分比未知随推流持续增长请求方式HTTP Range 分段 断点续传ffmpeg 进程级管道无 Range中断恢复记录 offset 续传按 10 分钟 MKV 分片续录已关片不重录并发占用占下载并发槽位不占并发槽长任务豁免直播任务在 adapter 层构建时资源被标记为Type: STREAM、协议为livestream流地址取自 joinLive 响应的liveSdkInfo.liveCdnUrl分片轮转周期固定 10 分钟。跑起来依赖检查与最小路径ffmpeg 是直播录制的硬依赖引擎在启动录制前会探测它。一条命令确认环境ffmpeg -version最小可用路径三步安装 ffmpegmacOS 用 HomebrewLinux 用发行版包管理器确认其在 PATH 中启动下载服务默认监听 2023 端口并接管系统代理用法见 docs/cli/server.md浏览器打开视频号直播页点击右上角「下载图标」按钮。两条录制路径直播页一键创建直播录制任务入口由 channels.live.js 注入脚本监听直播页.host__info .extra容器把下载按钮插入容器首个子节点之前无需人工干预。单击按钮触发录制核心逻辑就四行var [liveErr, p, liveData] WXU.check_live_existing({ silence: true }); if (liveErr || !liveData?.liveSdkInfo?.liveCdnUrl) return; // 无流则报错提示 var content { profile: p, live: liveData }; var r await dl$.create(content, { platform: wxchannels });校验liveSdkInfo.liveCdnUrl通过即创建任务。成功反馈是「直播下载任务已创建」toast任务随即进入下载队列统一管理失败则提示「检测不到直播流请将本工具更新到最新版」或「下载器未初始化」中途失败由task$.onFailed回调弹出「下载失败: 原因」。复制 ffmpeg 手动录制命令模板悬停按钮会弹出下拉菜单每个 CDN 转码档位对应一个菜单项标签由「档位名 码率 画质描述」拼接如高清 1500 720P。点击任意档位命令即被复制进剪贴板ffmpeg -i CDN 直播地址 -c copy -y live_毫秒时间戳.flv逐个看关键参数-c copy是流复制只换容器不转码速度最快且画质无损-y自动覆盖同名输出live_毫秒时间戳.flv用Date.now()命名避免与既有文件冲突FLV 容器与视频号直播常见的 HTTP-FLV 协议对齐。多档位并存时按带宽取舍低码率档适合弱网长录。这条命令的意义在于即使不经过应用内任务你也能拿到真实 CDN 地址用任何终端手动录制。录制引擎内部怎么跑的应用内任务的录制全部发生在 stream.go 的StreamDriver里。按 ffmpeg 进程的生命周期拆一共六个阶段探测依赖Prepare与RecordStream都先调exec.LookPath(ffmpeg)缺失直接返回ffmpeg is required for live recording启动子进程ffmpeg 以-f segment -segment_format matroska按 10 分钟写segment-XXXXXX.mkv分片同时往playback目录输出一份 4 秒粒度的 HLS 播放列表——这就是「边下载边播放」的来源HTTP 流会追加-reconnect系列参数并透传代理与自定义请求头进度上报-progress pipe:1让 ffmpeg 把进度写进 stdout引擎解析后扫描目录汇总各分片状态产出已下载字节、速度、时长容错重试源站返回 401/403/410 被识别为签名 URL 失效不再重试直接判负其他失败按 1s/2s/4s 指数退避重试至多 3 次重试时从已有分片编号继续已录部分不浪费优雅停止先向 stdin 写入q并关闭给 8 秒宽限期等待 ffmpeg 自行退出超时才 cancel 进程手动停止会用独立的 30 分钟上下文完成收尾保证已录内容不丢无损合并逐片用 ffprobe 校验坏片改名.corrupt隔离其余按ffconcat清单-c copy拼接成单个 MKV最后清理临时目录。合并完成只是落盘还不是最终产物。postprocess.go 中route_resource网关节点把resource_type STREAM的资源分流到stream_convertffprobe 探测编码后转封装为 MP4HEVC 仅重写为hvc1标签保证系统播放器兼容未知编码回退 H.264 重编码音频统一 AAC随后finalize_stream把 MP4 路径写回资源并更新任务状态。脚本化与 Agent 调用直播能力同时暴露为 HTTP 接口注册在 routes.go路由查询参数说明GET /api/channels/live/profileusername、oid、nid、id走前端 joinLive 接口取直播资料含liveCdnUrlGET /api/channels/live/replay/listusername、next_marker取直播回放列表结果缓存 5 分钟MCP 侧提供三个工具见 wxchannels_download_tools.godownload_wxchannels_live只需传account精确昵称或 username工具内部完成账号搜索、直播流定位、原生任务创建与自动启动缺liveCdnUrl时回退streamUrlget_wxchannels_live_replays取某账号的直播回放列表get_wxchannels_live_profile取直播资料详情。设计亮点在第一个工具一个参数走完全程。调用方不需要先取流地址、再拼 content、再创建任务「定位 创建 启动」被压缩成一次 MCP 调用。踩坑与边界情况流地址有有效期liveCdnUrl的签名只在直播进行期间有效直播结束后 ffmpeg 收到 401/403/410任务立即判负。想拿播后内容走回放列表接口。中断恢复不是续传直播流无法回退恢复靠「从当前分片继续」。引擎默认 10 分钟一切片中断后再录会接上编号已录部分最终仍拼进成片。输出格式分两条线应用内任务最终产物是 MP4过转封装手动复制命令产出 FLV 到当前工作目录要换位置或容器得自己改命令末尾。多档位取舍清晰度菜单对应不同 CDN 转码档码率越高文件越大、对上行要求越高弱网长录建议选低档。ffmpeg 是硬依赖录制启动前就探测缺了直接拒绝ffprobe 只用于分片校验缺失不阻塞录制但会降低坏片识别能力。实验性功能live.md 明确标注「实验性」。直播场景 DOM 与接口变化快按钮行为异常时先升级应用版本。从一次点击到最终产物全链路速览直播页点击下载按钮校验 liveCdnUrl 存在创建 STREAM 下载任务ffmpeg 分段录制落盘校验分片并无损拼接转封装 MP4 并更新任务继续深挖看这三个文件前端注入、流录制驱动、后处理流程。【免费下载链接】wx_channels_download微信视频号下载器项目地址: https://gitcode.com/gh_mirrors/wx/wx_channels_download创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

数字IC前端学习笔记:负的建立时间和保持时间
数字IC前端学习笔记:负的建立时间和保持时间

相关阅读数字IC前端https://blog.csdn.net/weixin_45791458/category_12173698.html?spm1001.2014.3001.5482 目录 简介 负的建立时间 负的保持时间 简介 建立时间和保持时间是触发器的两个重要的时序参数:建立时间(setup time)指的是在有效时钟沿前,数… · 2026/11/6 4:52:51

Google Pay 一次跑通的落地路径:google-api-php-client 接入全记录
Google Pay 一次跑通的落地路径:google-api-php-client 接入全记录

Google Pay 一次跑通的落地路径:google-api-php-client 接入全记录 【免费下载链接】google-api-php-client A PHP client library for accessing Google APIs 项目地址: https://gitcode.com/gh_mirrors/go/google-api-php-client 周五下午,产品… · 2026/11/6 4:52:51

Type Approval (认证)
Type Approval (认证)

0 Preface/Foreword1 Type Approval介绍消费类电子包含的认证(Certification)类别如下(持续更新):Safety & EMC (Eletro Magnetic Compatiblity): UL认证 (Underwriter Laboratory)Chemical… · 2026/11/6 4:52:51

用什么能查电工证真伪继续教育学时要求
用什么能查电工证真伪继续教育学时要求

电工证真伪怎么查?值不值得考?三门峡房建从业者真实经历 不知道去哪报名怕被中介坑,这是很多三门峡房建工程从业者的真实心声。尤其是电工证这类高门槛的特种作业操作证,关系到施工安全和项目资质,一旦假证被查出,不仅影响项目进度,还可能面临法律风险… · 2026/11/7 9:30:53

电工证金湖报名费多少钱?外省证能转过来吗?官方报名入口在这
电工证金湖报名费多少钱?外省证能转过来吗?官方报名入口在这

电工证金湖报名费多少钱?外省证能转过来吗?官方报名入口在这 之前考的证在外省能不能转过来?这个问题其实很多人都问过,尤其是像你这样在金湖干电工、经常要出差或者换地方工作的朋友。别急,先说个真实案例,去年我在焦作参与水利工程的时候,就遇到一个… · 2026/11/7 9:30:53

电工证考试怎么快速考下来值不值得考
电工证考试怎么快速考下来值不值得考

电工证考试怎么快速考下来值不值得考 之前考的证在外省能不能转过来,这个问题我听得太多了,作为三门峡一家劳务班组的负责人,我深知这背后的焦虑和现实压力。你不是一个人在战斗,很多同行都在纠结: 电工证考试怎么快速… · 2026/11/7 9:30:53

低压电工证内部题怎么准备?上岗必备技巧全公开
低压电工证内部题怎么准备?上岗必备技巧全公开

低压电工证内部题怎么准备?上岗必备技巧全公开 证书过期了不知道怎么复审延期,这事儿真不是小事。特别是像你这样在郑州金水区干建筑的电工,低压电工证是上岗必备的通行证,一旦过期不仅不能上岗,还可能被处罚。今天我就从实战角度,结合郑州本地经验,聊… · 2026/11/7 9:30:53

工地太忙根本没时间复习考试?考电工证需看哪种书的真实经历全揭秘
工地太忙根本没时间复习考试?考电工证需看哪种书的真实经历全揭秘

工地太忙根本没时间复习考试?考电工证需看哪种书的真实经历全揭秘 工地太忙根本没时间复习考试,这是很多一线施工人员的真实经历。尤其在项目进度紧、人手紧张的情况下,考电工证、焊工证等特种作业证成了不少人的“心头难”。而一旦证书没过,不仅影响工资… · 2026/11/7 9:30:53

阳江电工证到哪里考有效期多久 全国通用怎么处理
阳江电工证到哪里考有效期多久 全国通用怎么处理

阳江电工证到哪里考有效期多久 全国通用怎么处理 证书过期了不知道怎么复审延期?别慌,这篇文章帮你理清楚流程,特别是阳江电工证到哪里考,以及全国通用的有效期问题,看完你就明白怎么做了。… · 2026/11/7 9:29:53

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

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

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

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

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

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

澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄?
澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄?

澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄? 证书过期了不知道怎么复审延期?别慌,很多人在拿到【澳洲水电工证考试】的电子证书后,一不小心就忽略了复审时间,结果证书失效,工作受阻,甚至被单位追责。今天就从【澳洲水电工证考试… · 2026/11/7 0:00:41

电工作业提示版通过率揭秘:怎么考才能一次过?
电工作业提示版通过率揭秘:怎么考才能一次过?

电工作业提示版通过率揭秘:怎么考才能一次过? 怕考不过白交培训费?别急,今天我就从驻马店应届工程类毕业生的视角,带你全面了解电工作业提示版的考试流程、备考要点和真实通过率,帮你少走弯路、提高一次通过率。… · 2026/11/7 0:00:41

电工证年审报名千万别踩坑 外省证转过来要搞清这几点
电工证年审报名千万别踩坑 外省证转过来要搞清这几点

电工证年审报名千万别踩坑 外省证转过来要搞清这几点 之前考的证在外省能不能转过来?这个问题是很多电工从业者最关心的,特别是像你这样在商丘从事公路工程的人员,经常需要跨省流动,证书的 有效性 和 可迁移性… · 2026/11/7 0:00:41

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

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

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

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

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

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

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码