El estudio de Video en Casa: StreamDeck en Linux
En esta serie de artículos veremos trucos, software y hardware para poder grabar y editar los cursos en nuestra casa usando Linux. Para ello veremos una serie de herramientas software y hardware para la grabación, edición y emisión de contenidos online. En esta ocasión veremos cómo usar el StreamDeck en Linux, en concreto en Ubuntu.
StreamDeck son una serie de dispositivos que actuan como teclados personalizados fabricados por Elgato subsidiaria de Corsair. Estos teclados vienen en 3 configuraciones:
- Streamdeck
- Streamdeck Mini
- Streamdeck XL
Los sistemas operativos oficialmente soportados con Window y MacOSX, pero recientemente se ha liberado un software hecho en Python3 que permite su uso en Linux. Con configuraciones tanto en Ubuntu como Fedora. Este software se llama Streamdeck UI.
Streamdeck-UI
El streamdeck ui tiene un repositorio de código en Github donde tenemos las instrucciones de uso y una pequeña guía de funcionamiento.
Instalación Ubuntu
Para instalarlo en Ubuntu disponemos de un script que nos facilita su instalación, pero que detallamos aquí, install_ubuntu.sh :
#!/bin/bash -xe
echo "Installing libraries"
sudo apt install qt5-default libhidapi-hidraw0 libudev-dev libusb-1.0-0-dev python3-pip
echo "Adding udev rules and reloading"
sudo usermod -a -G plugdev `whoami`
sudo tee /etc/udev/rules.d/99-streamdeck.rules << EOF
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0063", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006c", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006d", MODE:="666", GROUP="plugdev"
EOF
sudo udevadm control --reload-rules
echo "Unplug and replug in device for the new udev rules to take effect"
echo "Installing streamdeck_ui"
pip3 install --user streamdeck_ui
echo "If the installation was successful, run 'streamdeck' to start."
Como puede verse en la instalación realiza una serie de pasos:
- instalación de paquetes de Python3, QT5 y del manejo por usb de dispositivos.
- Añadirnos al grupo plugdev
- Crear un fichero de reglas para udev, para detectar los dispositivos
- Recargar las reglas
- Instalación del paquete python3 streamdeck_ui
Ejecución
Para ejecutar streamdeck basta con abrir una consola y ejecutar:
streamdeck
En nuestro caso, tuvimos problemas con la carga de los componente de plataforma de QT:
$ streamdeck
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.
Abortado (`core' generado)
Para resolver este problema creamos un nuevo entorno con anaconda, por ejemplo:
conda create --name streamdeck_env
Después accedemos al entorno creado
conda activate streamdeck_env
Y realizamos la instalación de streamdeck_ui en dicho entorno:
pip3 install --user streamdeck_ui
Creación de un fichero Desktop para facilitar el arranque de la aplicación
Como no vamos a abrir la consola todo el rato para ejecutar el streamdeck-ui, vamos a crea un fichero streamdeck.desktop que colocaremos en la carpeta .local/share/applications:
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=StreamDeck
Comment=Manejo de streamdeck
Exec=streamdeck
Icon=/home/usuario/.local/share/applications/streamdeck.jpeg
Terminal=false
Os dejo el icono a colocar en la misma carpeta:Recuerda cambiar el Icon para que sea el directorio de tu usuario.
En el caso de que tengas problema con el entorno y hayas tenido que crear uno podemos crear un script que permite su lanzamiento sobre ese entorno, lanza_streamdeck.sh:
#!/bin/bash
eval "$(conda shell.bash hook)"
conda activate streamdeck_env
streamdeck &
chmod +x lanza_streamdeck.sh
Nuestro fichero desktop será ligeramente distinto:
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=StreamDeck
Comment=Manejo de streamdeck
Exec=/home/usuario/lanza-streamdeck.sh
Icon=/home/usuario/.local/share/applications/streamdeck.jpeg
Terminal=false
Vale, y ahora ¿Cómo funciona la aplicación?
Pues de una manera parecida a cómo funciona la aplicación original.
Tenemos una serie de páginas, que funcionan como conjuntos de iconos y que son como botones en el streamdeck, dependiendo del tipo de streamdeck tendremos más o menos visibles, en nuestro caso tenemos el Streamdeck norma con 15 teclas. Por defecto nos darán 10 páginas.
Seleccionamos cada tecla y la configuramos indicando:
- Image: el icono que queremos presentar en la tecla.
- Text: el texto a presentar
- Command: el comando a ejecutar
- Press Keys: los atajos de teclado a asociar, por ejemplo para OSB
- Switch page: para cambiar de página, empiezan en 1
- Brightness +/-: para cambiar el brillo de la pantalla
Veamos ahora algunos ejemplos de uso
Iconos
Para los iconos práticamente podemos usar los que queremos, mientras que estén en formato: png, jpeg o gif. Pero DasGeek ha puesto un enlace a reddit donde podemos descargarnos un set de iconos basado en FontAwesome con estilo Streamdeck
Ejemplos de uso
- Chrome:
- Command: google-chrome-stable
- Chromium:
- Command: chromium
- Gmail:
- Command: google-chrome-stable https://mail.google.com/mail/u/0/#inbox
- Atajo de OBS
- Command: wmctrl -xa obs
- Press Keys: ctrl+alt+1
- Acuérdate de crear el atajo en OBS para esa acción, como cambiar de escena por ejemplo.
- Cambio de página
- Switch Page: 2
Importaciones
Pero, ¿Qué pasa si queremos hacerlo de una manera más rápida? Siempre podemos importar algún fichero hecho por otra persona.
Os dejamos un enlace a un fichero configurado para el streamdeck normal, en gist.
Ojo que es posible que tengáis que adaptarlo a vuestro dispositivo si tiene menos teclas, o cambiar el nombre del dispositivo en el fichero antes de importarlo.
Referencias:
- Video de DasGeek: https://www.youtube.com/watch?v=6M0hfmbLfmM
- Set de iconos de Fontawesome par StreamDeck: https://www.reddit.com/r/ElgatoGaming/comments/9b1x77/icon_pack_for_stream_deck_using_font_awesome_v2/
- Fichero de ejemplo json: https://gist.github.com/pepesan/4302c671d88fc2040283de464661dd21
Comments