未解决 如何为ReplayMod的渲染提速
-
如题,我正在使用ReplayMod渲染视频,但是渲染速度非常慢(1秒5帧不到),我的CPU是AMD R5 7500F,我的GPU是4060 Ti(8GB),给Minecraft分配了8GB内存,在渲染时CPU占用越20%左右,GPU占用几乎为0%,内存占用4GB左右,显然没有完全利用性能。
我渲染的视频是MP4-自定义码率,1920*1080,20Mbps,60fps,2x图形保真
这是我的命令行参数
-y -f rawvideo -pix_fmt bgra -s %WIDTH%x%HEIGHT% -r %FPS% -i - %FILTERS%-an -vcodec h264_nvenc -b:v %BITRATE% -pix_fmt yuv420p -threads 12 -preset p7 "%FILENAME%"
这是ReplayMod默认提供的命令行参数
-y -f rawvideo -pix_fmt bgra -s %WIDTH%x%HEIGHT% -r %FPS% -i - %FILTERS%-an -c:v libx264 -b:v %BITRATE% -pix_fmt yuv420p "%FILENAME%"
想问一问大佬们如何提高渲染速度
-
补充:
ffmpeg version N-117414-gb9145fcab2-20241008
已安装CUDA
-
浅读了一下代码,我的理解是 FFmpeg 只负责将 OpenGL 捕获到的帧编码成视频,实际渲染是在 OpenGL 的渲染管道中。你的命令行参数
-vcodec h264_nvenc
只将编码部分使用 GPU 加速了,OpenGL 渲染也会用 GPU 处理,但是帧捕获都是 CPU 处理的:
OpenGlFrameCapturer.java#L106GL11.glReadPixels(0, 0, getFrameWidth(), getFrameHeight(), GL12.GL_BGRA, GL11.GL_UNSIGNED_BYTE, buffer);
从 vRAM 读取像素数据到 RAM,CPU 密集型操作;
还有缓冲区这里,也是 CPU 处理:OpenGlFrameCapturer.java#L104ByteBuffer buffer = ByteBufferPool.allocate(getFrameWidth() * getFrameHeight() * 4);
1秒5帧确实太慢了。我想你也可以降低渲染画质,目前国内主流的视频网站码率都较低,上传时也会压缩,导致实际效果可能和降低画质的版本相差无几。
如果实在不满意,后期也可以通过 QualityScaler 等开源的 AI 视频画质提升项目来修复,这些项目会调用 CUDA 加速,且生成质量通常与原画接近。 -
@BaimoQilin
我看到有人渲染高画质的视频能做到一秒几百帧的,有点羡慕
但是实际上我的CPU也没吃满,我注意到如果把图形保真关闭似乎能做到1秒70帧左右,但是画面会很糊,有什么解决办法吗 -
@BaimoQilin 或者我可不可以绕过Replaymod直接调用ffmpeg渲染?
-
@BaimoQilin 实际上我玩Minecraft的时候帧率都能达到120帧以上,所以这里1秒5帧我很不理解,或者可以加速openGL渲染速度吗
-
或者我可不可以绕过Replaymod直接调用ffmpeg渲染?
ㅤㅤㅤ ⬇️
FFmpeg 只负责将 OpenGL 捕获到的帧编码成视频,实际渲染是在 OpenGL 的渲染管道中
https://forum.mczwlt.net/post/1301
但是画面会很糊,有什么解决办法吗
ㅤㅤㅤ⬇️
如果实在不满意,后期也可以通过 QualityScaler 等开源的 AI 视频画质提升项目来修复,这些项目会调用 CUDA 加速,且生成质量通常与原画接近。
https://forum.mczwlt.net/post/1301 -
@BaimoQilin 我不太希望使用第三方工具,因为如果不开图形保真画质损失很大(比如玩家名只剩像素点),我不认为AI工具能够把这个都补出来
-
@BaimoQilin 不开图形保真
-
@BaimoQilin 开了之后
-
@BaimoQilin 我尝试了一下,如果只是降低码率的话渲染速度几乎不变,还是1秒5帧
-
@LeafingXYZ 在 如何为ReplayMod的渲染提速 中说:
@BaimoQilin 开了之后
感觉差异不是很大。如果你上传到国内的大部分视频网站上,压缩后也就是图1的样子。当然,如果你对画质有高要求,且视频时长较短的话,也可以选择长时间的等待。
-
ReplayMod 的渲染速度也就这样了,我另外推荐一款类似的模组:Flashback,这款模组比较新,也许能在渲染速度上有所优化
-
@Sheep-realms flashback 我用过,确实相当不错 界面也更人性化
可惜的是只支持 1.21.x ,低版本还得老老实实用 ReplayMod. -
@Sheep-realms 有点可惜,我是1.20.1forge