miércoles, 30 de diciembre de 2020

Compilación e instalación de obs en Debian 10

 

OBS-Studio

Debian 10


Este tutorial está hecho para hacer funcionar correctamente el programa osb-studio en Debian10.
Anteriormente había compilado el programa en Ubuntu 20.10 y funcionaba bien.
 
El primer paso es crear el directorio donde instalaremos las fuentes del programa.
            mkdir obs
nos introducimos en el directorio creado.
            cd obs
Antes de hacer nada vamos a instalar una serie de paquetes que necesitamos para poder compilar el programa.
Para instalar programas debemos ser root.
Desde una consola tecleamos
            su  ->            contraseña
            sudo apt  install v4l2loopback-dkms v4l2loopback-utils
Para probar que funciona listamos los devices de video antes y después de cargar el módulo.
            ls /dev/video*
            sudo modprobe v4l2loopback devices=1 video_nr=5 card_label=VirtualCam exclusive_caps=1
            ls /dev/video*
Veremos que se creó un /dev/video5 virtual.
Para no tener que crearlo cada vez que queramos ejecutar el osb-studio , hacemos que lo cargue automáticamente al iniciar el sistema.
            echo "options v4l2loopback devices=1 video_nr=5 card_label=VirtualCam exclusive_caps=1" | sudo tee /etc/modprobe.d/v4l2loopback.conf
            echo "v4l2loopback" | sudo tee /etc/modules-load.d/v4l2loopback.conf
Pasemos a instalar otro de los paquetes requeridos ,  checkinstall.
En Ubuntu se encuentra en sus repositorios, pero en Debian 10 no existe este paquete, por lo que he tenido que bajarlo de los repositorios de el próximo Debian 11.
Este paquete sirve para crear el paquete obs-studio.deb, que una vez bajado lo instalamos con la orden:
            sudo dpkg -i checkinstall_1.6.2+git20170426.d24a630-2~bpo10+1_amd64
También debemos añadir a nuestros repositorios  non-free contrib .
Quedaría de la siguiente manera:
            deb http://deb.debian.org/debian/ buster non-free contrib main
Ahora ya podemos instalar todos los paquetes que necesitamos para compilar.
            sudo apt-get install \
             build-essential \
             checkinstall \
             cmake \
             git \
             libmbedtls-dev \
             libasound2-dev \
             libavcodec-dev \
             libavdevice-dev \
             libavfilter-dev \
             libavformat-dev \
             libavutil-dev \
             libcurl4-openssl-dev \
             libfdk-aac-dev \
             libfontconfig-dev \
             libfreetype6-dev \
             libgl1-mesa-dev \
             libjack-jackd2-dev \
             libjansson-dev \
             libluajit-5.1-dev \
             libpulse-dev \
             libqt5x11extras5-dev \
             libspeexdsp-dev \
             libswresample-dev \
             libswscale-dev \
             libudev-dev \
             libv4l-dev \
             libvlc-dev \
             libx11-dev \
             libx264-dev \
             libxcb-shm0-dev \
             libxcb-xinerama0-dev \
             libxcomposite-dev \
             libxinerama-dev \
             pkg-config \
             python3-dev \
             qtbase5-dev \
             libqt5svg5-dev \
             swig \
             libxcb-randr0-dev \
             libxcb-xfixes0-dev \
             libx11-xcb-dev \
             libxcb1-dev \
             libxss-dev
 
Pasamos a usuario normal con:
            exit
Nos toca bajar los ficheros fuente y compilarlos:
            git clone --recursive https://github.com/obsproject/obs-studio.git
            cd obs-studio
            mkdir build && cd build
            cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr ..
            make -j4
Instalamos como root todos los ficheros con:
            su  ->            contraseña
            make install
Pasamos a usuario normal con:
            exit
Ejecutamos el programa:
            obs
Vemos que funciona casi todo, pero no aparece el botón de Iniciar cámara virtual.
Revisando los mensajes que aparecen en la consola cuando ejecutamos el programa, podemos ver un error que nos dice que el módulo v4l2loopback no está cargado.
Nos cercioramos que si está cargado con la orden:
            lsmod
Aquí me puse a investigar este error en internet, encontrando la solución.
            https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1781337.html
En principio explica el programador que no está aún probado suficientemente en Debian sin dar una solución.
Otra persona da una solución, pero en mi caso creo que nhttps://youtu.be/28X_Ix0ZHkko me funcionó, por lo que anule la comprobación, dándola por buena.
No es la mejor solución, pero mientras no saquen el parque lo añadí yo.
Editar el fichero (utilizo como editor pluma) con la orden: https://github.com/obsproject/obs-studio.git
            pluma ../plugins/linux-v4l2/linux-v4l2.c
Busco la parte donde aparece esto:
             {
        bool loaded = false;
        int ret = system("modinfo v4l2loopback >/dev/null 2>&1");
            //inserto a siguiente línea               
                        ret=0;

        if (ret == 0)
                loaded = true;
Ahora ya no comprueba si está cargado el módulo.
Guardamos el fichero y volvemos a compilar:
            make -j4
Instalamos como root todos los ficheros con:
            su  ->            contraseñahttps://youtu.be/0lU4ZRgtTlI
            make install
Pasamos a usuario normal con:
            exit
Ejecutamos el programa:
            obs
Ahora aparece el botón de Iniciar cámara virtual.
 
Si queremos crear el paque obs-studio.deb tecleamos las ordenes.
            su  ->            contraseña
            sudo checkinstall --default --pkgname=obs-studio --fstrans=no --backup=no --pkgversion="$(date +%Y%m%d)-git" --deldoc=yes
Después de esperar un rato nos habrá creado el paquete:
            obs-studio_20201229-git-1_amd64.deb https://github.com/obsproject/obs-studio.git
Este paquete se podrá instalar que cualquier Debian 10 64bits sin necesidad de compilar nada.
 
En anteriores versiones de obs-studio no existía el botón de Iniciar cámara virtual, por lo que se hacía mediante el plugins  obs-v4l2sink.
Vamos a bajar la fuentes y a compilar.
Nos trasladamos al directorio donde habíamos bajado las fuentes del obs-studio.
            cd..
            cd..
            git clone https://github.com/CatxFish/obs-v4l2sink.git
            cd obs-v4l2sink
            mkdir build && cd build
            cmake -DLIBOBS_INCLUDE_DIR="../../obs-studio/libobs" -DCMAKE_INSTALL_PREFIX=/usr ..
            make -j4
Instalamos como root todos los ficheros con:
            su  ->            contraseña
            make install
En el proceso de instalación me di cuenta que el plugins no era copiado en el directorio correcto.
Por lo que manualmente lo copio con la orden:
            cp v4l2sink.so  /usr/lib/obs-plugins/
 
Pasamos a usuario normal con:
            exit
Ya solo tenemos que ejecutar el programa y ver que todo funciona.
            obs
Todos los anteriores pasos los he probado en Debian10 32bits, funcionando perfectamente.
 

VIDEO

           

           

Saludos
Juan Galaz

 

 
Bibliografía: 

https://obsproject.com/
https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1781337.html
https://github.com/obsproject/obs-studio.git
https://github.com/CatxFish/obs-v4l2sink.git
https://youtu.be/0lU4ZRgtTlI

No hay comentarios:

Publicar un comentario