一日一技 | 一个注册表键让微软停止歧视苹果
2022-8-9 17:30:7 Author: sspai.com(查看原文) 阅读量:19 收藏

Xbox Game Bar 录制的视频在Apple设备上播放不正常的解决方法

Matrix 首页推荐 

Matrix  是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。 
文章代表作者个人观点,少数派仅对标题和排版略作修改。


TL;DR

⚠️ 修改注册表前记录备份原始值,如果出问题还能恢复!修改注册表务必谨慎!修改注册表务必谨慎!修改注册表务必谨慎!重要的话说三遍!

如果出现 Windows Xbox Game Bar 录制的视频在 Apple 设备上播放出现绿边或花屏的情况,可以尝试。

  1. Win + R 输入 regedit,打开注册表编辑器;
  2. 左边目录依次定位到 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\GameDVR,打开后看右边;
  3. VideoEncodingResolutionMode 双击打开,将值改为 0
  4. CustomVideoEncodingHeight 改为 1080(十进制);
  5. CustomVideoEncodingWidth 改为 1920(十进制);
  6. 保存重启计算机,搞定。

奇怪的故障

Windows 上 Xbox Game Bar 的录制功能很方便,但一直有个苦恼的问题困扰我,录制的视频在 Apple 设备 (iOS, iPadOS, macOS) 上播放不正常,表现为有一个位于下方和右侧的绿边以及视频闪烁花屏,但是预览图是正常的视频画面和绿框,大致长下面这样。

 在 Apple 设备上播放时的绿框和花屏
在 Apple 设备上播放时的绿框和花屏
 预览图是正常的画面外加绿框
预览图是正常的画面外加绿框

用 Apple 设备去看这个视频的信息,可以看到视频的长宽是 2560x1440.

Apple 设备看到的视频信息
Apple 设备看到的视频信息

在我百思不解的时候,注视着这个预览图让我突然有了一个想法, 感觉这个视频在 “绿幕” 上占的比例很特殊,我打开了 Final Cut Pro X,新建了一个 1920x1080 的画面,然后把这个视频按 100% 的比例放在画面上, 按左上角对齐的话发现正好完美地切掉绿边!

这意味着什么,意味着这个视频真实的分辨率其实是 1920x1080,而不是 2560x1440,应该是文件的 metadata 里有什么信息在 Windows 和 Apple 设备上的处理方法不一样,导致了后者的误解,用一个 2560x1440 的画面在播放它,缺少的部分用绿色填充成了绿框。

寻找原因

有了这个猜想后,我就开始寻找原因了。用 Windows 上的 Potplayer 打开这个视频的信息,发现了和 Apple 设备上矛盾的地方。

Windows 上 Potplayer 显示的视频信息
Windows 上 Potplayer 显示的视频信息

这里有 WidthOriginal width 两个不同的值,分别是 2560 和 1920,这就和我们前面的实验结果吻合了——Apple 设备按照 2560x1440 的分辨率去播放了一个 1920x1080 的视频,空余的地方出现了错误,用绿色填充成了绿框,但在 Windows 上就忽略了 Width 信息,只用 Original width 信息,也就是用 1920x1080 的画面去播放这个视频,没有出现这个故障。

找到了问题的原因,但解决的过程又出现了更棘手的麻烦——这个视频是 Xbox Game Bar 里录制的,Windows 的设置界面里没有提供任何和分辨率有关的选项。

Windows 上 Xbox Game Bar 的设置界面
Windows 上 Xbox Game Bar 的设置界面

此事的转机出现在突然有一天,我的 Xbox Game Bar 里的录制按钮变成了灰色,没有任何提示信息,设置界面也是一切正常,但就是几个和录制相关的按钮全部无法点击(让我们一起说,谢谢微软,在 bug 中给我们了一个操作系统用🙄️),在试图找到解决方案的时候,我看到了这条帖子:Is Windows 11 Xbox Game Bar Not Working? Try to Fix It! [MiniTool Tips]。按照其中修改注册表的方式修好了这个按钮变灰的问题,但与此同时它提到的这个 GameDVR 注册表路径里其他的一些选项引起了我的注意。

解决方案

⚠️ 修改注册表前记录备份原始值,如果出问题还能恢复!修改注册表务必非常小心,出错可能会导致非常严重的后果,谨慎且三思而后行!

我进行了一通的尝试,过程就不赘述了,我发现这个问题可以通过修改注册表里几个值解决。按 Win+R 键,输入 regedit 打开注册表编辑器,在左边依次寻找:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\GameDVR
GameDVR 注册表选项
GameDVR 注册表选项

打开 GameDVR 目录下,右边出现一些键值,我们需要修改的是如下三项,如果没有可以在右侧空白处右键单击,选择 新建 > DWORD(32 位)值 手动添加:

  1. 对于 VideoEncodingResolutionMode 这个选项,双击打开它,将值改为 0,确定。此时再去用 Xbox Game Bar 录个视频,再用 Potplayer 打开文件信息,发现不再有 WidthOriginal width 两个不同的值了,但此时的视频可能会比较模糊。
  2. CustomVideoEncodingHeight 改为想要的视频高度,点击 “十进制” 然后输入 1080(建议)。
  3. 同理,将 CustomVideoEncodingWidth 改为想要的视频宽度,点击 “十进制” 然后输入 1920(建议)。
 将 VideoEncodingResolutionMode 设为 0
将 VideoEncodingResolutionMode 设为 0
 将 CustomVideoEncodingHeight 设为 1080, 另一项类似
将 CustomVideoEncodingHeight 设为 1080, 另一项类似

修改好以上几个值后,重启电脑,录制的视频传到 Apple 设备上就可以正常播放啦,问题解决!🎉

Postscript

前文提到修复录制按钮变灰的问题的方法,也值得被记录下来。

注册表编辑器中前往 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\GameDVR,将 AppCaptureEnabled 设置为 1.

如果看不到 AppCaptureEnabled,在右侧右键单击,选择 新建 > DWORD(32 位)值,名字写为 AppCaptureEnabled,将值设置为 1.

与此同时,这个目录下的其他键也根据命名也能猜个大概功能,可以手动设置视频的码率等(这些选项在 GUI 菜单中未提供),大家自行研究吧,但再次提醒,调整注册表务必谨慎小心!

最后再给自己的小博客打个广告,喜欢可以关注~ https://blog.flynnoct.com/

> 暑期征文 数字文具盒 火热征稿中,分享学习方法,拿走现金奖励 🧑🎓

> 实用、好用的 正版软件,少数派为你呈现 🚀

© 本文著作权归作者所有,并授权少数派独家使用,未经少数派许可,不得转载使用。

Flynnoct

📸Lumix健身器材玩家 👨‍💻技艺不精的网络工程师 ✈️模拟飞行王牌迫降飞行员 🚀起了个名叫@flynnoct


文章来源: https://sspai.com/post/75019
如有侵权请联系:admin#unsafe.sh