User Tools

Site Tools


fotografia:camaras:streaming:obs

This is an old revision of the document!


OBS

Texto dinámico que lo coge de un fichero de texto
https://www.youtube.com/watch?v=78CcCbUYwgg

Rótulo con animación. Hacer un grupo con texto y caja, botón derecho y “Show transaction” y “hide transaction” y se puede hacer que aparezca de derecha a izquierda
https://www.youtube.com/watch?v=1KhTqnv1SWE

Configurar tecla con voz

import pyaudio
from vosk import Model, KaldiRecognizer
import json
import subprocess
from gtts import gTTS
import os

# Cargar el modelo de Vosk
model = Model("vosk-model-es-0.42")
recognizer = KaldiRecognizer(model, 16000)

p = pyaudio.PyAudio()

# Configurar PyAudio para usar PulseAudio (índice 15)
stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=8000, input_device_index=15)
stream.start_stream()

print("Esperando el comando de voz 'abracadabra rótulo uno'...")

while True:
    data = stream.read(4000, exception_on_overflow=False)
    if recognizer.AcceptWaveform(data):
        result = recognizer.Result()
        result_json = json.loads(result)  # Convertir a JSON para extraer el texto
        text = result_json.get("text", "")  # Obtener el texto reconocido
        
        # Imprimir el texto detectado
        print(f"Texto detectado: {text}")

        # Comparar el texto detectado con el comando esperado
        if "abracadabra rótulo uno" in text.lower():
            print("Comando detectado: Lanzando teclas 'ctrl + super + 1'")
            # Activar la ventana de OBS
            subprocess.run(["xdotool", "search", "--name", "^OBS.*Profile: Youtube Jose", "windowactivate"])
            # Usa xdotool para simular la pulsación de teclas
            subprocess.run(["xdotool", "key", "ctrl+super+1"])

            # Generar y reproducir el mensaje de audio en los auriculares Bluetooth
            tts = gTTS("rótulo uno ok", lang='es')
            tts.save("mensaje.mp3")
            # Reproducir el archivo de audio con mpv
            subprocess.run(["mpv", "--audio-device=pipewire", "mensaje.mp3"])
#            subprocess.run(["mpv", "--audio-device=pipewire/bluez_output.6F_32_EA_6B_C2_86.1", "mensaje.mp3"])
            os.remove("mensaje.mp3")  # Elimina el archivo después de reproducirlo

Configurar cámara SRT

Para añadir una cámara por SRT tenemos que añadir “Media Source”

Con linux en la version 30 por temas de buffer se corta cada 5 segundos. He actualizado a la 31 y sin problema. Pero por si acaso esta es la solución:
Ponemos un servidor proxy con ffmpeg en medio que haga de proxy a UDP:

fmpeg -fflags nobuffer -i "srt://192.168.2.11:4201" -f mpegts udp://127.0.0.1:5001

Y configuramos OBS con:

udp://127.0.0.1:5001

Configuración OBS instagram

Configuración en vertical 1280×720

Texto con Curva

Creamos el siguente fichero html:

<svg width="500" height="200">
  <defs>
    <path id="curve" d="M 50 150 Q 250 100 450 150" />
  </defs>
  <text width="500">
    <textPath href="#curve" startOffset="50%" text-anchor="middle" font-size="32" fill="white">
      Colla Castellera de Madrid
    </textPath>
  </text>
</svg>

Añadimos el fichero como Source/Browser

fotografia/camaras/streaming/obs.1750951822.txt.gz · Last modified: by jose