O

owncast

SHA-256
11.2k stars·影音下载·已提供 SHA-256 校验码,下载后可自行核对文件完整性

自托管直播服务器,让你完全掌控自己的直播内容和观众数据。

智能下载

下载 Download 版本

v0.2.5 · 18.3 MB

自己搭建直播服务器,完全掌控内容和观众。

核心功能

  • 自托管,数据完全由你控制
  • 兼容 OBS、Streamlabs 等常用推流软件(RTMP)
  • 内置实时聊天功能
  • 可定制的网页前端和界面主题
  • 管理员后台,轻松管理用户和内容

避坑指南

  • •需要公网 IP 或内网穿透(如 frp)才能被外部访问,建议配置反向代理(Nginx)以启用 HTTPS,直播画质和延迟取决于你的服务器带宽和编码设置,目前官方不支持 Windows 原生运行,需使用 WSL2 或 Docker,单用户设计,不适合大型多频道直播站

适用场景

  • 个人游戏或才艺直播,不想被平台广告和抽成干扰
  • 企业内部培训或活动直播,保障数据安全
  • 社区或俱乐部内部直播,精细化管控观众
  • 替代 Twitch/YouTube Live,追求内容主权和自由

详细介绍

Owncast 是一个开源、自托管、去中心化的直播视频流和聊天服务器。它让你可以像 Twitch 或 YouTube Live 那样运行自己的直播,但完全掌控你的内容、界面、审核和观众。你可以使用现有的推流软件(如 OBS、Streamlabs)通过 RTMP 协议推流。内置聊天系统、可定制的前端和管理员控制。适合个人或小社区,摆脱大平台的束缚。

常见问题与排障 (2)

故障排除
如何修复在 Owncast v0.2.5 中上传或重置 favicon 时出现的 'JSON.parse: unexpected character at line 1 column 1 of the JSON data' 错误以及反复弹出的管理员登录提示?

这是 Owncast v0.2.5 的一个已知内置 bug,会同时影响 favicon 上传和重置功能。后端对这些端点错误地返回了 401 Unauthorized 的非 JSON 响应,从而触发前端 JSON 解析错误,并导致即使输入了有效的登录信息,仍会反复提示输入管理员凭据。该修复已在 pull request #4879 中合并,请升级到高于 v0.2.5 的 Owncast 官方版本即可解决此问题。

来源 Issue #4877
故障排除
如何修复当 localStorage 为 null 或被阻止时 Owncast 查看器或嵌入显示 "Application error: a client-side exception" 的问题?

这影响 Owncast 0.3.0+ 搭配 next-export-i18n 至 2.4.3。它的 useSelectedLanguage() 读取 window.localStorage.getItem("next-export-i18n-lang") 时没有防护,即使配置了 languageDataStore: 'query' 也是如此。因此,Android WebView 中为 null 的 localStorage 或第三方 iframe 中的 SecurityError 会导致 React 树崩溃。

Android WebView 变通方案:
webView.settings.domStorageEnabled = true

Java:
webView.getSettings().setDomStorageEnabled(true);

Owncast 永久修复:在 React 渲染前安装一个内存中的 Storage shim,例如在 pages/_app.tsx 顶部,或在一个最先导入的模块中:
if (typeof window !== 'undefined') {
const createMemoryStorage = (): Storage => {
let data: Record<string, string> = {};
return {
getItem: key =>
Object.prototype.hasOwnProperty.call(data, key) ? data[key] : null,
setItem: (key, value) => {
data[key] = String(value);
},
removeItem: key => {
delete data[key];
},
clear: () => {
data = {};
},
key: index => Object.keys(data)[index] ?? null,
get length() {
return Object.keys(data).length;
},
};
};

try {
if (!window.localStorage) throw new Error('localStorage is unavailable');
window.localStorage.getItem('__owncast_storage_test__');
} catch {
Object.defineProperty(window, 'localStorage', {
configurable: true,
value: createMemoryStorage(),
});
}
}

然后查看器和 /embed/video 可正常渲染;在受限环境中,存储的值只是不会在重新加载后持久保留。或者,使用 patch-package 防护该库的 getItem 调用,但该补丁必须在依赖更新后重新应用。仅设置 languageDataStore: 'query' 并不能修复此崩溃。

来源 Issue #5204

标签

live-streamingself-hostedopen-sourcertmpchatprivacydecentralized

快速上手

1

下载安装包

点击上方按钮下载对应系统的安装包

2

安装软件

根据你的发行版安装对应的包(dpkg / rpm / AppImage)

3

步骤1:从官网或 GitHub 下载 Owncast 二进制文件,或拉取 Docker 镜像(docker run owncast/owncast)

4

步骤2:运行程序,默认监听 8080 端口,打开浏览器访问 http://你的IP:8080 进入界面

5

步骤3:在 OBS 等软件中设置推流服务器为 rtmp://你的IP/live,推流密钥任意(或通过后台配置)

安装指引
  1. 步骤1:从官网或 GitHub 下载 Owncast 二进制文件,或拉取 Docker 镜像(docker run owncast/owncast)
  2. 步骤2:运行程序,默认监听 8080 端口,打开浏览器访问 http://你的IP:8080 进入界面
  3. 步骤3:在 OBS 等软件中设置推流服务器为 rtmp://你的IP/live,推流密钥任意(或通过后台配置)
文件完整性

已提供 SHA-256 校验码,下载后可自行核对文件完整性

该校验码提取自 GitHub 官方 Release 页面

SHA256 校验码

bfef49e719ad9316554855df44a9ac21aec5f2a74de79eef15b6947cb383c2bb

该校验码提取自 GitHub Release 页面,下载后请自行核对文件完整性

本平台所有 SHA-256 校验码均提取自项目在 GitHub 官方 Release 页面发布的文件,未做任何修改。你可以通过 GitHub Releases 页面自行验证。

运维指引

卸载说明

删除下载的 Owncast 文件或停止 Docker 容器即可。如需清除数据,删除程序目录下的 data 文件夹。

无额外依赖

下载后即可直接使用,无需安装其他运行环境

项目信息
开源协议MIT
最后更新2026-10-15 07:12:01
GitHub 仓库官方网站

遇到问题?查看下方 FAQ

2 FAQs

相似推荐