WangBin
WangBin
log里看不出什么原因,加上环境变量MDK_LOG_STATUS=1会打印时间信息。用DecodeFps.exe -c:v MFT:d3d=11 ...可以看看解码能达到多少。mft的软解性能很差,会卡不意外。你可以找个libdav1d.dll放进来然后-c:v dav1d看看解码效果。potplayer是用硬解吗?
你也可以对比不设置解码器,会调用ffmpeg,ffmpeg好像会自动调用av1的硬解。另外ffplay的日志也可以发一下
我测了下这里下载的libdav1d.dll没问题 https://code.videolan.org/videolan/dav1d/-/pipelines ffplay检测到不支持硬解会使用dav1d。我这边后面改下,默认不设解码器的话也自动使用dav1d
decodefps 输出: ``` $ ./DecodeFps -c:v dav1d /d/v/wanderers.mp4 MDK 0.13.0 (git 33a29de) - Multimedia Development Kit. Copyright (c) 2016-2022 WangBin(QtAV author) Build for: Windows0x0600 x86_64; MSVC1930; MSVCRT14.30.30705.0/msvcp140.dll; 16:30:32 Jan 9...
最新的包支持不设置解码器时自动回退到dav1d(libdav1d.dll要存在)
从log看并没有调用dav1d也没解码出画面,log发错了?
> > 从log看并没有调用dav1d也没解码出画面,log发错了? > > 是发错了,那个是主动设置解码器为FFMPEG时日志,只有声音没有画面 不设置解码器的日志 [01-19 19-58-14.txt](https://github.com/wang-bin/mdk-sdk/files/7896849/01-19.19-58-14.txt) 你这个是调了MFT:d3d=11,默认什么解码器都不设会走dav1d。你是用哪个程序测的?对了,你是什么显卡?你用dxvachecker看下你的显卡是否支持av1硬件,不能硬解的话MFT:d3d=11没报错我倒是第一次碰到,行为跟硬解一样。framereader用各解码器给出的帧率是多少?
你的显卡应该支持av1硬解的。可以运行framereader -c:v MFT:d3d=11 a.mp4 然后看任务管理器gpu使用率变化  你这边卡顿有可能和opengl渲染有关,你用d3d11渲染试试,`glfwplay.exe -c:v MFT:d3d=11 -d3d11 a.mp4`,或者运行install.bat,然后文件右键选择glfwplay播放
-c:v D3D11也可以试试,如果能硬解的话这个也可以解码
glfwplay加上参数`-fps -1`会以最快的速度解码和渲染,你看看有没有卡顿,如果没有的话应该是我音视频同步的问题