网站首页 > 技术文章 正文
威联通Docker安装Jellyfin开启核显硬解4K,转码播放HEVC Main 10 CPU占用在30%左右。
部署 Jellyfin
Jellyfin 的部署直接在PuTTY上进行,命令行如下:
1,先执行赋权:
docker run --name jellyfin -d \
--volume /share/Container/Jellyfin/config:/config \
--volume /share/Container/Jellyfin/cache:/cache \
--net=host \
--restart=always \
--device /dev/dri/renderD128:/dev/dri/renderD128 \
nyanmisaka/jellyfin
使用 Docker 管理工具 Portainer 进行设置,开启硬解
操作步骤来:将页面拉到最下方,点击”Volumes“→”“map additional volume”→“添加 cache、config、media” 三个文件夹,点击 “Bind” 进行物理路径映射。我的电影是两个文件夹,所以是media、media2,电视剧和电影在一个硬盘,但不在一个文件夹下,所以是media3
/cache路径/share/Container/Jellyfin/cache,/config路径/share/Container/Jellyfin/config,/media路径/share/Movie
进入到 “Runtime & Resources” 标签→点击 “add device” 添加设备→两边都填 “/dev/dri/renderD128”,这步很重要,之前装了很多次都没有开启硬解感觉就是这个原因。
进入到 “Restart policy” 选择重启策略,一般都选用 “Always”,设备重启后容器跟着启动,如果选择 Never,设备重启容器不会自动启动。
在浏览器处访问http://你的NAS的IP:8096即可进入Jellyfin后台,默认是8096端口。
然后设置首选语言,设置用户名和密码等等,这些就不再多说了,非常简单,按界面提示即可。
添加媒体库,内容类型先选电影,显示名称任意,然后点文件夹旁的+号,下一步就是选择存放电影的具体文件夹了。
然后设置语言之类的,注意,开启端口映射记得打勾就可以,然后登录,输入你前面设置的用户名和密码登录即可,这些步骤就不再多说啦。
登录成功后,如下图所示,会显示你前面设置的媒体库这些。
硬件编码选项,如果是Intel的处理器就选Intel QuickSync QSV,选Video Acceleration API(VAAPI)解码速度不如Intel QuickSync QSV,两者硬件编码ffmpeg的cpu占用率在30%左右,不打开在60%左右,最后,往下拉,其它保持默认,点击保存。
保存后打开一个视频转码播放,测试是否开启核显硬件转码,返回主页,随意点开一部电影播放,选择右下角的齿轮,选择一个最低码率的,点击播放,可以触发它的硬件转码。
播放视频成功几秒后,返回Jellyfin控制台,往下拉,找到『日志选项』,点击第二行的日志打开,第一行的是总日志,下面的是最近打开视频的日志。
然后浏览器中Ctrl+F键打开搜索,搜索HW,点下一个之类的往下找,如果是Video Acceleration API(VAAPI)解码,解码显示renderD128之类的提示,并且还有你刚播放的电影名字之类的,说明调用集显转码成功了。Intel QuickSync QSV不显示va:/dev/dri/renderD128,显示的是vaapi=va:,driver=iHD,kernel_driver=i915。
还有个方法是登陆PuTTY查询
此时你在Jellyfin中打开一部电影并选择最低码率播放让它触发转码状态,查看排在前面的有没有jellyfin的进程,并且进行中显示hw,renderD128之类的文字的话,说明调用集显转码成功,主要就是这两种方式进行到底有没集显转码成功。
后台ffmpeg占用CPU在30%左右
- 上一篇: 云原生时代开发提效神器-Nocalhost
- 下一篇: 聊聊spring事务失效的12种场景,太坑了
猜你喜欢
- 2025-01-14 聊聊spring事务失效的12种场景,太坑了
- 2025-01-14 云原生时代开发提效神器-Nocalhost
- 2025-01-14 聊聊Spring事务失效的12种场景,太坑人了
- 2025-01-14 使用OpenVPN搭建Linux下的VPN服务
- 2025-01-14 Python常用小知识-第二弹
- 2025-01-14 「性能优化」 JVM调优-参数篇
- 2025-01-14 Spring事务失效的各种场景
- 2025-01-14 MySQL 归档数据的方法你知道了吗
- 2025-01-14 Springboot 启动流程及各类事件生命周期那点事
- 2025-01-14 @Transactional事务,太坑了!
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)