PHP e ffmpeg no Ubuntu

0

Eu tenho o ffmpeg instalado no Ubuntu Server e estou executando o PHP de outro servidor enviando comandos para o servidor Ubuntu.

$ff = '/usr/bin/ffmpeg -i '.$file.'  -vcodec libx264 -pix_fmt yuv420p -profile:v baseline -level 3.0 -s '.$RESOLUTION.' -vb '.$VB.'k -ac 2 -acodec aac -b:a 128k -ar 44100 -strict -2  -vf "movie=/datastore/logo/hello_logo.png [watermark]; [in][watermark] overlay=60:main_h-overlay_h-60 [out]"  /tmp/'.$MXF.'.mp4 -y';
if(!($tra= ssh2_exec($con,$ff))) {
    echo "failed to execute the Command";
}
else {
    $stream3 = ssh2_exec($con, $command_save);
    stream_set_blocking($tra, true);
    $tra_out = ssh2_fetch_stream($tra, SSH2_STREAM_STDERR);
    var_dump($tra_out);
    $file1=stream_get_contents($tra_out);
    var_dump($file1);
    echo $file1;
}

Estou com problemas passando a variável $file para o ffmpeg.

    
por SJ04 18.06.2015 / 22:20

1 resposta

0

De acordo com o seu comentário , $file contém uma saída de caminho de find . Esse caminho provavelmente contém espaços.

É provável que o uso de um caminho contendo espaços em um comando o quebre. Então apenas coloque o caminho entre aspas duplas:

$ff = '/usr/bin/ffmpeg -i "'.$file.'"  -vcodec libx264 -pix_fmt yuv420p -profile:v baseline -level 3.0 -s '.$RESOLUTION.' -vb '.$VB.'k -ac 2 -acodec aac -b:a 128k -ar 44100 -strict -2  -vf "movie=/datastore/logo/hello_logo.png [watermark]; [in][watermark] overlay=60:main_h-overlay_h-60 [out]"  /tmp/'.$MXF.'.mp4 -y';
    
por kos 18.06.2015 / 23:29