Se puede hacer streaming de una ventana de una app?

Iniciado por WHK, 24 Marzo 2016, 23:03 PM

0 Miembros y 1 Visitante están viendo este tema.

WHK

Hola, existe alguna app de preferencia terminal que me permita hacer streaming del contenido de una ventana determinada? pero no que grabe la pantalla sino el contenido de la ventana ya que quiero hacer un script que cuando alguien haga click a un boton desde una pagina web levante una app y le haga streaming y este puede ser abierto varias veces al mismo tiempo levantando varias ventanas una tras otra.

Lo quiero hacer para hacer streaming de logstalgia y tener un visor online en tiempo real junto a otras apps sinilares. esto es posible?

WHK

Estaba averiguando y ligstalgia ofrece la salida en formato ppm con el argumento --output-ppm-stream y segun la documentación oficial es posible crear un output stream con ?-? , ahora, ffmpeg permite convertir ppm a mp4 pero como le redirijo el stream? y ... es posible que ffmpeg redirija el output stream a un stream web via udp o algo similar? de esa manera será mas facil tener un servicio que haga el stream via web en el mismo navegador.

WHK

#2
Bueno esto es lo que he averiguado, que logstalgia puede funcionar como output stream y hacer un pipe hacia ffmpeg directamente:

Leer log: (funciona)
Citarssh whk@server "tail -f /var/log/httpd/global_access_log"

Leer log -> Logstalgia: (funciona)
Citarssh whk@server "tail -f /var/log/httpd/global_access_log" | logstalgia --sync

Leer log -> Logstalgia -> Guardar video en formato ppm: (funciona)
Citarssh whk@server "tail -f /var/log/httpd/global_access_log" | logstalgia --sync --output-ppm-stream out.ppm

Convertir video: (funciona)
Citarffmpeg -y -r 60 -f image2pipe -vcodec ppm -i output.ppm -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 nginx.server.log.mp4

Logtslgia -> Convertir video: (funciona)
Citarlogstalgia -1280x720 -o - access.log | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 logstalgia.mp4

Leer log -> Logstalgia -> Ffmpeg -> guardar video en formato mp4: (no funciona)
Citarssh whk@server "tail -f /var/log/httpd/global_access_log" | logstalgia --sync -o - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf out.mp4

Porque cuando quiero pasar el output stream a ffmpeg mientras hago pipe desde ssh no funciona?, o sea, si lo hago desde un log local funciona pero cuando lo hago por ssh deja de funcionar y me arroja un error:

whk@machine:~/Escritorio$ ssh whk@server "tail -f /var/log/httpd/globaaccess_log" \
| logstalgia --sync -o - \
| ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf out.mp4
ffmpeg version 2.5.10-0ubuntu0.15.04.1 Copyright (c) 2000-2016 the FFmpeg developers
 built with gcc 4.9.2 (Ubuntu 4.9.2-10ubuntu13)
 configuration: --prefix=/usr --extra-version=0ubuntu0.15.04.1 --build-suffix=-ffmpeg
--toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --shlibdir=/usr/lib/x86_64-linux-gnu
--incdir=/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-
avresample --enable-avisynth --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b
--enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-
libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-
libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libshine --enable-
libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libwavpack
--enable-libwebp --enable-libxvid --enable-opengl --enable-x11grab --enable-libdc1394 --enable-
libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libvpx --enable-libx264 --enable-
libsoxr --enable-gnutls --enable-openal --enable-libopencv --enable-librtmp --enable-libx265
 libavutil      54. 15.100 / 54. 15.100
 libavcodec     56. 13.100 / 56. 13.100
 libavformat    56. 15.102 / 56. 15.102
 libavdevice    56.  3.100 / 56.  3.100
 libavfilter     5.  2.103 /  5.  2.103
 libavresample   2.  1.  0 /  2.  1.  0
 libswscale      3.  1.101 /  3.  1.101
 libswresample   1.  1.100 /  1.  1.100
 libpostproc    53.  3.100 / 53.  3.100
Trailing options were found on the commandline.
Input #0, image2pipe, from 'pipe:':
 Duration: N/A, bitrate: N/A
   Stream #0:0: Video: ppm, rgb24, 1024x768, 60 fps, 60 tbr, 60 tbn, 60 tbc
At least one output file must be specified
^Cwhk@machine:~/Escritorio$

WHK

#3
Bueno, ahora si me funciona, reemplazando -o por --output-ppm-stream, a demás exporté para webm, ahora veré como publicarlo en tiempo real.

Citarssh whk@host "tail -f /var/log/httpd/global_access_log" | logstalgia --sync --output-ppm-stream - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libvpx -b 10000K logstalgia.webm

Edito, encontré ffserver
https://trac.ffmpeg.org/wiki/ffserver