mitsukaze 发表于 2024-1-6 22:25:25

12代集显没法硬解YUV444p10

本帖最后由 mitsukaze 于 2024-1-6 22:33 编辑

买了个N100的小主机,之前也查了这个u支持HEVC YUV444p10的硬解.


但是经过测试,无论是jellyfin还是mpv都有着极高的CPU占用.请问大佬有知道为什么么?

BTW我用的win系统,这是dxva checker检测的结果


这是开了个网页版jellyfin player通过transcode观看绯弹的亚里亚, vcb压的YUV444p10


同时也试了其他的一些视频源,有些很高码率的YUV420p10都能很轻松的转码,cpu占用率几乎没有,也有很多动画同样cpu占用率很高.

麻了,不知道发生啥了


看了眼log,这个是jellyfin调用ffmpeg的命令
ffmpeg -analyzeduration 200M -ss 00:07:06.000 -init_hw_device d3d11va=dx11:,vendor=0x8086 -init_hw_device qsv=qs@dx11 -filter_hw_device qs -autorotate 0 -i file:"D:\Downloads\ Hidan no Aria .mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_qsv -low_power 1 -preset 7 -look_ahead 0 -b:v 5820027 -maxrate 5820027 -bufsize 11640054 -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale=trunc(min(max(iw\,ih*a)\,min(1920\,1080*a))/2)*2:trunc(min(max(iw/a\,ih)\,min(1920/a\,1080))/2)*2,format=yuv420p" -codec:a:0 libfdk_aac -ac 2 -ab 256000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 142 -hls_segment_filename "D:\Programs\JellyfinData\transcodes\f8bb279c3461a2920f96ba98c1608697%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "D:\Programs\JellyfinData\transcodes\f8bb279c3461a2920f96ba98c1608697.m3u8"


孤雨独火 发表于 2024-1-7 04:01:43

本帖最后由 孤雨独火 于 2024-1-7 12:57 编辑

你确定ffmpeg的d3d11va支持过这个格式?我印象中主线里没人做过

你mpv调用的是哪个api?
vulkan-copy ?
qsv-copy ?
d3d12va-copy ?

nyanmisaka 发表于 2024-1-7 17:52:56

jellyfin添加了d3d11下的HEVC Rext支持,但是还没启用。我等今年有时间给它加上。

https://github.com/jellyfin/jellyfin-ffmpeg/blob/jellyfin/debian/patches/0040-add-d3d11va-dxva2-hevc-422-444-decoding.patch

mitsukaze 发表于 2024-1-7 22:18:04

nyanmisaka 发表于 2024-1-7 17:52
jellyfin添加了d3d11下的HEVC Rext支持,但是还没启用。我等今年有时间给它加上。

https://github.com/jel ...

大佬是maintainer?太强了...


btw我又试了一下,貌似ffmpeg是可以调用qsv硬解的,只是jellyfin调用ffmpeg的parameter不一样.

这个转码指令是好用的
# HW transcode YUV444 HEVC to NV12 HEVC (or h264 -- replace hevc_qsv with h264_qsv)
.\ffmpeg.exe -hwaccel qsv -c:v hevc_qsv -i file:"D:\Downloads\AIR 2005 EP07 - yan04000985.mkv" -vf vpp_qsv=format=nv12 -c:v hevc_qsv -b:v 5M "D:\Downloads\transcode_output.mp4"


shadows 发表于 2024-1-7 23:46:09

本帖最后由 shadows 于 2024-1-7 23:51 编辑

mpv,默认按键绑定下,按I(大写的i),会显示状态信息,如果是硬解,可以看到Video那一行的末尾HW:xxx就是使用了xxx硬解
另外也建议看日志或者控制台(默认按键下,按`这个按键,可以显示控制台),会提供mpv尝试硬解的过程,会说明为啥硬解用不了

不过楼上已经说明清楚了,ffmpeg不支持这样硬解……

zzy2000129 发表于 2024-2-29 14:23:15

参考:
https://github.com/Nevcairiel/LAVFilters/issues/547
之前也搞了我很久,最后换MPC-BE了

nepnep 发表于 2024-2-29 20:14:56

这个编码不就是软解用的吗,又不是工业制式编码,能硬解?

mitsukaze 发表于 2024-3-2 23:23:39

本帖最后由 mitsukaze 于 2024-3-2 23:49 编辑

nyanmisaka 发表于 2024-1-7 17:52
jellyfin添加了d3d11下的HEVC Rext支持,但是还没启用。我等今年有时间给它加上。

https://github.com/jel ...
这帖子居然又被顶上来了...

大佬这里有update么?会不会有个pre-release可用的哈


Update:
用了 v6.0.1-3 https://github.com/jellyfin/jellyfin-ffmpeg/releases/tag/v6.0.1-3
现在好像jellyfin硬解能调用了,但是编码的时候好像还是cpu在干活...


mitsukaze 发表于 2024-3-2 23:24:34

nepnep 发表于 2024-2-29 20:14
这个编码不就是软解用的吗,又不是工业制式编码,能硬解?

intel和nv早就能了

mitsukaze 发表于 2024-3-2 23:25:57

本帖最后由 mitsukaze 于 2024-3-2 23:32 编辑

zzy2000129 发表于 2024-2-29 14:23
参考:
https://github.com/Nevcairiel/LAVFilters/issues/547
之前也搞了我很久,最后换MPC-BE了 ...
其实本地播放不管是ios还是台式机都可以硬解

jellyfin主要是为了给电视转码用的
页: [1] 2
查看完整版本: 12代集显没法硬解YUV444p10