STREAMA - 可以同步觀看影片的媒體伺服器
Streama是完全免費且開源的,由於是受到Neflix啟發的專案,在首頁以及播放器上都能看到類似的設計語彙
他有個主打功能是可以同步觀看影片,這在疫情時期是許多平台力推的功能,像是iPhone也在Facetime中加入這些功能
只可惜很多串流平台的App並不兼容,我們可以透過自行架設影音串流伺服器來解決這個缺憾
Install
一樣先介紹最簡單且不會污染環境的安裝方式
Docker Compose
https://github.com/streamaserver/streama/blob/master/docker/docker-compose.yml
由於會用到多個container像是mysql db以及nginx作為reverse proxy,所以還是得依賴docker compose
version: "3"
services:
mysql:
image: mysql:5.7
restart: always
container_name: mysql
hostname: mysql
networks:
- net-backend
expose:
- 3306
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: streama_root_password
MYSQL_USER: streama
MYSQL_DATABASE: streama
MYSQL_PASSWORD: streama_password
streama:
image: streama
build: .
restart: always
container_name: streama
hostname: streama
depends_on:
- mysql
networks:
- net-backend
expose:
- 8080
volumes:
- $HOME/movies:/data/streama # Change to your video folder
- app_data:/app/streama
environment:
ACTIVE_PROFILE: mysql
MYSQL_HOST: mysql
MYSQL_PORT: 3306
MYSQL_DB: streama
MYSQL_USER: streama
MYSQL_PASSWORD: streama_password
networks:
net-backend:
volumes:
db_data:
app_data:
reverse-proxy的部分可以照需求選擇要不要啟用
docker-compose up -d
連線方式是 http://localhost:8080
預設登入帳密會是admin
實際上最好使用能吃到GPU資源的環境,不然單純靠CPU解碼會吃很多資源 (尤其是沒內顯的)
用docker的話則要裝nvidia-docker才能吃到GPU資源
在yaml檔裡面可以加上runtime: nvidia
,確保環境用的是nvidia-docker
(Windows的docker desktop預設會用nvidia runtime,就不用在yaml檔內設定)
Features
Admin Settings
第一次登入後要先去設定local file path,這樣才能讀到已經在container內的電影
在admin要面下要設定2個選項,Upload Directory
, Local Video Files
值都填上/data/streama
就好,再來就可以去content頁面新增影片
字幕跟影片資訊會分別去兩個網站抓,要自備這兩個網站的API token,用的API和plex基本上一樣
Add Movies/ TV Shows
如果選擇要加的影片抓不到相關資訊,也可以透過手動輸入並拖拉字幕和影片檔(或是兩者所在的資料夾)的方式來新增
如果當初沒有把影片丟進container內,也可以改用上傳的方式
Dashboard
和各大串流平台的主界面一樣會顯示資料庫內有的影片內容以及觀看進度
Manage Users
可以創新的使用者並決定其權限
Stream Session
在影片時間軸的右下方有個按鈕可以去做開啟
開啟這個功能後只要兩個人用的session_id是一致的,不論哪一方快轉或是暫停,全部人都可以同時看到
在plex這個功能叫做watch video together (用plex的好處是他也有針對手機等裝置出app)