一、OSC简介OSC是一种通过网络发送“控制消息”的通信协议主要用于实时控制音频、视频、灯光、多媒体设备。它本质上是“告诉另一个设备做什么”的消息格式。其官方简介为https://opensoundcontrol.stanford.edu/比如播放视频、调整音量到 50%、让灯光变红、切换场景、设置摄像机位置、这些都可以通过 OSC 消息发送。二、Open Stage Control简介Open Stage Control是一个自定义 OSC 控制面板软件。其用途是做一个自定义 OSC 控制面板用户可以“自己画一个遥控器”然后通过OSC协议控制其它软件或硬件。比如手机/平板 → Open Stage Control → OSC → 灯光控制台电脑 → Open Stage Control → OSC → QLabRK3588 → Open Stage Control → OSC → 播放控制程序Open Stage Control → OSC → 音视频播放器特点✅ 免费✅ 开源✅ Windows / Linux / macOS✅ 支持触摸屏✅ 可以自己设计按钮、滑块、开关✅ 双向 OSC发送 接收✅ 非常适合控制QLab、TouchDesigner、Resolume、GStreamer播放器、自研RK3588设备。源码下载地址为https://framagit.org/jean-emmanuel/open-stage-control软件下载地址为https://openstagecontrol.ammd.net/官方文档为http://10.111.222.1:63569/docs/getting-started/introduction/三、Open Stage Control 的工作方式它采用WiFi / Ethernet 手机浏览器 | | v Open Stage Control Server (电脑运行) | | | OSC UDP | v 被控制设备 (Qlab / 灯光台 / RK3588播放器 / 自研程序)它本身不是控制设备而是UI OSC消息生成器。例如你放一个按钮[播放] 点击 发送: /player/play 1 设备收到 OSC address: /player/play value: 1 然后执行相应的播放逻辑。Open Stage Control默认发送 OSC 通常走 UDP也就是OSC over UDP。四、Open Stage Control 的使用以v1.30.4版本为例介绍Open Stage Control 的使用。一配置界面启动Open Stage Control后会进入它的启动配置界面Launcher让用户配置服务器、OSC端口、加载工程文件session等参数比如1.send这里填写目标设备地址。例如192.168.31.163:9000就是发 OSC 到这个设备udp://192.168.31.163:90002.osc-portOSC输入端口。例如其它设备给 Open Stage Control 发反馈RK3588|OSC|Open Stage Control监听这个端口。设置好后直接点左上角的 ▶ 按钮启动Open Stage Control 服务进入主界面菜单主界面菜单如下二Open Stage Control作为客户端发送指令主界面菜单中点击”New session“会创建一个新的空白控制界面session相当于创建一个新的.json 工程第一次使用必须点这个点击后会进入一个空白画布。此时默认是编辑模式1.添加第一个按钮进入编辑模式后在空白区域鼠标右键应该出现Add widget。选择Button就会生成一个按钮2.设置按钮 OSC选中按钮右侧属性设置。例如label: PLAY address: /player/play value:1按快捷键“Ctrl E”退出编辑模式时然后你会看到编辑框消失、控件可以正常点击这样直接点击按钮会发送/player/play 13.发送复杂指令如果希望点击按钮后可以发送复杂的指令比如json格式的数据{ messageId: f7e6d5c4b3a2f7e6d5c4b3a2f7e6d5c4, messageType: playlistCutIn, payload: {\playlistId\:1016,\action\:true}, datetime: 2026-07-15 14:30:12, client: 12345689, reply: true, deviceId: 106, address: xxxxx }则可以设置按钮OSC即设置scripting的onTouch为if (event.type start) { const command { messageId: f7e6d5c4b3a2f7e6d5c4b3a2f7e6d5c4, messageType: playlistCutIn, payload: JSON.stringify({ playlistId: 1016, action: true }), datetime: 2026-07-15 14:30:12, client: 12345689, reply: true, deviceId: 106, address: xxxxx } send( 192.168.31.163:9000, /rk3588/message, { type: s, value: JSON.stringify(command) } ) }即三Open Stage Control作为服务端接收指令1.添加text控件编辑模式Add widget - text这样会生成一个text2.设置 text控件的OSC如果希望Open Stage Control可以接收复杂的指令比如json格式的数据。则可以设置text控件的OSC即设置scripting的onTouch为if (value) { try { const response JSON.parse(value) set( reply_pretty, JSON.stringify(response, null, 2), { send: false, script: false } ) } catch (error) { set( reply_pretty, String(value), { send: false, script: false } ) } }即这样当设备给Open Stage Control返回响应text控件就能显示接收到的响应。