Emby
Emby 是一个个人媒体服务器,它为许多平台提供了客户端。它用于组织个人家庭媒体,以及在其他设备上播放。社区支持大量的频道,甚至可以与 PVR 和 Tuner 卡一起使用,以远程提供电视流。
安装
安装 emby-server 软件包。
使用
通过浏览器访问 Emby,导航至 https://127.0.0.1:8096/
写入权限
Emby 在 用户和用户组 emby
下运行,使用 systemd 的 DynamicUser 功能。默认情况下,由于 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 界面中的转码设置,然后在“Enable hardware acceleration when available
”下选择“Advanced
”。将出现可用硬件编码器和解码器的列表。如果未检测到任何内容,请参阅以下特定于 GPU 的说明。
Intel
要为 Intel GPU 启用硬件加速视频转码/解码,请安装 intel-media-sdk 软件包。
使用以下命令确认是否检测到硬件加速:
$ ffdetect-emby qsvenc
输出应列出检测到的编码配置文件以及其他信息。
Nvidia
要为 Nvidia GPU 启用硬件加速视频转码/解码,需要专有的 Nvidia 驱动程序。安装 nvidia 或 nvidia-dkms 软件包。
使用以下命令确认是否检测到硬件加速:
$ 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