Subscribete al Sitio!

Intentaremos no mandarte Spam. En serio.

miércoles, 11 de enero de 2017

Transmisiones en vivo con Canon EOS 550D y OBS en Ubuntu 14.04

Hace poco me surgió el siguiente reto: conectar una cámara Canon EOS Digital Rebel 550D (T2i) a una compu en Ubuntu 14.04 y usarla como Webcam para hacer transmisiones en vivo al Internet.



Primero lo primero. ¿Qué alternativas de programas Open Source cuento para hacer livestreams al Internet? Los más populares son quizá el Producer y el Studio de Livestream. Son gratuitos con una versión pagada mucho más completa pero que solo existen en Windows y Mac.

Castawesome es una alternativa interesante, pero al final me he decidido por OBS (Open Broadcaster System). Tiene transiciones, efectos y es un poco parecido al After Effects de Adobe.

Para instalarlo en Ubuntu 14.04, necesitamos primero instalar ffmpeg:

sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
sudo apt-get update && sudo apt-get install ffmpeg

Luego para instalar OBS:

sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt-get update && sudo apt-get install obs-studio

Ya con esto ahora pasamos al siguiente tema: ¿Cómo conectar la cámara DSLR al equipo como webcam?

Buscando en Internet, encontré este sitio que sugiere una forma para hacerlo y es por medio de la linea de comandos y utilitario del gphoto2. La lista de cámaras que están soportadas con esta librería la encuentras acá.

Para instalarlo puedes irte al sitio del proyecto, descargarlo (es un tar.gz) y compilarlo. Pero esta aplicación ya está en los repositorios oficiales de Ubuntu por lo que me fuí a instalarlo directamente desde el Centro de Software.

Conectamos la cámara usando el cable A/V Out hacia el USB. Encendemos la cámara. y ejecutamos en una terminal el siguiente comando:

gphoto2 --abilities


Aquí podremos ver si nuestra app reconoce la cámara.

Lo siguiente es instalar el "v4l2loopback kernel module" para hacer una cámara virtual (Dummy)

sudo apt-get install v4l2loopback-utils

Si todo va bien ejecutar lo siguiente:

modprobe v4l2loopback

gphoto2 --capture-movie --stdout | gst-launch-0.10 videotestsrc ! v4l2sink device=/dev/video1

Y ahora podemos usar el dispositivo /dev/video1 como entrada de captura.

OJO que un problema que tuve fue que el Ubuntu abre el explorador de archivos para descargar las fotos de la memoria SD. En este enlace sugieren desinstalar una librería para poder tener acceso a la cámara sin que lo bloquee otro programa. Yo al final no utilicé este método.

Algo que también debes de hacer en tu cámara es ponerla en modo LiveView o en modo de vídeo previamente.

Muy bien, con todo y esto el OBS no me reconocía el stream de entrada de la cámara dslr.  Le estuve dando muchas vueltas y por este método no conseguí nada. :(



Un vídeo de Youtube sugería usar UVC Viewer (que es un programita un poco similar la Cheese que esta incluído en Ubuntu) pero tampoco resolví nada.

Así que me fuí por este otro método. EOS-MovRec es un programa para darle capacidades de vídeo a cámaras DSLR de Canon que no tenían la opción de tomar vídeo. Con este programa puedes desde la compu utilizar los controles de enfoque de la cámara y capturar vídeo y guardarlo como MOV en la compu.

El programa ya tiene PPA, así que para instalarlo:

sudo add-apt-repository ppa:dhor/myway

sudo apt-get update

sudo apt-get install eos-movrec



Ahora uso este programa para ver en pantalla lo que esta visualizando la cámara dslr y luego desde el OBS en vez de agregar a la escena un dispositivo de captura de vídeo agrego una captura en pantalla. Le puedes recortar los bordes para que durante la transmisión no salgan los controles del programa EOS-MovRec.



Espero les sirva de ayuda.

0 comentarios:

Publicar un comentario