LensLink
语言ZH

浏览器控制面板

插件在 http://localhost:9980 上提供直播界面中的摄像头控制,你可以把这个浏览器窗口放在 OBS 旁边。谁都不用去碰手机。

打开面板#

在运行 OBS 的电脑上打开 http://localhost:9980。面板默认开启,开关位于工具 → LensLink 设置 → 浏览器控制面板。

仅限本机回环。面板绑定在 127.0.0.1 上,网络上的任何设备都无法访问它。这是有意为之,因为它能启动摄像头,而且没有身份验证。

如果该端口已被其他程序占用,可以修改面板端口(默认 9980),这是一项插件全局设置。

面板上有什么#

与 App 直播界面的控制项相同,顺序也相同:

面板会同步手机上所做的更改,你拖动时则暂停同步,因此不会和你的操作较劲。LensLink Screen 来源没有摄像头控制,面板会直接说明这一点,而不是显示无效的滑块。

HTTP API#

面板只是同一端口上一个小型 HTTP API 的客户端之一;Stream Deck 类设备或脚本也可以是另一个客户端。每个接口都接受可选的 ?src=<id>;不带它时,插件会选择第一个合适的来源。

读取状态#

请求返回
GET /api/sources所有来源:id、name、connected、standby、screen。
GET /api/statusstatus 文本(使用 OBS 的界面语言)及其 tone(idle、wait、ready、live 或 error,用于在不读取文本的情况下为其着色),另有 screen、standby、connected、autoStart 以及音画同步阶段 sync。
GET /api/diagnostics纯文本形式的完整诊断报告:版本、硬件、设置以及每个来源的状态。内容与“工具 → LensLink 设置”中的按钮相同。
GET /api/state手机最近一次的摄像头状态快照:镜头、变焦、曝光、对焦、白平衡、支持的格式。来源设置读取的也是同一份缓存,三个界面正是靠它保持同步。

发送命令#

POST /api/control 每次请求接受一条 JSON 命令。未知命令会被有意忽略,因此较新的面板配合较旧的 App 时只会功能降级,而不会出错。

POST /api/control
{ "cmd": "zoom",          "value": 2.0 }
{ "cmd": "exposure_bias", "value": -0.5 }
{ "cmd": "exposure",      "mode": "manual", "iso": 400, "shutterSeconds": 0.004 }
{ "cmd": "exposure",      "mode": "auto" }
{ "cmd": "focus",         "mode": "locked", "lensPosition": 0.42 }
{ "cmd": "focus",         "mode": "auto" }
{ "cmd": "white_balance", "mode": "locked", "temperature": 5600 }
{ "cmd": "white_balance", "mode": "auto" }
{ "cmd": "flashlight",    "on": true }
{ "cmd": "flip" }
{ "cmd": "start_stream" }
{ "cmd": "stop_stream" }
{ "cmd": "set_format",    "resolution": "1080p", "fps": 60, "codec": "hevc" }
{ "cmd": "mic",           "id": "builtin:2" }
{ "cmd": "green_screen",  "on": true, "maxDistance": 2.5 }
请求效果
POST /api/autostart{"on":true|false}:与自动启动复选框修改的是同一个设置。空请求体会被拒绝,而不会被当作 false。
POST /api/recalibrate无请求体。开始一次新的音画同步测量。

示例#

# Start the camera on the only connected phone
curl -X POST http://localhost:9980/api/control -d '{"cmd":"start_stream"}'

# Zoom the source with id 2 to 3x
curl -X POST 'http://localhost:9980/api/control?src=2' -d '{"cmd":"zoom","value":3.0}'

# What is connected right now?
curl -s http://localhost:9980/api/sources

关闭面板#

在工具 → LensLink 设置中取消勾选浏览器控制面板。端口会立即关闭,其他一切不受影响。