{"repo":"yelixoea/browser-stream-bridge","free":true,"listed":false,"github":"https://github.com/yelixoea/browser-stream-bridge","clone":"git clone https://github.com/yelixoea/browser-stream-bridge.git","description":"基于无头浏览器捕获网页 HTML5 视频，并桥接为 HLS 标准直播流，供播放器和电视设备使用。","language":"JavaScript","stars":25,"topics":["ffmpeg","hls","mediastream","playwright","streaming"],"license":"MIT","category":"scrapers-browser-automation","readme_excerpt":"Browser Stream Bridge 一个 将视频网站中 元素的数据实时转发为 HLS（TS）或 Fragmented MP4 流 的 Node.js 服务，基于 Playwright + MediaRecorder + FFmpeg + 内置 HTTP Server 。 🎯 适合场景 🎬 各类视频网站（HTML5 播放器） 📡 仅提供浏览器播放、 无法直接拉流 的站点 🔁 将网页视频桥接到 HLS / Web 播放器 / 传统流媒体系统 🧪 WebRTC / MSE / blob URL 视频转发 --- ✨ 特性 🎯 只处理 元素 ：不做桌面录制、不截图，直接转发播放器视频流 🚀 HTTP API 即开即用 ：传入网页 URL，立即返回 HLS 或 FMP4 播放地址 ♻️ HLS 流复用 ：同一 URL 自动复用已有流 🧹 无人观看自动回收 （基于 HLS 访问时间） 🧠 页面资源拦截 ：支持 block list，减少广告 / 追踪 🕶 Headless Chrome ，服务端运行 --- 🧩 架构 --- 📦 依赖 Node.js = 18 Playwright (Chromium) FFmpeg (需支持 H.264 / AAC / MP4 / HLS) --- 📁 目录结构 --- 🔧 环境变量配置 Browser Stream Bridge 支持通过环境变量进行运行时配置，便于在不同环境（本地 / Docker / 服务器）部署。 变量名 默认值 说明 --------------- ----------- ---------------------- SERVER SCHEME http 返回播放地址协议 SERVER IP 127.0.0.1 对外访问 IP SERVER PORT 3001 HTTP 服务端口 HLS DIR ./hls HLS 输出目录 VIDEO BITRATE 4000000 MediaRecorder 目标码率 BUFFER SEC 0.2 fMP4 缓冲秒数 FFMPEG PATH ffmpeg FFmpeg 路径 --- 🚀 启动 1️⃣ 安装依赖 确保本机已有： --- 2️⃣ 启动服务 或使用环境变量： --- 创建 / 复用流 示例 HLS（TS） 返回： ------ Fragmented MP4（实时） 返回： ⚠️ type=fmp4 不是 HLS，没有 m3u8 --- 📺 播放 浏览器（HLS / fMP4） VLC FFmpeg --- 🧠 页面预加载逻辑（核心） assets/page preload.js 核心思路： 找到页面 使用 video.captureStream() MediaRecorder 录制为 video/webm; codecs=h264,opus 通过 window. pushMediaChunk() 把数据推回 Node.js 关键代码： --- 🧹 自动回收策略 - HLS： - 记录 playlist 访问时间 - 超时自动销毁 FFmpeg + Page - fMP4： - 客户端断开即销毁 - 不做流复用 防止： - 僵尸浏览器 - 残留 FFmpeg 进程 --- ⚠️ 注意事项 - DRM（Widevine）页面无法捕获 - Headless Chromium 可能触发清晰度限制 - 高分辨率 / 高码率 CPU 占用明显 - fMP4 为 单播模式 , 延迟通常 3–5 秒 - HLS 延迟通常 ","default_branch":null,"files":null,"tree":[],"storefront":"/r/yelixoea","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/yelixoea/browser-stream-bridge/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}