当前位置: 首页 > news >正文

教会音控组侍奉中的工序主义实践

两年前在教堂播放过一段时间PPT。
这个工作的主要内容是,在开场前播放一些简介性的幻灯页。
开场后一般为赞美团献唱,播放歌词PPT,这种PPT背景是黑色的,歌词为黄色文字,黑色被镂空,黄色文字叠加在摄像头画面,在投影呈现效果就是人在唱歌,下方显示有歌词。我需要在即将唱下一句时按空格切下一页,每页一句歌词。
在一首歌结束后,赞美团里报幕的姊妹要报幕,此时需要将PPT淡出,淡出后就仅有摄像头画面。
我们使用一个名为Grand VJ的软件混合PPT输出和摄像头采集传入的视频信号,我们可以将它理解为类似Photoshop图层的事物。例如PPT输出被分配到6,摄像头分配到7。通过一个这样的MIDI滑轨硬件设备能调节图层的透明度:
image
例如6号滑轨推到最上,则PPT输出完全不透明,推到最下则完全透明。

在报幕时要迅速将6号滑轨拉下。这时可以将下一首歌的标题幻灯页切入。由于PPT透明,会众看不到PPT已经是下一首歌的标题了。

报幕完毕后就只要将滑轨推上去,标题就显现出来了。

献唱完毕牧师上讲台讲道时,要将镜头推到讲台位置。

我们使用这样的设备控制摄像机:
image

摇杆可以控制方向和缩放,非常灵活,但是操作难度也很高,幸运的是它可以预存几个机位,这样只要按下预存1机位就能漂移到讲台,按下预存2机位就能漂移到诗班,不过这个漂移有这样那样的问题,很多时候还是要手工操作。

在讲道时经常需要在完全摄像头和完全文字信息的幻灯页之间的切换。也就是说牧师在说话,接下来要载入的PPT是一张整张内容的信息。这时要迅速将6号滑轨拉到最低同时将7号滑轨推到最高。这需要很快的手速,熟练了可以一个指头按在6号上,一个指头按在7号上,一个上推一个下拉,迅速完成。

有时还需要在回到讲台后像前面说的歌词那样叠加一行关于讲道信息的字,例如讲道题目。那么就需要先将6号滑轨拉下,7号滑轨推上,切页,6号滑轨推上。

过去侍奉做的很好的弟兄姊妹可以行云流水一般完成这套动作,而作为新成员一般需要两个人,一个负责切PPT,一个负责推拉滑轨和摇杆,即使如此也很难不出纰漏。

我开始琢磨,应该写一个小软件自动操作控制VJ的软件滑杆,免得推上拉下手忙脚乱,随后我产生了一个更究竟的想法。然而后面一直没有契机,也就束之高阁了。幸运的是,感谢神,现在已经实现了。

这是现在PPT的备注:
image

这就是我当初设想的究极形态!

上个月我在升级电脑时发现教会一直还在用一个名为OBS Studio 的软件,这个软件用于直播推流,也就是说除了 Grand VJ 还有一个 OBS Studio。在不经意的接触中我发现这个OBS非常有意思,界面更友好,似乎能覆盖 VJ 的功能,这样一来好像有机会砍掉VJ。根据奥卡姆剃刀法则,能砍掉一个是一个,何况VJ操作很不友好。

在研究如何用OBS替代VJ的过程中,我发现这是一个广泛使用的开源直播软件,社区非常发达,有一大堆插件。

带着对究极形态的渴望,我找到一个PTZ Controls插件,https://github.com/glikely/obs-ptz 感谢作者Grant Likely! 这个插件可以在OBS Studio中直接控制摄像机!

经过各种探索,最终我用一根USB转RS 422 的线连上了摄像机,实现了OBS Studio控制摄像机,并且原来那个摇杆键盘也能继续工作。

我将各个环节处理为OBS场景,例如诗班献唱分诗班献唱(底字)、报幕、诗班献唱(纯PPT)三个场景。每个场景包括机位、摄像头是否显示、PPT是否显示等等内容。这样只要在相应环节点击OBS场景就能转动摄像头,切换源混合模式。

接下来,我让AI vibe coding 了一个 PowerPoint插件,这个插件连接 OBS Studio 的WebSocket服务器,读取PPT页的备注,当备注为”OBS:场景名”时,让OBS Studio 切换为备注场景。

现在,打开一个带有场景控制备注的PPT,按F5播放,按空格切换下一页,一旦读到场景为“讲道(讲台)”,OBS自动将镜头对准讲台,并且只输出PPT画面;一旦读到场景为“献唱(底字)“,OBS自动将镜头对准唱诗班,PPT镂空输出歌词。

这里出现了一种有趣的幻灯页,它有场景备注,能切换场景,但是在场景中不显示PPT输出,这样这种页就不会出现在OBS混合结果中,成为了专门控制场景的页。

那么之前推拉滑轨实现的透明度变化呢?OBS场景切换支持淡入淡出!之前的人工推拉动作其实就是淡入淡出而已。

至此,侍奉的弟兄姊妹只要按空格键让PPT翻页,摄像机、混合模式等等全都不需要操心,新人10分钟即可上手,对我这样的手残党极为舒适。
这种改造方案的本质说起来就是我多年前分享的工序主义设计,工序主义的特点就是让前导工序为后面的工序提供更多的上下文信息,因为前导工序往往知晓更丰富的上下文,这样后面的工序就可以大大简化,甚至能自动化。

工序主义的改造离不开参与流程的人的积极配合,在一个KPI化的部门壁垒森严的组织,前导工序对后面的工序往往处于不同部门,从职责上没有配合义务,推进难度可想而知。

幸运的是教会的弟兄姊妹非常开通,在看完演示后立即领悟并且当作自己的事情全力推进,经过两周试验后已经稳定运行起来了。

上面说PowerPoint插件是AI生成的,这是真的吗?AI的确能迅速生成很多小软件,在试验PTZ的过程中我急需一个COM转UDP的程序,没想到这种软件竟然还要收费!AI立即就给我生成了一个,迭代了不到2小时就能稳定工作了。这个OBS场景联动插件AI生成了一个底子,但由于通信协议问题,用原始的 WebSocket方式不能顺利工作,最终还是靠自己合并了一个 C# 的 OBS 客户端才真正工作起来。AI写完整项目有待探索,最起码写脚手架的确很轻松。

http://www.hskmm.com/?act=detail&tid=25734

相关文章:

  • 用 Kotlin 调用 Tesseract 实现验证码识别
  • Kotlin 调用 Tesseract 实现验证码识别
  • Dart 调用 Tesseract 实现验证码识别
  • Audacity导出音频后发声提醒
  • 做一个会Debug的程序员
  • 深度噪声抑制技术在语音增强中的突破
  • APUE学习笔记之UNIX标准及实现(二) - Invinc
  • 存一下刚开始学编程的东西
  • 线性偏微分方程和非线性偏微分方程的区别
  • 基于AXI模块的视频流传输(ps控制篇)
  • lora的各种变体
  • Kubernetes Deployment:部署与管理应用指南
  • GO+RabbitMQ+Gin+Gorm+docker 部署 demo - 实践
  • Python测试
  • 免费文字转语音 AI 工具 All In One
  • 【闲话】2025.9.24 记梦
  • 酷派Cool20/20S/30/40手机安装Play商店-谷歌三件套-GMS方式
  • Cloudflare洛杉矶数据中心维护通知:技术架构与影响解析
  • 实验
  • StarTree支持Apache Iceberg扩展湖仓用例
  • 偏微分方程的解
  • selenium基础 - 教程
  • 2025.10.6模拟赛
  • 费马小定理的证明
  • 威尔逊定理的证明
  • 实用指南:HTML实现端午节主题网站:龙舟争渡,凭吊祭江诵君赋
  • 深入解析:rknn优化教程(一)
  • WannaCry勒索病毒数字取证与安全监控实战指南
  • 吴恩达深度学习课程一:神经网络和深度学习 第二周:神经网络基础(二)
  • 08. 自定义组件