Foros del Web » Programando para Internet » PHP »

exec () programa en el servidor

Estas en el tema de exec () programa en el servidor en el foro de PHP en Foros del Web. HOla llevo algunas semanas compilando el php con el famoso ffmpeg y ffmpeg-php para convertir formatos de video desde el servidor. desde la linea de ...
  #1 (permalink)  
Antiguo 06/08/2007, 10:38
 
Fecha de Ingreso: febrero-2006
Mensajes: 208
Antigüedad: 18 años, 9 meses
Puntos: 0
exec () programa en el servidor

HOla llevo algunas semanas compilando el php con el famoso ffmpeg y ffmpeg-php para convertir formatos de video desde el servidor.

desde la linea de comandos todo anda ok , pero al intentar ejecutar esa linea desde el php no funciona.

aparentemente tengo instalado el ffmpeg en mi php aqui pueden verlo http://animalita.cl/info.php , asi que supongo que ese no es el problema

en las llamadas al ffmpeg desde exec() accedo de esta forma al ffmpeg

Código PHP:
exec('/home/animalita/bin/ffmpeg -i  /home/animalita/bin/100_3947.MOV -ab 56 -ar 22050 -b 500 -r 15 -s 320x240  eronias.flv',$res)or die ("no pasa nada"
pero me arroja el error, y no ejecuta la linea.

alguien le ha sucedido esto ¿sera problemas de permisos o algo asi?

agradeceré mucho su ayuda

saludos
__________________
michelson
-----------------
crossing snow mountains with a yamaha bike
  #2 (permalink)  
Antiguo 06/08/2007, 10:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: exec () programa en el servidor

Que error te arroja?

Saludos.
  #3 (permalink)  
Antiguo 06/08/2007, 10:58
 
Fecha de Ingreso: febrero-2006
Mensajes: 208
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: exec () programa en el servidor

Hola GatorV , gracias por responder, el error que me arroja es el
Código PHP:
or die ("no pasa nada"
¿como puedo sacar el error nativo? , por decirlo asi..?

saludos
__________________
michelson
-----------------
crossing snow mountains with a yamaha bike
  #4 (permalink)  
Antiguo 06/08/2007, 11:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: exec () programa en el servidor

mmm exec que yo sepa no retorna falso a la hora de regresar resultado, por lo que deberias de quitar el or die(), y mas bien analizar con la salida de exec si pudo o no convertir el video.

Algo asi:
Código PHP:
$resultado exec('/home/animalita/bin/ffmpeg -i  /home/animalita/bin/100_3947.MOV -ab 56 -ar 22050 -b 500 -r 15 -s 320x240  eronias.flv',$res); 
Saludos.
  #5 (permalink)  
Antiguo 06/08/2007, 11:09
 
Fecha de Ingreso: febrero-2006
Mensajes: 208
Antigüedad: 18 años, 9 meses
Puntos: 0
De acuerdo Re: exec () programa en el servidor

Hola GatorV gracias por la ayuda

mira, el experimiento se ubica aqui:
http://animalita.cl/ejemplo.php
mi video aqui:
http://animalita.cl/videos/

y el codigo es este:
si te fijas el ffmpeg-php funciona y puedo sacar la informacion del video, pero en cambio el exec() cuando trato de ejecutar ffmpeg no me arroja ningun resultado a menos que le ponga el or die() y me arroja el error nada mas



Código PHP:
<?php

exec
('export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/lib');
exec('export LIBRARY_PATH=$HOME/lib:$LIBRARY_PATH');
exec('export CPATH=$HOME/include/:$HOME/include/lame/');


$extension "ffmpeg";
$extension_soname $extension "." PHP_SHLIB_SUFFIX;
$extension_fullname PHP_EXTENSION_DIR "/" $extension_soname;
echo 
PHP_EXTENSION_DIR;
// load extension
if(!extension_loaded($extension)) {
    
dl($extension_soname) or die("Can't load extension $extension_fullname\n");
}

echo 
"ffmpeg-php version string: %s\n"FFMPEG_PHP_VERSION_STRING ."<br>";
echo 
"ffmpeg-php version string: %s\n"FFMPEG_PHP_VERSION_STRING."<br>";
echo
"libavcodec build number: %d\n"LIBAVCODEC_BUILD_NUMBER."<br>";
echo 
"libavcodec version number: %d\n"LIBAVCODEC_VERSION_NUMBER."<br>";
echo 
"libavcodec build number: %d\n"LIBAVCODEC_BUILD_NUMBER."<br>";

$mov = new ffmpeg_movie("videos/video.mov");
   echo 
"file name = \""$mov->getFileName()."<br />";
      echo 
"file count = %s\n"$mov->getFrameCount()."<br />";
       echo 
"frame rate = %s\n"$mov->getFrameRate()."<br />";
         echo 
"author = %s\n"$mov->getAuthor()."<br>";
          echo 
"title= %s\n"$mov->getTitle()."<br>";
           echo 
"duracion = %s\n"$mov->getDuration()."<br>";

 


   
//exec('/home/animalita/bin/ffmpeg  -i $mov -ss $SegCaptura -f $FormatImg  -vframes $NmsFrames -y $Salida',$res)or die('no ejecuto nada');
   
    
exec('/home/animalita/bin/ffmpeg -i  /videos/video.mov -ab 56 -ar 22050 -b 500 -r 15 -s 320x240  eronias.flv',$res); 
//exec($cmd,$res)or die('no ejecuto nada');

for ( $i $i <= count($res) ; $i ++) {
echo 
$res[$i]."<br />";
}

?>

Gracias
__________________
michelson
-----------------
crossing snow mountains with a yamaha bike

Última edición por michelson; 06/08/2007 a las 11:57
  #6 (permalink)  
Antiguo 06/08/2007, 13:42
 
Fecha de Ingreso: febrero-2006
Mensajes: 208
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: exec () programa en el servidor

pienso que puede ser un tema con los permisos de /home/animalita/bin/ffmpeg para ejecutar o no??

agradeceré la ayuda


Saludos
__________________
michelson
-----------------
crossing snow mountains with a yamaha bike
  #7 (permalink)  
Antiguo 06/08/2007, 14:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: exec () programa en el servidor

En la salida no te retorna nada? esque si fuera problema de permisos al menos te lo indicaria.

Saludos.
  #8 (permalink)  
Antiguo 06/08/2007, 14:58
 
Fecha de Ingreso: febrero-2006
Mensajes: 208
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: exec () programa en el servidor

hola GatorV , gracias por la ayuda

mira no me retorna nada de nada


aqui esta el ejemplo http://animalita.cl/ejemplo.php
solo me retorna los valores del objeto ffmpeg-php, pero el exec (ffmpeg) me da un array vacio... Array()

este es mi info.php (quizas aqui este el problema)
http://animalita.cl/info.php

mi sitio esta en /home/animalita/animalita.cl/
y el ffmpeg esta en /home/animalita/bin/
codigo:
Código PHP:
 exec('/home/animalita/bin/ffmpeg  -i  /home/animalita/animalita.cl/videos/video.mov -ab 56 -ar 22050 -b 500 -r 15 -s 320x240  /home/animalita/animalita.cl/videos/eronias.flv',$res); 
   

print_r($res);

for ( 
$i $i <= count($res) ; $i ++) {
echo 
$res[$i]."<br />";


te agradesco la ayuda GatorV
__________________
michelson
-----------------
crossing snow mountains with a yamaha bike
  #9 (permalink)  
Antiguo 06/08/2007, 15:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: exec () programa en el servidor

Tienes acceso al shell? Puedes entrar y ejecutar desde bin el programa?

Saludos.
  #10 (permalink)  
Antiguo 06/08/2007, 15:35
 
Fecha de Ingreso: febrero-2006
Mensajes: 208
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: exec () programa en el servidor

Hola GatorV , gracias por la ayuda

si asi es, es un host compartido, donde instale varias librerias
he hecho pruebas tambien haciendo encondings con buenos resultados pero desde ssh en php solo logro ver la informacion del video con el objeto ffmpeg-php, pero no logro ejecutar el ffmpeg


esta todo bien instalado, creo, pero algo anda mal

puede ser algo con los permisos del php al ffmmpeg?? porque la libreria ffmpeg.so la encuentra

gracias
__________________
michelson
-----------------
crossing snow mountains with a yamaha bike
  #11 (permalink)  
Antiguo 07/08/2007, 09:27
 
Fecha de Ingreso: febrero-2006
Mensajes: 208
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: exec () programa en el servidor

alguna idea???

puede haber algun permiso pendiente para que php pueda ejecutar programas en instalados en el server


ayuda !! por favor


Saludos
__________________
michelson
-----------------
crossing snow mountains with a yamaha bike
  #12 (permalink)  
Antiguo 07/08/2007, 17:01
 
Fecha de Ingreso: febrero-2006
Mensajes: 208
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: exec () programa en el servidor

Hola , hice la pregunta en una lista de correos de gooogle de ffmpeg y un moderador me dijo que hiciera un
Also, redirect errors to stdout...

ffmpeg 2>&1


hice algunas pruebas asi
exec("/home/animalita/bin/ffmpeg 2>&1 -version",$res);

exec("ffmpeg 2>&1 -version",$res);


print_r($res);

pero sin resultados..


Saludos
__________________
michelson
-----------------
crossing snow mountains with a yamaha bike
  #13 (permalink)  
Antiguo 17/08/2007, 09:16
 
Fecha de Ingreso: febrero-2006
Mensajes: 208
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: exec () programa en el servidor

Hola , ya lo he solucionado


necesitaba poner el safe mode en Off del php ini

y poner unas variables antes de ejecutar el ffmpeg en el exec del php

Código PHP:
exec('export TMPDIR=/home/dominio/tmp;
export PATH=/home/dominio/bin;
export LD_LIBRARY_PATH=/home/dominio/lib;
export LIBRARY_PATH=/home/dominio/lib;
export CPATH=/home/dominio/include/:home/dominio/include/lame/; /home/animalita/bin/ffmpeg 2>&1 -i  /home/dominio/animalita.cl/videos/'
.$archivo_random_extension.' -ab 56 -ar 22050 -b 500 -r 15 -s 320x240  /home/dominio/dominio.cl/videos/'.$archivoFlv_final,$res); ?> 
estas variables export que uso son porque el ffmpeg lo tengo instalado en un shared hosting como es dreamhost


Saludos, ojala que a alguien le sirva
__________________
michelson
-----------------
crossing snow mountains with a yamaha bike
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 12:57.