LensLink
IdiomaES

Panel de control en el navegador

El plugin ofrece los controles de cámara de la pantalla En vivo en http://localhost:9980, en una ventana del navegador que puedes dejar junto a OBS. Nadie tiene que tocar el teléfono.

Abrirlo#

Abre http://localhost:9980 en la computadora donde se ejecuta OBS. El panel está activado de forma predeterminada; el interruptor está en Herramientas → Ajustes de LensLink → Panel de control en el navegador.

Solo en local. El panel escucha en 127.0.0.1, así que nada de la red puede acceder a él. Es a propósito, porque puede iniciar cámaras y no tiene autenticación.

Puerto del panel (de forma predeterminada 9980) es un ajuste de todo el plugin, por si otro programa ya usa ese puerto.

Qué contiene#

Los mismos controles que el panel En vivo de la app, en el mismo orden:

Refleja los cambios hechos en el teléfono, y se detiene mientras arrastras para no pelearse nunca con tu mano. Una fuente LensLink Screen no tiene controles de cámara, y el panel lo indica en lugar de mostrar controles deslizantes inútiles.

La API HTTP#

El panel es un cliente de una pequeña API HTTP en el mismo puerto; un stream deck o un script pueden ser otro. Todos los endpoints aceptan un ?src=<id> opcional; si no se indica, el plugin elige la primera fuente adecuada.

Leer el estado#

SolicitudDevuelve
GET /api/sourcesTodas las fuentes: id, name, connected, standby, screen.
GET /api/statusEl texto de status (en el idioma de OBS), su tone (idle, wait, ready, live o error, para darle color sin leer el texto), además de screen, standby, connected, autoStart y la fase sync de la sincronía labial.
GET /api/diagnosticsEl informe de diagnóstico completo en texto plano: versiones, hardware, ajustes y estado de cada fuente. El mismo contenido que el botón de Herramientas → Ajustes de LensLink.
GET /api/stateLa última instantánea del estado de la cámara del teléfono: lentes, zoom, exposición, enfoque, balance de blancos, formatos admitidos. Es la misma caché que leen las propiedades de la fuente, y así es como las tres superficies se mantienen sincronizadas.

Enviar comandos#

POST /api/control acepta un comando JSON por solicitud. Los comandos desconocidos se ignoran a propósito, de modo que un panel más nuevo con una app más antigua pierde funciones en lugar de romperse.

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 }
SolicitudEfecto
POST /api/autostart{"on":true|false}: la misma propiedad que edita la casilla de inicio automático. Un cuerpo vacío se rechaza, no se interpreta como false.
POST /api/recalibrateSin cuerpo. Inicia una nueva medición de la sincronía labial.

Ejemplos#

# 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

Desactivarlo#

Desmarca Panel de control en el navegador en Herramientas → Ajustes de LensLink. El puerto se cierra de inmediato; todo lo demás sigue igual.