zelefans 发表于 前天 09:41

【11/14,V4更新】VR破解不求人,一键用自己电脑GPU给VR去马(附件有脚本,V4兼容老视频编码,4K2原创)

本帖最后由 zelefans 于 2025-11-15 16:14 编辑

纯技术贴,纯免费开源软件实现,但附件有给技术小白使用的脚本。

【11/15提醒】研究发现,附件里的直接在原视频解码的方法适合大部分厂牌,但不适合SAVR\URVRSP等少部分,主要和不同马赛克打码方式有关,LADA只能识别放个马赛克,具体见最后的高级命令部分前的说明。

自己写python用whisper+gpt翻译玩一年玩腻了,翻译从不求人。网上纯VR破解资源只有个位数,大都JAV做的效果很不好,正好看到lada去马效果不错还支持CLI,试了试感觉的确有趣,扫遍全网没人写过,我来整个教程吧,破解也可以不用等人发布了。传播有风险,自用最省心。

首先,需要一张英伟达的显卡,GPU加速,对CPU要求不高。如果没有N卡就不用看下面也不用花金币了。
刚开始测试过LADA直接破解VR视频,几乎看不到有一帧被去马,但切割视频后发现有一定效果,于是就有了后续。花了半天时间折腾出来了。

先对破解效果有限的说明:
现在绝大多数日系180VR画面默认是“半球形等距柱状”,早期是鱼眼,在边缘肯定是畸变的,LADA很难自动识别,所以只有在画面偏中心位置识别和解码效果会好些,其他位置看命,两个视频解码效果是否一致也是看命。VR转平面必然丢失画面(可以转平面,但转换时要指定输出的视角偏那边,丢弃其他的画面),所以当前无法做成先转平面再转回180度,这在当前是无解的,除非LADA用的模型能针对VR优化。总之,当前只能优化对脸和直视的。

ffmpeg和LADA是全开源的,小白也能用(Lada需要显卡好点)。
FFMPEG地址:https://ffmpeg.org/,可以去https://www.gyan.dev/ffmpeg/builds/下载编译后的windows版本,下载latest git master branch build 中的ffmpeg-git-full.7z
LADA地址:https://codeberg.org/ladaapp/lada/releases

注意,因为LADA通常需要GPU才能处理,因此ffmpeg命令也优化后用N卡cuda加速处理切割和合并,用hevc_nvenc编码,实测快了3、4倍。显卡显存需求差不多1G~2G左右。

左右视频切割命令(-i之前的 -hwaccel cuda -c:v hevc_cuvid 表示输入编码,适合新视频,老视频报错的话改用 -hwaccel cuda -c:v h264_cuvid ,或整块删掉,用CPU)
ffmpeg -hwaccel cuda -c:v hevc_cuvid -i mdvr00363_2_8k.mp4 -vf "crop=iw/2:ih:0:0" -c:a copy -c:v hevc_nvenc -preset p3 -cq 25 movie_L.mp4
ffmpeg -hwaccel cuda -c:v hevc_cuvid -i mdvr00363_2_8k.mp4 -vf "crop=iw/2:ih:iw/2:0" -c:a copy -c:v hevc_nvenc -preset p3 -cq 25 movie_R.mp4如果需要时间片段,则用ss和to指定范围,例如
ffmpeg -ss 10:23 -to 11:50 -hwaccel cuda -c:v hevc_cuvid -i mdvr00363_2_8k.mp4 -vf "crop=iw/2:ih:0:0" -c:a copy -c:v hevc_nvenc -preset p3 -cq 25 movie_L_clip.mp4LADA解码命令
lada-cli.exe --input movie_L.mp4 --device cuda:0 --codec hevc_nvenc --crf 25 --preset p3 --max-clip-length 180
lada-cli.exe --input movie_R.mp4 --device cuda:0 --codec hevc_nvenc --crf 25 --preset p3 --max-clip-length 180重新合并命令
ffmpeg -hwaccel cuda -c:v hevc_cuvid -i movie_L.restored.mp4 -hwaccel cuda -c:v hevc_cuvid -i movie_R.restored.mp4 -filter_complex "hstack=inputs=2" -map "" -map 0:a -c:a copy -c:v hevc_nvenc -preset p3 -cq 25 -shortest movie_sbs_restored.mp4
核心命令都在上面,对于技术高手足够自己后续折腾了,自动化脚本在附件中,有单个的有批量的有测试的,3金币。不需要的人也可以买一下就当点赞。

如何使用附件中的脚本(单个文件处理版,目录处理类似)
前提条件:

[*]ffmpeg.exe
[*]lada-cli.exe
[*]vr_single_gpu.bat
[*]源视频文件 (例如 movie.mp4)
放置文件:

[*]简单方式: 将所有这些文件(ffmpeg.exe、lada-cli.exe、vr_single_gpu.bat 和 movie.mp4)放在同一个文件夹中。
[*]高级方式: 如果 ffmpeg 和 lada-cli 已经添加到了您的 Windows 系统环境变量 (PATH) 中,您只需将 vr_single_gpu.bat 放在任何地方即可。其实最简单的方式是解压缩后exe和目录都扔进C盘windows目录或windows下的system32目录。
[*]更高级方式,解压缩后在系统PATH全局变量中添加exe对应的安装目录。
运行脚本:

[*]拖放方式(推荐): 直接用鼠标将您的 movie.mp4 文件拖拽到 vr_single_gpu.bat 文件的图标上,然后松开。
[*]命令行方式: 打开命令提示符 (cmd),cd 到该目录,然后输入 vr_single_gpu.bat "movie.mp4"(如果文件名有空格,请务必使用引号)。
[*]输入起止时间(留空则全部)。
[*]脚本将自动执行所有步骤:切割、LADA处理、合并,最后删除所有临时的 .mp4 和 .restored.mp4 文件,只留下您原始的 movie.mp4 和最终的 movie_sbs.restored.mp4。

附件里四个脚本,最新V2版增加了批量只转左眼视角,也修复了路径有空格导致的问题,V3版本修复了lada输出路径问题,V4版本兼容老视频编码例如SIVR-178

[*]vr_single_gpu_left_only.bat,单个视频,只提取左眼数据并解码,可指定时间范围,效率最高,只用三分之一时间,无立体画面在VR其实也能看看
[*]vr_single_gpu.bat,只提取左右眼数据,解码,合并,可指定时间范围
[*]vr_batch_gpu.bat, 指定目录,遍历所有MP4文件,解码,合并,不可指定时间范围(因为每个文件有必要去马的时间区间不一样)
[*]vr_batch_gpu_left_only.bat,指定目录,只提取左眼数据并解码,适合急性子的对立体不讲究的人

----------------------------------
剩下部分是更高级的部分,调了2个小时跑通了整个过程。当下还需要进一步测试。

但受限于lada的马赛克检测模型的问题,现阶段边缘马赛克解码效果”在近乎一半的厂牌的片子“不行。 实际测试结果,就是lada的马赛克识别模型只是识别矩形马赛克区域。而S1VR、MDVR、VRKM、IPVR等很多厂牌的VR视频方格打码打在畸变后的原始视频上,平面化了之后就变成梯形,导致lada识别不出。SAVR、URVRSP在VR模式下边缘马赛克是正常的方格,使得他们的片子原始画面的边缘是梯形的马赛克,在VR视角下或是平面化后却是方格的马赛克,这样反而会导致用上面的去马模式下的解码困难。

回到我所想到的方法,针对平面化前畸变而平面化后方格的打码,利用ffmpeg先将VR视频平面化,解码处理后原位置“贴”回去。之前说过,VR视频平面化中只能复原指定的一部分区域,所以需要根据片源内容判断要平面化哪部分区域,vr转flat之后用lada解码,解完之后flat转vr空间,无内容空间用绿幕填充,覆盖到原视频的时候制订绿幕颜色透明。整个流程都已经跑通。把命令贴一下,给其他有技术的人参考。

vr转平面的视角参数:
yaw=0 (水平居中)
pitch=0 (垂直居中)
h_fov=90:v_fov=60: 设置输出的平面视频的水平/垂直视场角。90/60 模仿了人眼的正常观感,可以按需调整。
偏上视角 (Up),例如pitch=25 (正数代表向上看,您可以调整 25 这个值)
偏下视角 (Down),例如pitch=-25 (负数代表向下看)
如果向下的视角到底,需要使用的 pitch 值的计算公式是:pitch = -90 + (v_fov / 2)

#第1步:取下方部分画面转平面(pitch,如果取其他位置参考上面说明)
ffmpeg -hwaccel cuda -c:v hevc_cuvid -i 15s.mp4 -vf "v360=hequirect:flat:h_fov=90:v_fov=60:yaw=0:pitch=-60" -c:a copy -c:v hevc_nvenc -preset p3 -cq 25 processed.mp4#第2步:重新投影回VR空间,底色用绿色作为绿幕(利用alpha_mask这个参数)
ffmpeg -i processed.mp4 -f lavfi -i color=c=green:s=4096x4096:r=60000/1001:d=15 -filter_complex "v360=input=flat:output=hequirect:w=4096:h=4096:ih_fov=90:iv_fov=60:yaw=0:pitch=60:alpha_mask=1;overlay=format=auto" -map "" -map 0:a -c:a copy -c:v hevc_nvenc -preset p3 -cq 25 processed_vr.mp4#第3步:叠加回原来视频
ffmpeg -hwaccel cuda -c:v hevc_cuvid -i 15s.mp4 -hwaccel cuda -c:v hevc_cuvid -i processed_vr.mp4 -filter_complex "colorkey=color=green:similarity=0.1:blend=0.1;overlay" -map "" -map 1:a -c:a copy -c:v hevc_nvenc -preset p3 -cq 25 15s_final.mp4




cheng30888 发表于 前天 10:08

纯技术贴,虽然还是不太明白 还是要顶一下

freesia 发表于 前天 10:32

大佬牛的!

fortest1001 发表于 前天 10:39

感谢楼主大大!

qiao23 发表于 前天 10:54

马赛克不是覆盖在原画面上的一层东西,而是用马赛克替换掉了原来的画面,也就是说,原来的数据已经丢失,那个地方长什么样子,已经没有数据了。所以:任何破解都不是复原。

Mztm 发表于 前天 10:56

8G显存的N卡可以吗,只有3070.。。。

zelefans 发表于 前天 10:58

qiao23 发表于 2025-11-13 10:54
马赛克不是覆盖在原画面上的一层东西,而是用马赛克替换掉了原来的画面,也就是说,原来的数据已经丢失,那 ...

看多了都是脑补,老人都是眼中有马,心中无马。无马流出看着也就那样,其实就是让观感稍微舒服点。

zelefans 发表于 前天 11:38

Mztm 发表于 2025-11-13 10:56
8G显存的N卡可以吗,只有3070.。。。

可以,每次运行就占用2G不到,包括LADA

ttiron 发表于 前天 11:57

學習了,謝謝老大

alyh2025 发表于 前天 12:03

马一下,等大佬们验证
页: [1] 2 3 4
查看完整版本: 【11/14,V4更新】VR破解不求人,一键用自己电脑GPU给VR去马(附件有脚本,V4兼容老视频编码,4K2原创)