Foros del Web » Programando para Internet » PHP »

leer stream en "segundo plano"

Estas en el tema de leer stream en "segundo plano" en el foro de PHP en Foros del Web. hola, no se si el título es muy acertado, pero esa es la idea que se me ocurre para solucionar mi problema. desde mi página ...
  #1 (permalink)  
Antiguo 16/03/2010, 07:21
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 1 mes
Puntos: 17
leer stream en "segundo plano"

hola, no se si el título es muy acertado, pero esa es la idea que se me ocurre para solucionar mi problema.

desde mi página php, lo que hago es seleccionar un emisor y uno (o los que sean) receptores de video.

Para ello, lo que hago es conectarme por ssh al receptor y hacerle que ejecute un comando que conecta al video del servidor.

Hasta aquí todo bien, copio un código de pruebas:

Código PHP:
$con ssh2_connect("xx.xx.xx.xx"22) or die ("no hay conexión SSH compruebe puerto y dirección");
$autent ssh2_auth_password($con"usuario""contra") or die ("no hay conexión SSH compruebe usuario y contraseña");
$shell ssh2_shell($con,'xterm');
fwrite($shell,"mplayer rtsp://161.1.1.15/media.sdp \n");        
sleep(10);
$respuesta stream_get_contents($shell,-1);
echo 
$respuesta;
fclose($shell); 
Bueno, pues el archivo se reproduce sólo los 10 segundos que duermo el php, si lo quito está cargando hasta que "mato" el proceso del mplayer. No hace falta leer el stream, tenga o no la variable $respuesta funciona igual

¿Hay alguna manera de ejecutar esto en segundo plano para conseguir lo que quiero?

Gracias!
  #2 (permalink)  
Antiguo 16/03/2010, 07:26
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: leer stream en "segundo plano"

Hola cucuru,

he hecho varias cosas con streaming y php, quiero ayudarte pero para poder hacerlo necesito saber la finalidad de dicho script ya que me parece un poco raro lo que estás haciendo.

Saludos!
  #3 (permalink)  
Antiguo 16/03/2010, 07:36
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 1 mes
Puntos: 17
Respuesta: leer stream en "segundo plano"

La finalidad es simplemente poder controlar los flujos de todos los ordenadores de mi red, añadir flujos, eliminarlos, modificarlos, desde una web, no tiene más...

Gracias!! Saludos
  #4 (permalink)  
Antiguo 16/03/2010, 09:05
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: leer stream en "segundo plano"

Cita:
Iniciado por cucuru Ver Mensaje
La finalidad es simplemente poder controlar los flujos de todos los ordenadores de mi red, añadir flujos, eliminarlos, modificarlos, desde una web, no tiene más...

Gracias!! Saludos
Pensaba que lo que querías era retransmitir video streaming, sorry :)
  #5 (permalink)  
Antiguo 16/03/2010, 09:08
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: leer stream en "segundo plano"

Prueba a usar ssh2_exec() en lugar de fwrite()

Saludos!
  #6 (permalink)  
Antiguo 16/03/2010, 11:31
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Respuesta: leer stream en "segundo plano"

Hola

Lo que puedes hacer es forkear el proceso que estas llamando (mplayer rtsp://161.1.1.15/media.sdp) agregandole el & al final del comando (antes de tu salto de linea), a si el proceso va a correr en background. (al forkearlo, la shell te devuelve el pid del proceso, si guardas el pid, despues pueder mandarle alguna señal, ej matarlo)

Pero lo mas seguro es que el proceso muera si se pierde-termina la conexion entre tu script y la conexion ssh al cliente.

Lo otro que puedes utilizar es enjaular el proceso en una screen, de esta manera el proceso va a quedar corriendo en una screen, a pesar que la conexion se pierda-termine.

Código:
/usr/bin/screen -dmUS miscreem /usr/bin/yes
Entonces el programa /usr/bin/yes va a correr en la screen con nombre miscreem.
(recuerda tener instalado screen, en sistemas basados en debian apt-get install screen)

Saludos.
  #7 (permalink)  
Antiguo 17/03/2010, 07:12
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 1 mes
Puntos: 17
Respuesta: leer stream en "segundo plano"

Perfecto lo del screen! muchísimas gracias, estaba volviendome loca para encontrar la solución.

Saludos!

Etiquetas: stream
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:11.