Quiero hacer una transmisión en vivo de (una ventana en) mi escritorio de Linux usando un sitio de transmisión gratuito, usando el video capturado como una cámara web falsa. Hay muchas herramientas para esto en Windows. ffmpeg me permite capturar la entrada en una ventana específica, pero no puedo encontrar una manera de emitir el video a un dispositivo falso estilo webcam que se puede usar con flash.
¿Alguien puede recomendar un método (o software) para hacer esto?
linux
ffmpeg
screencasts
virtual-webcam
bkconrad
fuente
fuente
Respuestas:
Puede instalar v4l2loopback . Es un módulo del núcleo que simula una cámara web. Cárgalo con:
Luego debe enviar la transmisión de video al dispositivo / dev / video0 usando un programa como ffmpeg. Para capturar el escritorio y reenviarlo a / dev / video0 con ffmpeg, puede usar la siguiente línea de comando:
Cambie el valor de -r de 15 a otra cosa si desea una velocidad de fotogramas diferente. La resolución se elige en el parámetro -s. Si desea especificar un desplazamiento desde la esquina superior izquierda de la pantalla, páselo en el parámetro -i en la forma "-i: 0.0 + x, y", donde x e y son el desplazamiento horizontal y vertical respectivamente.
fuente
[x11grab @ 0x24013c0] Stream #0: not enough frames to estimate rate; consider increasing probesize
,[v4l2 @ 0x2409520] ioctl(VIDIOC_G_FMT): Invalid argument
yCould not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Use v4l2loopback con mplayer .
make
ysu -c 'make install'
),su -c 'modprobe v4l2loopback'
,luego cambie una línea en el archivo
examples/yuv4mpeg_to_v4l2.c
de la carpeta de origen v4l2loopback dea
y hacer
make
en esta carpeta.Luego ejecútelo desde el
examples
directorio así:donde reemplazas
movie.mp4
con el nombre de tu archivo de video. Y reemplace/dev/video0
con su dispositivo de bucle invertido.MPlayer puede reproducir cualquier transmisión web, todo tipo de archivos de video, ¡incluso desde stdin! Lo acabo de probar con un archivo de http://www.tagesschau.de que es un sitio de noticias alemán.
En lugar de $ TS, podría poner un
-
(que significa stdin). Y frente a mplayer, su comando ffmpeg redirige su salida a stdout. Entonces algo como:No probé el último, porque no dijiste cómo se ve tu comando ffmpeg.
fuente
./yuv4mpeg_to_v4l2 < /dev/video0 &
conduce a./yuv4mpeg_to_v4l2: : missing YUV4MPEG2 header
. ¿Cómo reemplazar/tmp/pipe
por/dev/video0
?¿Qué distro está usando? He tenido éxito con WebCamStudio en Arch combinado con el "estudio" basado en la web Livestream. Sin embargo, ha pasado un tiempo desde que lo usé.
http://www.ws4gl.org/
¿Qué estás tratando de hacer exactamente? ffmpeg compilado con x11grab puede grabar el escritorio. He tenido un éxito limitado al enviar eso a Ustream, pero nuevamente ha pasado un tiempo y creo que lo que estaba haciendo ya no funcionará.
Si solo desea transmitir un archivo en lugar de su escritorio (estoy pensando cuando dice "Una ventana", quiere decir, "VLC"), puedo orientarlo en la dirección correcta para que funcione con Livestream (tal vez Ustream). Estoy descubriendo torpemente cómo hacer esto a través de la experimentación. No es fantástico, pero funciona con Livestream.
Justin.tv también tiene scripts que pueden transmitir desde VLC a su servicio.
http://apiwiki.justin.tv/mediawiki/index.php/Linux_Broadcasting_API
fuente
Primero, parece que probablemente haga lo que quiera sin ningún problema (no estoy afiliado): http://appear.in/
En segundo lugar, puede transmitir a Twitch u otros servicios utilizando OBS, que recientemente agregó soporte para Linux (!): Https://obsproject.com/
OBS también resuelve el problema mucho más difícil de mezclar el sonido del sistema y la entrada de audio durante la captura de pantalla en Ubuntu (no resuelto por nada en el
universe
repositorio que he encontrado hasta ahora).No tengo ninguna solución increíble de Unix-y. Pero eso funcionó para mí en el mundo real.
fuente