查看: 12315|回复: 9

[教程] 【影音教程】视频硬件解码

[复制链接]
发表于 2020-3-30 14:36:39 | 显示全部楼层 |阅读模式
本帖最后由 Leiseya 于 2020-3-30 20:15 编辑

对于进行all in one的机器在观看视频时,如果不能硬解就可能会导致cpu占用100%,影响其他功能的使用,这时就应该使用硬解降低cpu占用。
目前linux平台,jellyfin/emby/plex硬件转码设置目前转码技术有QSV,NVENC,AMF,VAAPI 四种
intel显卡:/dev/dri/renderD128 #查看转码支持
目前论坛docker安装jellyfin的教程http://www.u-share.cn/thread-192764-1-1.html

nvidia显卡:lspci | grep VGA #查看转码支持 (支持docker)
更新主机,这样就不会有过时的软件引起问题的机会。
apt-get update && apt-get dist-upgrade -y
安装curl,它将用于下载所需的文件。
apt-get install curl
编辑sources.list在/etc/apt/sources.list和ADD non-free contrib根据需要每个源。
deb http://ftp.ch.debian.org/debian/ stretch main
上面的行应进行修改以匹配下面的行作为示例。
deb http://ftp.ch.debian.org/debian/ stretch main non-free contrib
下载并添加Nvidia docker容器的源。
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key adddistribution=$(. /etc/os-release;echo $ID$VERSION_ID)curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
再次更新软件包列表,以从新存储库下载可用的最新软件。
apt-get update
安装linux-headers并运行以下命令。
apt-get install linux-headers-$(uname -r | sed 's/[^-]*-[^-]*-//')
或者,如果您出于兼容性考虑,则运行此命令。
apt-get install -t stretch-backports linux-headers-$(uname -r | sed 's/[^-]*-[^-]*-//')
从存储库安装Nvidia docker2。
apt-get install nvidia-docker2
当提示您选择保留或安装维护程序包文件类型y以安装维护程序版本时。
安装后,您可能需要将nvidia添加为默认运行时:/etc/docker/daemon.json像这样编辑:
{    "default-runtime": "nvidia",    "runtimes": {        "nvidia": {            "path": "nvidia-container-runtime",            "runtimeArgs": []        }    }}
重新启动当前正在运行的所有docker服务。
sudo pkill -SIGHUP docker
安装nvidia驱动程序和依赖项。
apt-get install -t stretch-backports nvidia-driver libnvcuvid1 libnvidia-encode1 libcuda1 nvidia-smi
重新启动主机以应用所有更改。
reboot now
验证是否已通过此驱动程序测试正确设置了驱动程序和泊坞窗。
nvidia-smidocker run --gpus 0 nvidia/cuda:9.0-base nvidia-smi
验证对主机和泊坞窗所需资源的访问权限。
ldconfig -p | grep cuvidldconfig -p | grep libnvidia-encode.so.1
启动您的容器,添加这些环境参数。
-e "NVIDIA_DRIVER_CAPABILITIES=all" \-e NVIDIA_VISIBLE_DEVICES=all \--runtime=nvidia \--gpus all \
完整的运行命令如下所示。
docker run -d \ --name=jellyfin \ -e NVIDIA_DRIVER_CAPABILITIES=all \ -e NVIDIA_VISIBLE_DEVICES=all \ --gpus all \ --runtime=nvidia \ -p 8096:8096 \ -p 8920:8920 \ -v /config:/config \ -v /media:/media \ -v /cache:/cache \ --restart unless-stopped \ jellyfin/jellyfin
使用以下选项运行时,有一些特殊步骤。
--user 1000:1000
您可能需要将此用户添加到视频组。
usermod -aG video user
启动容器后,您可以再次验证对主机资源的访问。
docker exec -it jellyfin ldconfig -p | grep cuviddocker exec -it jellyfin ldconfig -p | grep libnvidia-encode.so.1
现在进入Jellyfin播放设置,启用Nvidia NVENC并根据您的GPU支持尝试播放需要转码的任何文件来选择目标编解码器。更改比特率是尝试此操作的好方法。
检查转码日志,以确保一切正常。
Stream #0:0 -> #0:0 (h264 (h264_cuvid) -> h264 (h264_nvenc))Stream #0:2 -> #0:1 (ac3 (native) -> aac (native))

amd显卡:不能通过docker进行硬件加速,能通过https://github.com/GPUOpen-LibrariesAndSDKs/AMF进行安装。
就个人观点来说,建议通过docker来实现各种功能,其比较简单且易于备份和转移。

目前市面上所有显卡H265/HEVC和VP9 编码4K和8K视频硬解支持列表(摘录自贴吧https://tieba.baidu.com/p/6119359964?red_tag=2774894598
目前大热的j3455 是apollo lake









回复

使用道具 举报

发表于 2020-3-30 17:27:20 | 显示全部楼层
感谢楼主分享,学习学习!
回复 支持 反对

使用道具 举报

发表于 2020-5-9 14:41:21 | 显示全部楼层
请问大神用的哪个all in one,pve吗?我pve配置虚拟显卡可以按照这个intel装jellyfin吗
回复 支持 反对

使用道具 举报

发表于 2021-5-6 22:25:50 | 显示全部楼层
感谢无私奉献
回复 支持 反对

使用道具 举报

发表于 2021-5-9 18:01:52 | 显示全部楼层
pve直通显卡在虚拟机的docker里装不知道为什么直通不了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-13 21:47:00 | 显示全部楼层
玖之一 发表于 2021-5-9 18:01
pve直通显卡在虚拟机的docker里装不知道为什么直通不了

device配置

点评

没在折腾,直接装在虚拟的Debian里开机启动  详情 回复 发表于 2021-5-14 11:39
回复 支持 反对

使用道具 举报

发表于 2021-5-14 11:39:12 | 显示全部楼层

没在折腾,直接装在虚拟的Debian里开机启动
回复 支持 反对

使用道具 举报

发表于 2021-11-16 01:59:37 | 显示全部楼层
学习
回复 支持 反对

使用道具 举报

发表于 2022-9-16 08:49:46 | 显示全部楼层
小水管玩不起4K
回复 支持 反对

使用道具 举报

发表于 2022-11-6 07:00:08 | 显示全部楼层
复习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|万由科技 ( 浙ICP备10004788号-13 )

GMT+8, 2024-4-25 18:23 , Processed in 0.069464 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表