当前位置: 首页 > news >正文

支持同步观看的媒体服务器GhostHub

在这里插入图片描述

简介

什么是 GhostHub ?

GhostHub 是一个基于滑动界面的媒体服务器,旨在实现实时同步、聊天和隧道分享。它允许用户快速共享和浏览媒体内容,无需复杂的配置或帐户。

主要特点

  • 零配置: 即开即用,无需安装或创建帐户。
  • 滑动浏览: 提供类似 TikTok 的滑动导航体验,适合浏览图像和视频。
  • 实时同步: 支持多用户实时同步观看媒体,确保所有人都能同时访问相同内容。
  • 实时聊天: 内置的匿名聊天功能,便于用户之间的交流。
  • 会话密码保护: 用户可以设置密码以保护会话。
  • 跨平台支持: 可作为 Python 脚本、Windows 可执行文件或 Docker 容器运行。
  • 可自定义文件夹: 用户可以添加自定义文件夹以便于媒体管理。
  • 公共分享: 支持通过 Cloudflare 隧道进行公共分享。

应用场景

  • 临时共享: 适合快速分享媒体文件给朋友或小组。
  • 个人媒体库: 用户可以将其个人媒体库作为服务器使用。
  • 轻量级部署: 适合轻量级的临时部署场景,无需复杂的服务配置。
  • 协作观看: 适合朋友或团队一起观看媒体内容,实现同步体验。

GhostHub 是一个轻便、快速且易于使用的媒体共享解决方案,特别适合个人和小型团队使用。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 ghosthub ,选择第一个 dhux/ghosthub,只有一个 latest 版本,双击直接下载。

docker 文件夹中,创建一个新文件夹 ghosthub,并在其中建两个子文件夹 instancemedia

文件夹装载路径说明
docker/ghosthub/instance/instance存放设置文件等
docker/ghosthub/media/media存放媒体文件等

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
52115000

环境

可变
PORT服务器运行的端口,缺省为 5000
FLASK_CONFIGFlask 配置(开发/生产环境)
USE_CLOUDFLARE_TUNNEL是否启用 Cloudflare 隧道
DOCKER_ENV是否为 docker 环境

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 ghosthub 和 子目录
mkdir -p /volume1/docker/ghosthub/{instance,media}# 进入 ghosthub 目录
cd /volume1/docker/ghosthub# 运行容器
docker run -d \--restart unless-stopped \--name ghosthub\-p 5211:5000 \-v $(pwd)/instance:/app/instance \-v $(pwd)/media:/media \-e PORT=5000 \-e FLASK_CONFIG=production \-e DOCKER_ENV=true \dhux/ghosthub:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

services:ghosthub:image: dhux/ghosthub:latestcontainer_name: ghosthubrestart: unless-stoppedports:- "5211:5000"volumes:- ./instance:/app/instance- ./media:/mediaenvironment:- PORT=5000- FLASK_CONFIG=production- DOCKER_ENV=true

然后执行下面的命令

# 新建文件夹 ghosthub 和 子目录
mkdir -p /volume1/docker/ghosthub/{instance,media}# 进入 ghosthub 目录
cd /volume1/docker/ghosthub# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:5211 就能看到主界面

正常流程是先点击 Add Category 增加分类(Add New Category

但实际上,在使用 Docker 运行 GhostHub 时,会自动为容器的 /media 的所有子目录创建媒体分类,例如:老苏在 media 中建了两个子目录,分别是 videospictures

但文件名好像用中文名会导致不能播放

有兴趣可以深入研究

系统支持的媒体文件格式如下

  • 图片格式: jpg, jpeg, png, gif, bmp, tiff, tif, svg, webp, ico, heic, heif, raw, cr2, nef, arw, dng, orf, sr2, psd, xcf

  • 视频格式: mp4, webm, mov, avi, mkv, wmv, flv, m4v, 3gp, mpg, mpeg, ts, m2ts, vob, ogv, mts, m2v, divx, asf, rm, rmvb, mp2, mpv, f4v, swf

所以我们只要把文件放入对应的子目录,然后刷新网页就可以了

图片效果

视频效果

同步模式下,大家会看到同一个文件,但视频进度并不会同步

官方的动图演示了在手机上的使用

参考文档

BleedingXiko/GhostHub: Swipe-based media server w/ real-time sync, chat, and tunnel sharing
地址:https://github.com/BleedingXiko/GhostHub

GhostHub: A mobile-first media server you can self-host and share in seconds : r/selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1ki20vq/ghosthub_a_mobilefirst_media_server_you_can/

http://www.xdnf.cn/news/495577.html

相关文章:

  • 【Linux笔记】——线程互斥与互斥锁的封装
  • 使用 Python 连接 Oracle 23ai 数据库完整指南
  • 小黑独自咖啡厅享受思考心流:82. 删除排序链表中的重复元素 II
  • DAY28-类的定义和方法
  • 计算机视觉与深度学习 | LSTM应用于数据插值
  • 下集:一条打包到底的静态部署之路
  • JMeter 教程:编写 POST 请求脚本访问百度
  • SQL Server 与 Oracle 常用函数对照表
  • 二进制与十进制互转的方法
  • 使用Maven部署WebLogic应用
  • 信贷风控笔记6——风控常用指标(面试准备14)
  • MATLAB学习笔记(六):MATLAB数学建模
  • Uniapp、Flutter 和 React Native 全面对比
  • 分糖果--思维+while判断
  • 基于QT和FFmpeg实现自己的视频播放器FFMediaPlayer(一)——项目总览
  • 芯片生态链深度解析(二):基础设备篇——人类精密制造的“巅峰对决”
  • StarRocks MCP Server 开源发布:为 AI 应用提供强大分析中枢
  • gcc 源码目录文件夹功能简介
  • 从辅助到协作:GitHub Copilot的进化之路
  • 副业小程序YUERGS,从开发到变现
  • String的一些固定程序函数
  • 嵌入式学习笔记 - STM32 使用一个外部触发同时启动两个定时器
  • 谷歌浏览器(Google Chrome)136.0.7103.93便携增强版|Win中文|安装教程
  • 2.1.3
  • 【Linux网络】NAT和代理服务
  • AtCoder AT_abc406_c [ABC406C] ~
  • MySQL相关
  • 数据结构【AVL树】
  • vue2 切换主题色以及单页面好使方法
  • 自己手写tomcat项目