开源直播录制小工具,bililive-go 使用指南

向大家介绍一款我正在使用的开源工具——bililive-go,并分享两种核心部署方法及其优劣。(AI编写)

一、bililive-go 是什么?

bililive-go 是一个用 Go 语言编写的、支持多平台的直播录制工具。它的核心目标是提供一个轻量、高效、稳定且易于管理的自动化录制解决方案。

根据其官方文档,bililive-go 拥有以下几个核心特性:

  • 广泛的平台支持:它几乎涵盖了国内所有主流直播平台,如哔哩哔哩、抖音、虎牙、斗鱼等,甚至还支持 Acfun、猫耳FM 等多种站点。
  • Web管理界面:内置一个简洁的Web UI,用户可以通过浏览器轻松添加监控的直播间、查看录制状态、管理已录制的视频文件,以及在线修改配置。
  • Cookie支持:对于需要登录才能获取高清流或访问的直播间,它支持配置用户Cookie,以获取完整的观看体验。
  • 依赖项单一:整个程序只依赖于 ffmpeg 来进行视频流的处理和保存,无其他复杂的软件需求。
  • 强大的社区与监控:拥有活跃的社区支持,并且为高阶用户提供了与 Prometheus 和 Grafana 集成的可能性,以实现专业级的监控面板。

二、如何部署 bililive-go

部署 bililive-go 主要有两种方式:传统的原生程序安装,以及现代化的Docker容器化部署。

方法一:原生安装 (Windows/macOS/Linux)

这是一种直接在本机运行程序的方式,适合快速上手和测试。

  1. 下载主程序:访问项目的 GitHub Releases 页面,根据你的操作系统(Windows/macOS/Linux)下载最新版本的预编译程序包。
  2. 安装并配置核心依赖 ffmpeg:这是原生安装中最关键的一步。bililive-go 需要 ffmpeg 来处理视频流,你必须手动安装并让系统能找到它。
    • Windows:
      1. 前往 ffmpeg 官网 1下载页面,获取适用于 Windows 的编译包(通常是一个 .zip 文件)。
      2. 解压该文件到一个你不会轻易移动的固定位置,例如 D:\ProgramFiles\ffmpeg
      3. 接下来配置环境变量:右键点击“此电脑” -> “属性” -> “高级系统设置” -> “环境变量”。
      4. 在“系统变量”部分找到 Path 变量,点击“编辑”,然后“新建”,将 ffmpegbin 文件夹完整路径(如 D:\ProgramFiles\ffmpeg\bin)粘贴进去。
      5. 一路点击“确定”保存所有窗口。为验证是否成功,可以新开一个命令提示符(CMD)窗口,输入 ffmpeg -version,如果显示版本信息则表示配置成功。
    • macOS:
      1. 最推荐的方式是使用 Homebrew 2 包管理器。只需在终端中运行一行命令:brew install ffmpeg,即可自动完成安装和配置。
      2. 如果选择手动安装,可以从官网下载二进制文件,解压后将 ffmpeg 可执行文件移动到系统的 PATH 路径包含的目录中,例如 /usr/local/bin
    • Linux:
      1. 通常可以直接使用系统的包管理器安装。例如,在 Debian/Ubuntu 系统上执行 sudo apt update && sudo apt install ffmpeg,在 CentOS/RHEL 系统上执行 sudo yum install ffmpeg
  3. 运行:将下载的 bililive-go 程序解压,通过命令行启动主程序。首次启动可能会生成默认的配置文件,之后你可以根据需要进行修改。

优点:

  • 简单直接:对于有经验的用户,下载、配置、运行三步即可,无需额外软件。
  • 资源直接:程序直接运行在操作系统上,没有虚拟化或容器化的中间层。

缺点:

  • 手动管理依赖:你需要自己处理ffmpeg的安装和更新,这是一个不小的麻烦。
  • 环境侵入:程序和配置文件散落在系统的不同位置,不利于集中管理和清理。
  • 缺乏服务韧性:如果程序因意外崩溃,它不会自动重启。你需要手动重启,或者编写复杂的系统服务(Windows)或systemd单元(Linux)来实现开机自启和自动恢复。
  • 迁移困难:更换电脑时,你需要重复上述所有步骤,无法做到快速迁移。

方法二:Docker 容器化部署 (推荐)

这种方法将 bililive-go 及其所有依赖(包括ffmpeg)打包在一个隔离的容器中运行,是我个人更推崇的方式。

  1. 安装 Docker Desktop:确保你的电脑上已经安装并运行了 Docker Desktop。
  2. 创建项目文件夹:建立一个清晰的目录结构,例如 D:\DockerProjects\bililive-go,并在其中创建一个空的 data 子文件夹。
  3. 编写 docker-compose.yml 文件:在项目根目录下,创建 docker-compose.yml 文件,这是定义我们服务的“蓝图”。
    version: '3.8'
    services:
      bililive:
        image: chigusa/bililive-go:latest
        container_name: bililive
        restart: unless-stopped
        ports:
          - "7171:8080"
        volumes:
          - ./data:/srv/bililive
    
  4. 启动服务:在该目录下打开命令行,执行 docker-compose up -d。Docker会自动拉取镜像并根据你的配置启动一个完整的、包含所有依赖的 bililive-go 服务。

优点:

  • 环境纯净,内置依赖:镜像中已包含ffmpeg,你无需在主机上安装任何东西,除了Docker本身。所有数据都保存在你映射的 data 文件夹中,管理非常清晰。
  • 7x24小时无人值守restart: unless-stopped 策略让它成为了一个真正的服务。程序崩溃、电脑重启,它都会自动恢复运行,你再也不用担心错过录制。
  • 资源占用低:空闲状态下的容器资源占用极低,你不必为它的持续运行而担心性能损耗。
  • 一键搬家:更换电脑时,只需拷贝整个项目文件夹,在新电脑上运行 docker-compose up -d,一切便恢复如初。

缺点:

  • 初次学习成本:需要先安装和了解Docker的基本概念。
  • 资源开销:Docker Desktop 本身会占用一定的系统资源。
    msedge_Q0YIZYlNls.png
    msedge_UCkcLajL54.png
    msedge_FCmqaxBQvQ.png
    msedge_6YGAxCFSj0.png

三、总结:为何我最终选择了 Docker

对比两种方法,虽然原生安装看起来更“轻”,但从长期维护和稳定性的角度看,Docker 部署无疑是更优解。

选择 Docker,本质上是一种思想的转变:我们不再是仅仅“运行一个程序”,而是在“部署一个服务”bililive-go 这类工具的价值在于其持续、可靠的后台工作能力。Docker的 restart 策略完美满足了这一需求,而这是原生部署方式需要花费很大力气才能实现的。

此外,Docker带来的环境隔离和便捷迁移特性,解决了传统软件管理中的最大痛点。我不再需要为依赖、配置或系统重装而烦恼。所有的服务都被整齐地封装在一个个文件夹中,成为了可以轻松掌控和迁移的“数字资产”。

因此,如果你也想拥有一个稳定可靠、7x24小时为你工作的直播录制助手,我强烈推荐你花一点时间了解Docker,并使用 docker-compose 来部署 bililive-go,这会是一笔非常值得的“前期投资”。