fotografia:camaras:streaming:obs
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| fotografia:camaras:streaming:obs [2024/11/09 22:24] – jose | fotografia:camaras:streaming:obs [2025/06/27 06:24] (current) – jose | ||
|---|---|---|---|
| Line 5: | Line 5: | ||
| Rótulo con animación. Hacer un grupo con texto y caja, botón derecho y "Show transaction" | Rótulo con animación. Hacer un grupo con texto y caja, botón derecho y "Show transaction" | ||
| https:// | https:// | ||
| + | |||
| + | ====== 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(" | ||
| + | recognizer = KaldiRecognizer(model, | ||
| + | |||
| + | p = pyaudio.PyAudio() | ||
| + | |||
| + | # Configurar PyAudio para usar PulseAudio (índice 15) | ||
| + | stream = p.open(format=pyaudio.paInt16, | ||
| + | stream.start_stream() | ||
| + | |||
| + | print(" | ||
| + | |||
| + | while True: | ||
| + | data = stream.read(4000, | ||
| + | if recognizer.AcceptWaveform(data): | ||
| + | result = recognizer.Result() | ||
| + | result_json = json.loads(result) | ||
| + | text = result_json.get(" | ||
| + | | ||
| + | # Imprimir el texto detectado | ||
| + | print(f" | ||
| + | |||
| + | # Comparar el texto detectado con el comando esperado | ||
| + | if " | ||
| + | print(" | ||
| + | # Activar la ventana de OBS | ||
| + | subprocess.run([" | ||
| + | # Usa xdotool para simular la pulsación de teclas | ||
| + | subprocess.run([" | ||
| + | |||
| + | # Generar y reproducir el mensaje de audio en los auriculares Bluetooth | ||
| + | tts = gTTS(" | ||
| + | tts.save(" | ||
| + | # Reproducir el archivo de audio con mpv | ||
| + | subprocess.run([" | ||
| + | # subprocess.run([" | ||
| + | os.remove(" | ||
| + | |||
| + | </ | ||
| + | |||
| + | ====== Configurar cámara SRT ====== | ||
| + | Para añadir una cámara por SRT tenemos que añadir "Media Source" | ||
| + | |||
| + | Desmarcar " | ||
| + | |||
| + | {{: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | 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 " | ||
| + | Y configuramos OBS con: | ||
| + | udp:// | ||
| + | ====== Configuración OBS instagram ====== | ||
| + | Configuración en vertical 1280x720 | ||
| + | |||
| + | ====== Texto con Curva ====== | ||
| + | Creamos el siguente fichero html: | ||
| + | |||
| + | < | ||
| + | <svg width=" | ||
| + | < | ||
| + | <path id=" | ||
| + | </ | ||
| + | <text width=" | ||
| + | < | ||
| + | Colla Castellera de Madrid | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Añadimos el fichero como Source/ | ||
| + | |||
| + | ====== Instalación Plugin ====== | ||
| + | Plugin para programar cambios de sources con tiempo: | ||
| + | flatpak install com.obsproject.Studio.Plugin.SceneSwitcher | ||
| + | | ||
| + | ====== Grabar todas las cámaras y emitir para poder hacer repetición ====== | ||
| + | Para poder grabar todas las cámaras se puede instalar el plugin " | ||
| + | |||
| + | Otra forma que creo que es mas egiciente es con el proxy con ffmprg. | ||
| + | |||
| + | Lanzamos el proxy con ffmpeg con comando reuse para poder conectar OBS y grabar para las 3 cámaras: | ||
| + | ffmpeg -fflags nobuffer -i " | ||
| + | ffmpeg -fflags nobuffer -i " | ||
| + | ffmpeg -fflags nobuffer -i " | ||
| + | |||
| + | Grabamos cada cámara en un fichero: | ||
| + | ffmpeg -i " | ||
| + | Y configuramos OBS para cada cámara | ||
| + | udp:// | ||
| + | |||
| + | Ahora podemos añadir un " | ||
| + | |||
| + | También podemos hacer la grabación cada 10 minutos para que haga vídeos mas pequeños: | ||
| + | ffmpeg -i udp:// | ||
| + | |||
| + | Otra opción es grabar 1 fichero grande y luego sacar uno pequeño con el cmoando: | ||
| + | Con duración | ||
| + | ffmpeg -ss INICIO -i CAM_1.mkv -t DURACION -c copy CAM_1_001.mkv | ||
| + | O con tiempo: | ||
| + | ffmpeg -ss INICIO -to DURACION -i CAM_1.mkv -c copy CAM_1_001.mkv | ||
fotografia/camaras/streaming/obs.1731191048.txt.gz · Last modified: by jose
