OBS 项目进度报告,2019 年 9 月

5年前 (2019-09-23)新闻资讯321

欢迎阅读另一期 OBS 项目进度报告。这一次,我们将回顾在第 24 版之前发生的所有重大新闻和更新。


让我们从重大公告开始:


抽搐赞助

我们很高兴地宣布 Twitch 正式赞助 OBS 项目!Twitch 和 OBS 一直密切合作,现在我们正式宣布合作。


你知道生活会有你意想不到的曲折,这有点疯狂。在我做这个项目之前,我很无聊,没有工作,觉得我的生活处于最低点之一。然后我决定用我多年来自学编写游戏引擎、边学边学、努力开发我的第一个开源程序、结识优秀的人、一起工作、建立社区的所有知识来制作这个项目。由于那个单一的决定,我现在能够养活自己;生活会在你最意想不到的时候发生转机。一点运气、大量的努力和一个美妙的社区可以极大地改变一个人的生活。我非常感谢一切:得到这么多优秀用户的支持,与这么多才华横溢的开发人员一起工作,并得到许多慷慨的公司和组织的赞助。它改变了生活。


在这里阅读完整的公告!


现在,OBS 新闻报道时间到了!


为什么浏览器不能只用来浏览

Web 浏览器是地球上最臃肿的东西。每次我想为浏览器源代码或浏览器面板更新 Chromium 时,都会出现很多问题。这主要是因为 Chromium 随着时间的推移不断更新、变化、发展和重构。不幸的是,Chromium 本身的作者并不能真正优先考虑屏幕外表面的使用;他们必须优先考虑他们作为实际网络浏览器的预期用途。这意味着我们这些以不同方式使用 Chromium 的人必须不断适应他们的变化,这是非常痛苦的。


所以这一次,我们从 Chromium 68 (3440) 升级到 75 (3770)。这几乎已经过时了一年。当我们这样做时,整个可见性系统由于 Chromium 中的一个错误而被破坏,该错误仅在特定条件下结合离屏渲染出现。如果您有太多浏览器同时处于活动状态,然后隐藏并显示它们,那么它们将永远停止呈现。最后,我们被迫用 JavaScript 模拟可见性系统(感谢 Ilya 的修复)。


另外,请注意:当我们发布 24 时,我们收到了关于视频设备异常行为的零散报告。一个人的摄像头在 24 之前以一种方式工作,然后当他更新到 24 时,它停止以同样的方式工作。所以我最初认为我们一定做错了什么,我和他一起经历了将存储库一分为二的整个过程,以找出我们可能在代码中破坏了什么。过了一会儿,我感到很困惑,因为我们无法弄清楚它破坏了代码中的什么地方。我检查了所有可能的更改,但没有任何效果;然后我注意到一些非常奇怪的事情:当我从 Chromium 3770 切换回 3440 时,他的设备再次开始正常工作,并且具有完全相同的 OBS 代码!我仔细检查了三遍,果然,只是简单地为他更新 Chromium 导致他的设备以同样的方式停止工作。Chromium 可能是催化剂而不是原因,如果 Chromium 进行更多的设备初始化,资源可能对他来说变得更加有限,从而引发问题。幸运的是,我没有听到更多关于这种严重性的报道。


哦,3770 之后的 Chromium 版本将不再具有我们需要的任何功能,例如硬件加速离屏表面支持、何时渲染帧发出信号的能力,或浏览器源音频重新路由支持。所以.. 在这些功能再次可用之前,我们将无法更新。我只是不开心。


最后但并非最不重要的一点是,我们可能不得不更改为 3729 以修复禁用硬件加速时某些媒体文件遇到的另一个罕见问题。我们可能还需要另一个修补程序来解决这个问题。


什么样的恶梦。有人,请帮忙。从技术上讲,我们有人在帮忙,但我只是……不想使用浏览器。我讨厌浏览器。


我们至少在这个版本中修复了与浏览器面板相关的看似无数的错误,并且我们添加了音频重新路由,所以这很好......我猜。然而,与浏览器一样痛苦的是它们用途广泛且有用,而且网络专家不胜枚举。但我也讨厌浏览器。这是一种复杂的关系。


像往常一样,重要的是要提到我们非常感谢Chromium 嵌入式框架项目 (CEF) 的作者和维护者,这使我们能够以这种方式使用 Chromium,并使我们的浏览器源代码成为可能。他们为我们提供了许多我们使用的重要工具和功能;这是一个不可思议的项目。


浏览器源音频现在可以通过 OBS

浏览器源的音频始终独立于 OBS,由 Chromium 嵌入式框架库播放。现在使用版本 24,可以通过浏览器源属性中的“通过 OBS 控制音频”选项由 OBS 控制音频。启用后,您可以控制混音器中每个浏览器源的音量,应用音频过滤器,或使其仅将其音频输出到流而不是您的扬声器。


实际上,我最初发布 24 时默认启用了此功能,但这是一个错误:它改变了许多用户播放音频的方式,有时人们会设置不同的设备进行监听,造成很多混乱。此外,一些用户的音频监控配置不当,导致音频无法播放。所以我决定在 24.0.1 中更改它,使其默认关闭,除非您明确启用它,否则它具有与 24 之前相同的行为。令人恼火的是,我们在测试数千名用户的候选版本时并没有遇到这些问题;我们只是在发布后才开始收到这些报告。


浏览器源音频重新路由是 Osiris 参与的最后一个项目。我们所有人都会想念他。


自定义可停靠浏览器面板

在 24 中,我们添加了创建自定义浏览器面板的功能;基本上,这意味着您现在可以在 OBS 中调出任何您喜欢的网站作为可停靠面板。您可以通过 View -> Docks 子菜单访问此功能。


在开发这个的同时,它也暴露了一些有趣的错误,所以我很高兴地说,我们修补了各种与浏览器相关的错误,如果我们不写这个,我们就不会发现这些错误。否则可能在极少数情况下发生的错误、冻结和崩溃。


暂停录音

嘿,我期待已久的承诺之一终于实现了。这很痛苦,但它终于来了,而且非常好。我希望它尽可能接近完美;它涉及将视频/音频数据停止到编码器,直到精确的视频帧和精确的音频样本,所以这不是微不足道的。为此,我基本上必须在暂停点和取消暂停点将音频数据拼接在一起。它将尝试尽可能接近地匹配暂停/取消暂停按下的确切时间。


请注意,如果您在流媒体和录制之间共享视频编码器,则此功能将不起作用,这仅仅是因为流媒体需要不断传输数据。因此,出于这个原因,他们必须使用单独的编码器,所以如果您对录制编码器设置使用“与流相同”,那么您需要更改它。


不用说,这将有助于让我们喜欢使用 OBS 进行录制的用户更轻松地进行编辑。我希望你们都觉得它有用。


更新了 Windows 上的所有依赖项

我们不经常在 Windows 上更新我们的依赖项,因为它总是对稳定性有点风险(正如 Chromium 所证明的那样)。在版本 24 中,OBS 使用的所有依赖项(例如 FFmpeg 和 x264)都已更新。这意味着通过软件对编码/解码进行更多优化和改进。


管理项目是一项繁重的工作

作为项目的维护者,我越来越难以自己编写功能并同时合并他人编写的功能;我自己也因为太忙而成为外部贡献的瓶颈。我们现在有一些未决的拉取请求,它们有无数行,将需要大量时间来审查。一个是7000行。它变得有点荒谬。


通常发生的情况是我不得不停止合并拉取请求以便专注于我自己的代码,这意味着拉取请求开始堆积起来。当 24 开始时,我们只有少量的拉取请求,而在制作 24 时,我们大概收到了大约 150 个拉取请求;超过 100 个被合并,现在还有 60 个等待审查。我们收到的捐款数量正在迅速增长,但给予捐款所需的关注可能需要大量工作,因此我们自然需要适应这种情况。


通常,当我们收到 pull request 时,就是贡献者打算向项目中添加他们自己想要的东西的时候。这不一定是我们计划放入的东西,但通常是其他人出于个人原因想要的东西。这样的拉取请求通常很小/很简单,因为大多数人没有足够的经验来添加非常复杂的东西。如果程序员经验丰富,他们很可能不会为开源项目做出太多贡献。因此,有了我们新获得的资金和赞助,我们可以尝试的其中一件事就是赏金;使通过项目工作赚钱成为可能,以便从具有所需专业知识的人那里获得我们需要的功能。如果我们决定采用这种方式,我们将在未来提供更多详细信息,具体取决于我们希望如何采用这种方式。我们'


无论哪种方式,我确实需要减少自己的代码工作,而更多地管理项目并帮助其他人为项目编写代码。这是任何开源维护者最重要的目标之一,现在是我们过渡到那个目标的时候了。


未来的计划

我真正希望看到的程序最大的弱点之一是笔记本电脑的可用性,或者至少与用户就笔记本电脑问题以及如何解决这些问题进行更好的沟通。笔记本电脑几乎总是附带两种视频适配器:一种用于省电,一种用于性能;这允许笔记本电脑在优先级较低的情况下节省电量,因此不会耗尽电池电量。然而,这也会导致捕获问题,因为经常发生的情况是我们要捕获的图像在另一个 GPU 上,这会导致黑屏。而且我们不能先将它复制到 RAM,因为这会对性能产生重大影响,尤其是对于笔记本电脑而言。至少,我们需要告知用户如何在程序本身内修复它并使用变通方法,


我希望看到的另一件事是在某个时候在游戏中覆盖。很大一部分用户使用一台显示器,无论是笔记本电脑还是带有一台显示器的台式机。我们不能要求用户为了能够看到 OBS 上显示的内容而只购买多个显示器。解决这个问题的方法之一是使用可选的覆盖层。但是,我一直非常不喜欢叠加层,因为它们会以某种方式产生影响。那而且它们可能是最难写的东西。我不确定我们是否会得到一个“合适的”覆盖,但在某个时候为单显示器用户提供它会很好。


甚至不要让我开始我想看到的与 macOS 和 Linux 相关的东西。我在之前的博客中已经谈到了这一点,我们仍在努力。他们总是不得不降低优先级,因为没有那么多人使用它们。我对此并不满意,但当你的绝大多数用户都在使用 Windows 时,事情就是这样。


我希望看到更好的状态栏、更好的热键面板、更好的工作室模式、更好的输出设置、更好的第三方插件管理、本机 websockets 支持、撤消/重做、多流输出、游戏内叠加;我可以永远继续下去。这很艰难,因为我们需要做的事情太多了,这太荒谬了。我们想要对程序进行如此多的功能、改进和调整,以至于此时列表似乎无穷无尽。我们计划最终尽可能地解决每一个问题。


另外:Vulkan 捕获即将推出!


24.0 的主要贡献者

除了我自己,jpark37 可能是这个补丁中贡献最大的,做了无数次小的优化和改进,特别有利于那些运行在较弱系统上的人。


pkv 有助于解决动态比特率、浏览器源音频输出到 OBS 以及各种其他浏览器问题。pkv 花了相当多的时间来寻找各种浏览器和音频问题,并构建了我们的 CEF 版本。


Ilya 还花了相当多的时间来修复新 CEF 版本引入的浏览器问题,这不是一件容易的事。在他的帮助下解决了一些问题。


cg2121 总是像往常一样忙碌,添加了磁盘空间不足时自动停止录制的功能,添加了在特定场景处于活动状态时能够暂停的脚本,添加了启用预览按钮,以及其他各种小改进。总是对他的时间非常耐心和慷慨。


Dillon 总是忙于编写自己的改进;他为这个补丁编写了框选择功能,并为即将到来的补丁准备了更多内容。


尽管这些是此补丁的主要代码贡献者,但还有更多人以他们力所能及的方式提供帮助。贡献的很大一部分归功于许多陌生人慷慨地抽出一点时间来进行他们自己的小改进、调整和错误修复。Crowdin 上还有我们出色的翻译人员;没有他们,我们将无法以多种语言分发该程序。我们的支持志愿者慷慨地抽出时间帮助用户解决问题。我们非常感谢所有以他们力所能及的方式帮助该项目的每个人,他们只花了很少的时间。这个社区真是太棒了。


多亏了你,我们不会很快停下来

像往常一样,非常感谢大家使用 OBS。前途一片光明,我们非常感谢大家的支持。这个程序需要很多工作,但这是我遇到过的最好的事情。我们不会很快停止,敬请期待更多。


此软件“仅限学习交流,不能用于商业用途”如用于商业用途,请到官方购买正版软件,追究法律责任与本站无关!

我们每月需支付高额服务器费用,捐赠将保证服务器有更好的配置和稳定运行;非常感谢您的捐赠支持。
(资源收集整理维护不易,敬请珍惜并感谢开发者。)