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

Leave a Reply

*

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Si estás interesado en seguir formándote tenemos una serie de cursos gratuitos: http://cursosdedesarrollo.com/cursos/

También disponemos de algunos cursos de pago por si son de tu interés: https://cursosdedesarrollo.com/tienda/

Curso de Angular: https://cursosdedesarrollo.com/tienda/angular/

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies