Jellyfin 特供版现已支持 Dolby Vision 转码映射到 SDR

2022-06-02 17:44:39 27点赞 82收藏 87评论

前言

杜比视界 Dolby Vision 稍有了解的朋友可能听说过 Profile 5 正是造成影片在 SDR 屏幕上播放时发绿,发紫的罪魁祸首。

Jellyfin 特供版现已支持 Dolby Vision 转码映射到 SDR

由于 Profile 5 规格的杜比视界影片常见于 WEB-DL 版本的影片,比如 Netflix, Disney 等,它们并不包含向前兼容 HDR10 的基础层(BL),加之 Profile 5 使用了 ITP(ICtCp)色彩编码,而非常规播放器们所期望的 YUV(YCbCr),因此影片才会被以错误的颜色显示,造成发绿发紫的现象发生。

新增支持

为了解决这个问题,我们需要利用杜比视界中包含的动态元数据,即 RPU,来逐帧地将色彩重塑到正确的范围内。由于 FEL 过于专有,暂时无法解析,我们目前仅支持利用BL+RPU中的数据,好在这对于 SDR 正确显示已经绰绰有余。

即刻起,你可以通过 Jellyfin 特供版中的 OpenCL/CUDA 色调映射功能,将杜比世界 Profile 5 和 8 的视频即时转换为 SDR 来供不支持的客户端观看。这也将作为 Jellyfin 10.8.0 最终版的一项新功能。

支持的编码和容器

  • 杜比视界 Profile 5 和 8,HEVC Main 10 编码

  • HEVC 编码标签需为以下任一:dvh1, dvhe, dovi

  • 容器需为以下任一:mp4, ts, mkv

支持的硬件加速类型

  • NVENC (需勾选“增强的NVDEC解码器”)

  • QSV(需勾选“系统原生的DXVA或VAAPI解码器”)

  • VAAPI

  • AMF

重要提示

  • Intel 专有的 VPP 滤镜目前不支持杜比视界映射。

  • 映射杜比视界比常规的 HDR10 更消耗算力,对于 Intel 核显,建议切换映射算法至 Mobius/Reinhard,且配置开启“低电压转码”,以提升速度。

如何下载

Docker 和 Windows:docker pull nyanmisaka/jellyfin:latest

测试视频

以下是一些杜比官方的测试片以便大家测试

https://developer.dolby.com/tool ... lby-vision-streams/
https://www.demolandia.net/4k-video-test/dolby-vision/page-1.html

结语

如果你已经成功配置硬件加速,且视频规格和参数在上述范围内,但仍然遇到转码杜比视界时发绿发紫的问题,欢迎提供 ffmpeg 日志以及对应视频的链接以便持续改进。最后,感谢你的支持和使用。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
87评论

  • 精彩
  • 最新
  • 大佬提醒下,群晖 docker安装如果是N卡硬解要加显卡映射 --runtime=nvidia,我的P620能硬解,不加就解不了,播放兼容错误。另播放D-V还是发绿。部分加密的无法播放等问题。

    校验提示文案

    提交
  • 大佬你好,群晖docker安装,更新了最新的特供版后,不能硬解了。网上查询都说是ffmpeg解码的问题。按照网上的教程下载ffmpeg放到docker文件夹,映射文件夹,修改ffmpeg存放位置后能成功播放,但是cpu占用率暴增,怀疑软解的。能不能辛苦大佬解答疑难。

    校验提示文案

    提交
  • 大佬,另一个论坛注册不了,特此在这里留言希望能得到你的帮助。
    环境:飞牛最新系统,jellyfin中国版 最新镜像,cpu j4105(uhd600),dockercompose安装开启了特权,转码设置qsv,解码格式都勾上,勾上了hevc硬件编码,没有勾低电压,启用色彩映射
    问题:hevc hdr 杜比视界 直接播放没有问题,转码就黑屏不动。
    [ERR] [21] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 251

    [23:59:22] [ERR] [33] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL GET /videos/e0667674-7bde-e25e-a511-00e4bb4e782b/hls1/main/49.mp4.

    MediaBrowser.Common.FfmpegException: FFmpeg exited with code 251

    校验提示文案

    提交
  • 去看看 下载不了打不开
    N卡WIN驱动 消除退制下载不了打不开
    我用的1080 放原盘 4K 卡的不行,网页放

    校验提示文案

    提交
    提供以下ffmpeg日志。

    校验提示文案

    提交
    收起所有回复
  • 官方stable的1.8.0更新了,之前我是从官方10.7.7的VAAPI换过来改用这个QSV的,这次有必要换回官方10.8.0嘛?这个项目后续有何规划?

    校验提示文案

    提交
    没啥必要,官方10.8实测转码效率没nyanmisaka/jellyfin高,而且媒体库图片会出现“口口”文字

    校验提示文案

    提交
    继续用nyanmisaka这个就行了,有什么bug我也会及时修,官方的暂时还没有打算添加中文字体,因为字体文件特别大。

    校验提示文案

    提交
    收起所有回复
  • 有些DoVi视频的codec id是V_MPEGH/ISO/HEVC或hev1,没法被识别,颜色发绿,用mediainfo看,里面HDR format字段有正确的信息:Dolby Vision, Version 1.0, dvhe.05.06, BL+RPU,所以我的问题是能否用HDR format字段来识别DoVi视频?

    校验提示文案

    提交
    Profile 5请用下载MP4版,不要用MKV,MKV不是标准的DoVi Profile 5容器。未来会改进,让jellyfin也能认MKV的Profile 5。

    校验提示文案

    提交
    其中有一个不是mkv,是mp4,但是codec id是hev1,不在您文章中提到的那3个里面,所以没识别成DoVi

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 我是用tmm进行刮削电影信息,但是想问问为啥前几天一直同步正常,但今天突然Jellyfin的后台里电影的信息同步速度变的巨慢?谢谢

    校验提示文案

    提交
    影片信息都是来自于外网,速度因网络波动而异,请修改hosts或使用你懂的的方法。

    校验提示文案

    提交
    收起所有回复
  • 你好,我的威联通上装的也是您的版本,有个汉化的问题不知道和谁说,还是在您这里留言反应一下吧,基本上所有的东西我看到都汉化了。但是电影的类别(也就是风格)现在还是"Action","Adventure","Animation","Comedy"等,而不是“动作”,“冒险”,“动画”,“喜剧”等,请问这些怎么汉化,或者能否在设置里开放个地方让我们自己本土化?谢谢。

    校验提示文案

    提交
    这些风格直接来自tvdb或moviedb等,没有经过任何翻译,即元数据提供的如果是英文,网页就显示英文。

    校验提示文案

    提交
    收起所有回复
  • 还有个问题,在Collection(也就是合集)里能够轻松的自动/手动建立合集,但是能否将某一个合集放到主菜单最上方的“我的媒体”中呢?

    校验提示文案

    提交
    这些UX相关的内容不在我的管理范围内,我只负责编解码转码,建议直接到jellyfin-web讨论或者直接修改源码提PR。

    校验提示文案

    提交
    收起所有回复
  • 我拉了最新的docker镜像发现一个小问题,在播放界面点击齿轮设置按钮,再点击质量什么的会弹二级菜单的选项整个设置条就会闪烁显示了,我试过您编译的windows版本docker版本都出现了这个问题,我又尝试安装了官方版本的10.8.0没出现这个问题

    校验提示文案

    提交
    桌面浏览器还是手机?清空浏览器缓存试一下

    校验提示文案

    提交
    桌面版的edge我两台电脑docker和windows版试了都是这样,点开调码率的闪一下就没了,需要的话我把我的jellyfin地址私聊给你

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 0628和0705版本在DV转码的时候,在edge浏览器播放中进行控制比如调整音量,画面会变色(紫)。另外估计是服务器端问题,测试版到正式版客户端播放任何视频,在类似节目推荐列表里都是那几个视频推荐,不会智能更新了。不知道是不是中文版特别的bug。

    校验提示文案

    提交
    调整音量大小?这个完全是客户端行为,而且对服务端的转码调用不会有任何影响

    校验提示文案

    提交
    收起所有回复
  • 大佬你好!我机器是ts453dmini,在docker里面装的最新镜像。jellyfin里面转码ffmpeg路径先用的默认的,后来改成了套件里面安装的ffmpeg地址(大概是/share/第一个磁盘/.qpkg/ffmpeg),但是硬件转码好像都没起作用,CPU基本上90%+,超过4g的文件就无法播放了,请问ffmpeg路径应该怎样设置呢?需要在套件里面单独安装ffmpeg吗?

    校验提示文案

    提交
    找到原因了,container里面安装的时候要勾特权,然后就完美了。J4135,浏览器直接播放71G的电影,CPU使用率甚至只有14%!!!jellyfin app播放最高也就21%!!太强了,谢谢大佬!!!

    校验提示文案

    提交
    不要改别的ffmpeg,别的ffmpeg不带优化。用docker内自带的/usr/lib/jellyfin-ffmpeg/ffmpeg

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 大佬,有没有计划尝试AMD平台?看中了4600GE的性能和功耗以及价格,如果弄成了,以后就不用再折腾了。整体架构是PVE+NAS,NAS中通过docker安装jellyfin。但是目前的问题是:①不知道最新版的PVE是否能实现显卡直通(AMD官网看是有Linux下的驱动,但是版本不一样。之前在自己4800U的笔记本上安装了Ubuntu,显卡驱动能够正常驱动);②jellyfin是否完全依靠FFmpeg解码?是否只要可以实现FFmpeg的功能就可以实现jellyfin的转码功能?因为对jellyfin整体架构不太了解,还希望大佬解释一下,谢谢。

    校验提示文案

    提交
    1.直通linux跟intel核显差不多,直通windows比较麻烦。2。完全依靠ffmpeg,目前我做的功能就是给ffmpeg打补丁实现的。在windows上是AMF+D3D11+OpenCL,在linux上是VAAPI+Vulkan。

    校验提示文案

    提交
    收起所有回复
  • 可以用上GPU解编码,也可以用上低电压,也可以用上杜比视界重映射(必须严格符合DV P5规范),现在唯一的问题是,如果遇到DV P8(dvhe 08.06)之类的,由于视频兼容并保留了HDR10信息,jellyfin编码时还是默认还使用HDR10,而不会强制使用DV信息,这个就比较遗憾了,因为现在DV视频影片越来越多了,希望万能的楼主能够解决这个问题,谢谢!

    校验提示文案

    提交
    jellyfin的定制ffmpeg只要遇到dv元数据就会自动应用。不存在区分5和7和8这个问题。

    校验提示文案

    提交
    收起所有回复
  • 另外,dvhe 05.09是可以认出并正常播放,一到国产片经常用的dvhe 05.06又不认出来了,又是绿屏...

    校验提示文案

    提交
    05.03 05.06 05.09的样片我都有,全都正常,不知道你用的哪个老版本。

    校验提示文案

    提交
    大佬 我实在是没找到物理机群晖7.1.1手动开启低电压转码的法子,各种查只找到了虚拟机的开启办法,我的cpu是i3-7100,是可以开启的吧

    校验提示文案

    提交
    收起所有回复
  • 大佬,unraid 6.11.5docker安装了最新的镜像,没法使用nvenc解码了。试过默认配置重装,不行。也试过添加额外参数--runtime=nvidia和NVIDIA_VISIBLE_DIVICES,也还是不行。

    校验提示文案

    提交
    用—gpus=all创建,成功后运行docker exec -it jellyfin ldconfig

    校验提示文案

    提交
    收起所有回复
  • 大佬,请教几个问题哈。
    1、tone mapping的效果,就是同一算法下的输出色彩(包括亮度、对比度、gamma等),在不同的核显下是否有区别?我搜了google,找不到相关的讨论。
    我现在用的是j5005的UHD 605,硬解HEVC 10bit HDR 70mbps的视频到1080p 10mbps、OpenCL的tone mapping、不带字幕,可以到50+ FPS,但是选择不同算法(看了达文牛的文章)的输出亮度、对比都是不太正常,像是蒙了一层灰白mask一样。所以我想换一套系统,看看最新的G6900/G7400的UHD 710带multi-format codec engine很不错,但是不知道tone mapping的效果怎么样,没法出手。
    2、另外,jellyfin 10.8的tone mapping算法,包括VPP和OpenCL的BT2390等,是硬件实现的,还是软件实现的?感觉iGPU硬件里貌似不应该内置这么多算法,内置一套自己的算法就好了。

    校验提示文案

    提交
    1. 范围选TV不要选PC。UHD770以下的UHD7xx只有1个MFX引擎,但肯定比UHD630快。
    2. 11代处理器或更高的VPP是Intel硬件实现的。OpenCL肯定是使用显卡通用计算算力实现的。

    校验提示文案

    提交
    感谢大佬回复。
    1.我看了qsv的wikipedia,从gen7 sky lake开始支持tone mapping。
    2.就是说不同igpu的opencl tone mapping效果是一样的吧,而vpp的效果是不同的?依赖于硬件实现。
    3.从哪里可以查到igpu视频方面的资料呢,包括arch,算法等等,我也是开发者,虽然不是驱动开发,不过可能能看明白,也想多学习一下。

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 大佬牛*,用了你的镜像,中文字幕问题解决了。 [赞一个]
    就是转码还没摸索透,一直用默认选项的。。

    校验提示文案

    提交
  • 大佬感谢啦

    校验提示文案

    提交
  • 功能越来越强大了

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
82
扫一下,分享更方便,购买更轻松