网站首页 > 技术文章 正文
威联通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事务,太坑了!
- 05-11CSS:前端必会的flex布局,我把布局代码全部展示出来了
- 05-11Moti:React Native 动画库的新标杆
- 05-11前端开发避坑指南:每天都能用的 CSS3/Less/Sass 实战技巧
- 05-11HarmonyOS:ArkTS 多态样式自学指南
- 05-115 分钟快速上手图形验证码,防止接口被恶意刷量!
- 05-11网页五指棋游戏
- 05-11告别长文焦虑!AI帮你“秒划重点”,文章秒变知识卡片
- 05-11鸿蒙NEXT小游戏开发:数字华容道
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- js数组插入 (83)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- outofmemoryerror是什么意思 (64)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)