Hetzner Online dedicated server 安装emby-server


进来由于emby服务器播放谷歌gdrive比较火,正好赶上科学家,z大各位大神,先行各种踏坑,我也记录一下个人使用hetzner的dedicated server搭建emby的过程。

1, 搭建环境的的选择

我搭建的目的是在墙内播放谷歌gdrive的片源,cpu能硬解4k,机器选择了hetzner的1275v5,拍卖获得,核显是p530,基本上能硬解播放1080p和4k,hevc格式,cpu占用单个用户播放,cpu占用不会超过100%,这样,减轻了服务端解码的压力。只要客户端建立合适的fd线路,基本流畅播放。

操作系统我选择的debian 10.3,hetzner提供的,64g内存,480g*2ssd硬盘,性能有点过剩。但是没有太合适的了。

2,安装emby

访问 https://emby.media/linux-server.html

wget https://github.com/MediaBrowser/Emby.Releases/releases/download/4.5.2.0/emby-server-deb_4.5.2.0_amd64.deb
dpkg -i emby-server-deb_4.5.2.0_amd64.deb

Open a web browser to http://ip:8096 设置管理员账户

3,安装rclone

curl https://rclone.org/install.sh | sudo bash

安装最新版本rclone,配置挂载团队盘,在此有两种选择: a,将谷歌团队盘挂载本地目录上,用emby自行削刮 b,采用科学家大佬提供的削刮好的数据包(你需要有科学家团队盘的权限),下载解压使用现成的削刮元数据,可以节省大量时间,削刮好的元数据大约60-100g左右。 需要注意的是,采用削刮好的数据,你的团队盘的命名和挂载目录的命名,应该和科学家的命名一样,以减少错误。 科学家的挂载 教程

举例:

mkdir -p /mnt/EmbyMedia/MOVIE #为EmbyMedia_VIP1_Movie盘创建挂载点
rclone mount EmbyMedia_VIP_Movie_play: /mnt/EmbyMedia/MOVIE --umask 0000 --default-permissions --allow-non-empty --allow-other --buffer-size 32M --dir-cache-time 12h --vfs-read-chunk-size 64M --vfs-read-chunk-size-limit 1G & #挂载EmbyMedia_VIP1_Movie盘

但是,rclone mount 参数可以适当改变

–allow-other –uid 1000 –gid 1000 –umask 022 –default-permissions –allow-non-empty –allow-other –dir-cache-time 12h –poll-interval 5m –buffer-size 128M –vfs-read-chunk-size 32M –vfs-read-chunk-size-limit 1G

–vfs-read-chunk-size这个减少一点削刮会快一点

挂载完毕后

df -h

查看磁盘容量,看是否挂载成功

4,削刮元数据

如果是使用科学家大佬的团队盘,继续按照科学家教程走一遍即可,如果想自己削刮,需要注意的是:

不论电影还是电视连续剧的削刮,都需要使用themoviedb数据库,因为大家在一起维护数据库,修改错误。

hash值匹配,选择其他的选项,选择越多,数据越全,但是削刮速度也变慢,每个人根据情况选择。因为,电影电视总共10多万部。削刮是非常缓慢的过程。

科学家大佬的削刮好的数据包,还发现另外一个问题,就是削刮选项里有往源文件目录写入字幕,nfo等文件,但我们的权限常常是viewer,而非manager,所以,还应该把写入的选项去掉为好,读取为主!

5,转码 transcoding

转码是emby服务器,premiere提供的选项,如果是的话,你需要让核显运行才能显示解码器。如果,你的转码选项里没有出现

Preferred Hardware Decoders

Preferred Hardware Encoders

说明你的核显没有正常工作。对于核显硬解的实现,我个人参照了科学家大佬的让 emby 支持硬解和网页播放,这篇文章。叙述的比较详细,因为我的操作系统不是Ubuntu,Debian系统略有不同,但是走了下来,发现debian没能实现添加Oibaf PPA,ffmpeg最后编译的不是很完全。

emby的transcode能够工作。部分hevc出现了软解,或者不稳定,被我放弃了,所以改成docker模式,但是,元数据削刮的部分还可以用,弃之可惜,让docker直接使用现成的削刮结果。

6,docker emby实现

apt install docker-compose
vi docker.yml
version: "2.1"
services:
  emby:
    image: linuxserver/emby
    container_name: emby
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
      - UMASK_SET=<022> #optional
    volumes:
      - /var/lib/emby:/config
      - /mnt/EmbyMedia:/mnt/EmbyMedia 
      - /home:/transcode #optional
      - /opt/vc/lib:/opt/vc/lib #optional
    ports:
      - 8096:8096
      - 8920:8920 #optional
    devices:
      - /dev/dri:/dev/dri #optional
    
    restart: unless-stopped

编辑好dockerfile文件。

 sudo chown -R 1000:1000 /var/lib/emby

把元数据目录权限交给docker。

docker-compose -f docker.yml up -d

创建docker-emby容器,同时,直通显卡。由于docker容器内,各种库构建的全面,省却了,各种库安装调试的烦恼。

访问:http://ip:8096, 测试emby的运行状态,一般这个时候,转码的各个解码器,就可以正常运行了。

7,开通https反向代理

sudo apt install caddy

编辑caddyfile

vi /etc/caddy/Caddyfile

反代8096端口。自动https

# The Caddyfile is an easy way to configure your Caddy web server.
#
# Unless the file starts with a global options block, the first
# uncommented line is always the address of your site.
#
# To use your own domain name (with automatic HTTPS), first make
# sure your domain's A/AAAA DNS records are properly pointed to
# this machine's public IP, then replace the line below with your
# domain name.
your.domain

# Set this path to your site's directory.
#root * /usr/share/caddy

# Enable the static file server.
file_server
reverse_proxy 127.0.0.1:8096

# Another common task is to set up a reverse proxy:
# reverse_proxy localhost:8080

# Or serve a PHP site through php-fpm:
# php_fastcgi localhost:9000

# Refer to the Caddy docs for more information:
# https://caddyserver.com/docs/caddyfile

这样,你的https://your.ip就完成了。只要国内有合适的梯子,应该能够流畅观看。

如果你有gia结点的话,直接把caddy反代搭建在gia节点上,域名指向gia结点ip,国内不用梯子,可以直接观看。

Related