• 62 1 分 15 秒 Python VideoStream 直播 流媒体

    VideoStream流媒体管理平台

    VideoStream 3.0 是基于 Go (Gin) + MediaMTX 的流媒体管理平台,提供视频资源、推流任务、轮播频道及流媒体转发能力。前端沿用原 Bootstrap 5 + jQuery 与 templates/static/,由 Go 使用 pongo2 渲染模板,无需改前端即可运行。

    VideoStream 3.0 是一个基于 FastAPI 和 MediaMTX 构建的高性能流媒体管理平台。它提供了一套完整的解决方案,用于管理视频资源、推流任务、轮播频道以及流媒体转发。

    核心特性

    • Go 后端: Gin + GORM + SQLite,单一二进制部署。
    • 多协议支持: RTMP、RTSP、HLS、WebRTC、SRT 等。
    • 轮播频道 (Rotation): 创建轮播组、添加节目单、排序;启停逻辑占位,推流引擎可后续接 FFmpeg concat。
    • 推流管理: 单路视频启停、日志 tail、WebSocket 实时日志(/ws/logs/global/ws/logs/:video_id)。
    • 系统与 MediaMTX: 系统环境/统计、流服务器配置、修改密码、MediaMTX 路径/重启等 API 与 Python 版对齐(部分为占位实现)。
    • 前端复用: 使用原 templates/(Jinja2 语法兼容 pongo2),static/ 未改动。

    程序截图

    l登录页

    仪表盘

    推流管理

    推流配置

    拉流转发

    基本设置

    目录结构

    VideoStream/
    ├── videostream       # Go 入口、handlers、services、lifecycle
    ├── bin/                   # MediaMTX 等
    ├── data/                  # SQLite、缓存(运行时生成)
    ├── docs/                  # 文档
    ├── logs/                  # 运行与推流日志
    ├── static/                # 前端静态资源
    ├── templates/             # 前端模板(pongo2 渲染)
    ├── go.mod, go.sum
    └── DEPLOY.md

    文档支持

    项目地址:https://gitee.com/laoknas/videostream-go 博客:https://laokhome.cn/videostream-3

    快速开始

    前置要求

    • 系统平台:amd64_x86

    运行服务

    # Linux / macOS (Bash)
    # 直接运行
    ./videostream
    
    # 或指定端口
    SITE_PORT=20512 ./videostream
    SITE_HOST=0.0.0.0 SITE_PORT=20512 ./videostream
    
    # Windows (PowerShell)
    # 直接运行
    .\videostream.exe
    
    # 或指定端口
    $env:SITE_PORT = "20512"; .\videostream.exe
    $env:SITE_HOST = "0.0.0.0"; $env:SITE_PORT = "20512"; .\videostream.exe

    默认监听127.0.0.1:20512 。浏览器访问 http://localhost:20512。默认账号:**admin**,密码:**123456laok**。

    访问 http://localhost:20512 即可进入管理后台。 默认账号 admin 默认密码 123456laok

    测试平台

    • 群晖 DS920+ 、飞牛 FNOS 上成功部署和运行(非docker)。
    • 其他 Linux 发行版(未测试)
    • 拉流转发功能(未测试),可能存在兼容性问题(暂无直播码测试)。

    环境变量

    变量 说明 默认
    SITE_HOST 监听地址 127.0.0.1
    SITE_PORT 监听端口 20512
    DATA_DIR 数据目录 data
    DB_NAME 数据库文件名 videoStream_v3.db
    SECRET_KEY JWT 密钥(生产必设) 随机/默认
    FFMPEG_PATH FFmpeg 可执行路径 ffmpeg

    API 文档

    API 前缀: /api,需登录(Cookie access_token 或 Header Authorization: Bearer <token>)。

    • 页面: //login/push/video/pull/pushrotation/settings/addpushrotation,与 Python 版路径一致,由 templates/ + pongo2 渲染,前端可直接使用原版。
    • WebSocket: /ws/logs/global/ws/logs/:video_id,用于实时推流日志。
    • 视频 CRUD、启停、批量删除、流服务器配置、修改密码、轮播 CRUD、系统/MediaMTX/日志等接口均已实现或占位,形态与 Python 版一致,便于前端沿用。

    飞牛应用部署

    image.png

    image.png

    应用下

    飞牛OS应用-更新日志
    2026-01-31
    • fn-videostream_v1.0.19.fpk
    • 1、优化应用控制台UI页面
    • 2、应用控制台新增对MediaMTX、FFmpeg的管理功能
    • 3、优化应用控制台刷新按钮逻辑。
    2026-01-29
    • fn-videostream_v1.0.18.fpk
    • 1、修复基本设置日志显示问题
    • 2、修复MediaMTX显示日志问题
    • 3、修复推流任务循环播放按钮功能无效问题
    • 4、提高系统稳定性
    2026-01-28
    2026-01-26

    版权说明

    本项目为私有软件,保留所有权利。未经作者授权,禁止复制、分发或用于商业用途。

    作者: Laok

    本软件使用以下开源组件,遵循各自许可证:

    • Gin: MIT License
    • GORM: MIT License
    • pongo2: MIT License
    • MediaMTX: MIT License
    • FFmpeg: LGPL/GPL(通过命令行调用)