PHP и ffmpeg на Ubuntu

У меня есть ffmpeg, установленный на Сервере Ubuntu, и я выполняю PHP от другой отправки веб-сервера команды к Серверу 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;
}

Я испытываю затруднения при передаче $file переменная к ffmpeg.

0
задан 19 June 2015 в 00:17

1 ответ

Согласно Вашему комментарий , $file содержит вывод пути find. Тот путь, вероятно, будет содержать пробелы.

Используя путь, содержащий пробелы в команде, вероятно, повредит его. Поэтому просто включите путь к двойным кавычкам:

$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';
0
ответ дан 1 August 2019 в 09:54

Другие вопросы по тегам:

Похожие вопросы: