如何用 Jasna 自动修复 VR180 视频:从分眼处理到投影选择的完整新手教程
【免费下载链接】jasnaVideo restoration tool项目地址: https://gitcode.com/GitHub_Trending/ja/jasna
Jasna 是一款面向 GPU 的视频修复工具,内置 VR180 自动修复能力:把左右眼画面拆开各自修复,再拼合输出,并根据片商自动挑选最合适的修复投影,全程无需手动配置。这篇教程带你从零跑通第一条 VR180 视频,并讲清楚它背后的判断逻辑。
为什么 VR 画面不能直接扔进修复模型?
先说痛点:你手里有一条 3840×1920 的 VR 视频,直接按普通 2D 方式丢进修复工具,出来的效果往往很差。
VR180是常见的 VR 视频格式:**SBS(Side-by-Side,并排)**结构把左眼、右眼两路画面左右拼接在同一个宽幅画面里,每只眼各占一半。2D 修复模型看到的是"两幅画面挤在一起"的变形图,马赛克检测也会把双眼的画面混在一起,自然修不好。
Jasna 的解决思路分三步,逻辑实现在jasna/vr180.py的SbsDetectionAdapter中:
- 拆开:把宽画面按宽度对半切,得到左眼、右眼两路独立画面;
- 各自修复:对每只眼独立运行马赛克检测与修复,双眼互不干扰,互不串扰;
- 拼合:把双眼的修复结果重新拼回完整的并排画面输出。
这里有一个关键设计:检测框和掩码始终保留在源画面坐标里,只有修复后的"差分"会被重新投影回去。换句话说,马赛克以外的画面一个像素都不会被改动——这也是后文"修复后不会整体变形"的原因。
VR180 是怎么被认出来的?三条自动识别规则
这一节解决"Jasna 凭什么知道我要修的是 VR 视频"的问题。你只需要把 VR 视频像普通视频一样添加进去,VR180 模式保持默认的"自动(推荐)",剩下的交给resolve_vr_mode()(jasna/vr180.py)。
自动模式按下面三条规则判断,任意一条命中即启用分眼处理(详见 docs/zh/vr180.md):
| 识别条件 | 说明 |
|---|---|
| 严格 2:1 且高度 > 1080 | 例如 3840×1920、8192×4096,直接判定为并排 VR |
| 已知片商文件名标记 | 文件名包含FSVSS、SAVR、S1VR、VRKM等已知 VR 片商代号(子串匹配,savr00327这种粘连写法也能命中) |
| VR 空间元数据 | 文件带有"并排 + 等距柱状"的立体/球面投影标记 |
三条都不满足时,视频按普通平面视频处理,不会误伤。
💡 想确认它的判断结果?看日志里的一行
VR mode: requested=auto resolved=sbs/off projection=... reason=...,它告诉你请求模式、最终判定、解析出的投影和命中原因。
不同片商,为什么需要不同的修复投影?
这是 Jasna 处理 VR180 最巧妙的一环,也是"按片商智能选投影"(VR 投影选择)的由来。
各片商制作马赛克的方式不同,不存在一种适合所有视频的展平设置。所以在修复前,Jasna 会先为每个马赛克区域选择最合适的投影(resolve_projection(),jasna/vr180.py),把该区域"展平"给 2D 修复模型处理。可选三种:
- raw(原始):按画面原样使用该区域,未知片商时的安全默认值;
- fisheye(鱼眼):把鱼眼视图下的画面重新展开,适用于马赛克在鱼眼视图下显示正常的片商;
- gnomonic(等距投影):平坦、无变形的视图,最适合 2D 修复模型。
内置的片商→投影路由表来自STUDIO_PROJECTION:
| 片商代号 | 自动选择的投影 |
|---|---|
| ATVR、CJVR、IPVR、KAVR | raw |
| NHVR、PXVR、TMAVR | 鱼眼 |
| VRPRD | 等距投影 |
此外,文件名中命中FSVSS / SAVR / URVRSP / CRVR / PXVR等鱼眼片商标记时,也会自动走鱼眼投影;两者都没命中时,回落到 raw。
4 步跑通你的第一条 VR180 视频:GUI 快速上手
这一节解决"我现在就要修一条 VR 视频"的问题。操作一共四步:
- 添加 VR 视频:和添加普通视频完全一样;
- 保持 VR180 模式为"自动(推荐)":在高级设置里(
jasna/gui/settings_sections/advanced.py)不要改动它; - 检测模型选 rfdetr-vr-v1:这是内置的 VR180 专用检测模型,效果最佳;
zelefans-vr-yolo-v2是可选备用,需单独下载(见 docs/zh/models.md); - 开始处理。只修一部分?打开区间编辑器(
jasna/gui/segment_editor.py)指定区间即可,未指定的部分不会被触碰。
自动不够用时:CLI 参数与手动投影覆盖的兜底手段
这一节面向两种情况:自动模式漏识别,或者你对自动选择的投影不满意。
命令行修复 VR180:--vr-mode参数速查
Jasna 支持纯命令行(详见 docs/zh/cli.md),核心是--vr-mode,共四个取值:
| 取值 | 作用 |
|---|---|
auto(默认) | 自动识别 + 按片商投影路由 |
off | 当作普通平面视频处理 |
sbs | 强制分眼处理(自动模式漏识别时使用),投影路由与 auto 相同 |
sbs-fisheye | 强制分眼,且所有区域都用鱼眼投影 |
示例命令:
jasna --input input.mp4 --output output.mp4 --vr-mode auto jasna --input input.mp4 --output output.mp4 --vr-mode sbs-fisheye⚠️ 强制 SBS(
sbs/sbs-fisheye)要求帧宽度为偶数,奇数宽度会直接报错。
自动投影不满意?在区间编辑器里手动切换
视频被识别为 VR180 后,区间编辑器中的VR 投影菜单会启用(未识别为 SBS 时该菜单是禁用状态)。手动覆盖三步走:
- 打开修复预览;
- 在VR 投影菜单中选择自动 / 原始 / 鱼眼 / 等距投影,直接比较当前帧的效果;
- 选择应用,该设置为当前视频保存,最终处理将使用与预览相同的投影。
菜单标签是"所见即所得"的:自动模式下会实时显示它实际解析出的投影,例如显示为"VR 投影(自动:鱼眼)",你不用猜它选了什么。
💡 注意:区间编辑器预览只显示左眼,但扫描和导出处理的是双眼,预览效果不代表只修了一半,放心使用。
踩坑前先看这里:高频疑问
这一节集中回答新手最常遇到的三个问题。
Q:VR 修复会占更多显存吗?
会多一些,因为左右两路是分开处理的。显存吃紧时优先调小最大片段大小(例如从 180 调到 60)。另外 Jasna 会在显存不足时自动把等待帧临时挪到系统内存,需要时再移回显存,这一步无需任何配置(见 docs/zh/tuning.md)。
Q:我的 VR 视频没被识别出来?
自动模式比较保守:2:1 规则要求严格 2:1 且高度超过 1080。低分辨率或比例不精确的文件,可以在 GUI 里手动选SBS — 分眼处理强制启用(注意:SBS 要求帧宽度为偶数);命令行则用--vr-mode sbs。
Q:修复后的画面会整体变形吗?
不会。检测、跟踪、掩码和混合始终在源坐标进行,只有马赛克区域的修复差分会经过投影变换(实现见jasna/vr_projection.py),区域外的像素原样保留。所以修完的 VR 视频可以直接回 VR 头显里播放,不会出现整体扭曲。
小结
Jasna 处理 VR180 的核心思路是三句话:自动识别(严格 2:1 高分辨率 / 片商文件名 / VR 空间元数据,任一命中即分眼),分眼独立修复(双眼拆开检测与修复再拼合,马赛克以外像素不动),按片商智能选投影(raw / 鱼眼 / 等距投影自动路由,区间编辑器可预览并手动覆盖)。保持默认的"自动(推荐)"模式搭配rfdetr-vr-v1检测模型,就能开箱即用地修好你的 VR180 视频。
【免费下载链接】jasnaVideo restoration tool项目地址: https://gitcode.com/GitHub_Trending/ja/jasna
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考