Leiseya 发表于 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
https://imgsa.baidu.com/forum/w%3D580/sign=ac8f6d51b699a9013b355b3e2d940a58/05fe8cb1cb134954ba9c5921584e9258d0094a92.jpghttps://imgsa.baidu.com/forum/w%3D580/sign=9ed3859c3701213fcf334ed464e636f8/ec6442a98226cffc0dd40ef7b7014a90f703ea9e.jpg
https://imgsa.baidu.com/forum/w%3D580/sign=8c1818f7df58ccbf1bbcb53229d9bcd4/f2cd8b13632762d0c8c515faaeec08fa503dc699.jpg
https://imgsa.baidu.com/forum/w%3D580/sign=3d52925cc85c1038247ececa8211931c/8f2634fae6cd7b894a53a8c5012442a7d9330e5e.jpg






gvihoo 发表于 2020-3-30 17:27:20

感谢楼主分享,学习学习!

leonjlau 发表于 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里装不知道为什么直通不了

Leiseya 发表于 2021-5-13 21:47:00

玖之一 发表于 2021-5-9 18:01
pve直通显卡在虚拟机的docker里装不知道为什么直通不了

device配置

玖之一 发表于 2021-5-14 11:39:12

Leiseya 发表于 2021-5-13 21:47
device配置

没在折腾,直接装在虚拟的Debian里开机启动

cityhunterxyz 发表于 2021-11-16 01:59:37

学习

13960815752 发表于 2022-9-16 08:49:46

小水管玩不起4K

cityhunterxyz 发表于 2022-11-6 07:00:08

复习
页: [1]
查看完整版本: 【影音教程】视频硬件解码