Emby
Emby 是一个个人媒体服务器,它拥有许多平台的客户端。它用于组织个人家庭媒体,以及在其他设备上播放。社区支持大量的频道,甚至可以与 PVR 和调谐卡一起使用,以便远程提供电视流。
安装
安装 emby-server 包。
用法
通过浏览器访问 Emby,导航至 https://:8096/
写入权限
Emby 使用 systemd 的 DynamicUser 功能,以 emby 用户和用户组运行。默认情况下,由于 systemd 的文件系统抽象,Emby 对您的媒体文件最多只有读取权限。
您可能希望授予 Emby 写入权限,并启用媒体删除、本地元数据保存、字幕下载等功能。
您需要为您的媒体文件创建一个专用组,或使用您已属于的一个组,并像这样授予它访问您文件夹的权限
# create the media group
groupadd media
# optionally add your_user to the media group
usermod -aG media your_user
# give ownership of your media files to the media group
chgrp -R media /mnt/media_files
# make the files writeable to the media group
find /mnt/media_files -type f -exec chmod 664 {} +
# make the directories writeable to the media group
find /mnt/media_files -type d -exec chmod 775 {} +
# add the sticky group bit so that newly created directories belong to the media group
find /mnt/media_files -type d -exec chmod g+s {} +
然后扩展单元
/etc/systemd/system/emby-server.service.d/write-permissions.conf
[Service] SupplementaryGroups=media ReadWritePaths=/mnt/media_files UMask=0002
这将把 emby 用户添加到 media 组,并通过 systemd 启用对 /mnt/media_files 目录的写入权限。对于您可能拥有的任何其他媒体文件夹,请重复此过程。
硬件加速
Emby 支持使用 GPU 进行硬件加速转码。这极大地降低了转码时的 CPU 使用率,对于某些系统来说,如果 CPU 本身不够强大,这是唯一的选择。
要检查硬件加速是否可用,请在 Emby Web 界面中导航到转码设置,并在 启用硬件加速(如果可用) 下选择 高级。将出现一个可用硬件编码器和解码器的列表。如果没有检测到任何内容,请参阅以下特定于 GPU 的说明。
Intel
要为 Intel GPU 启用硬件加速视频转码/解码,请安装 intel-media-sdk 包。
使用以下命令确认检测到硬件加速
$ ffdetect-emby qsvenc
输出应列出检测到的编码配置文件以及其他信息。
NVIDIA
要为 NVIDIA GPU 启用硬件加速视频转码/解码,需要 NVIDIA 驱动程序。
使用以下命令确认检测到硬件加速
$ ffdetect-emby nvenc
输出应列出检测到的编码配置文件以及其他信息。
Nginx 配置示例
# Based on example from https://emby.media/community/index.php?/topic/47508-how-to-nginx-reverse-proxy/ server { listen 443 ssl; listen [::]:443 ssl; server_name emby.yourdomain.com; ssl_certificate /etc/letsencrypt/live/emby.yourdomain.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/emby.yourdomain.com/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; add_header Strict-Transport-Security "max-age=31536000" always; ssl_trusted_certificate /etc/letsencrypt/live/emby.yourdomain.com/chain.pem; ssl_stapling on; ssl_stapling_verify on; # Security / XSS Mitigation Headers add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; location = / { return 302 https://$host/web/; } location / { # Proxy main emby traffic proxy_pass http://127.0.0.1:8096; proxy_hide_header X-Powered-By; proxy_set_header Range $http_range; proxy_set_header If-Range $http_if_range; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; # Disable buffering when the nginx proxy gets very resource heavy upon streaming proxy_buffering off; # Next three lines allow websockets proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
故障排除
无此文件或目录
确保 ReadWritePaths 引用的目录存在。如果不存在,emby-server.service 将无法启动并报错。例如,如果 /mnt/media_files 不存在,systemd 将尝试将其用作挂载点
emby-server.service: Failed to set up mount namespacing: /run/systemd/unit-root/mnt/media_files: No such file or directory emby-server.service: Failed at step NAMESPACE spawning /usr/bin/emby-server: No such file or directory