ffmpeg работает в терминале, но не в php - PullRequest
0 голосов
/ 29 августа 2018

Я установил ffmpeg с помощью Ubuntu,

 sudo apt-get install ffmpeg

ffmpeg установлен в корневом каталоге "/usr/bin/ffmpeg".

Он работает нормально в терминале, но когда я выполняю это с помощью php, я не получаю никакого вывода.

 shell_exec(/usr/bin/ffmpeg -y -i ./upload/1535531595first.mp3 -i ./upload/1535531595second.mp3 -filter_complex "[0:0][1:0] amix=inputs=2:duration=longest" -c:a libmp3lame ./download/1535531595outputnow1.mp3)

и с помощью этой команды в файле "opt / lampp / htdocs / project-Name / sub-directory / test.php".

Любая помощь будет благодарна. Заранее спасибо.
найти приложение Терминал cmd работает нормально но для php не работает

1 Ответ

0 голосов
/ 31 августа 2018

Работает везде отлично! Я использую FFMPEG и с моим проектом PHP. Наиболее распространенные проблемы:

  • Не использовать двойные кавычки (").
  • Неправильная адресация.

Прежде всего, проверьте ваш путь, лучше обратиться к вашему файлу из корневого каталога, как это /user/foo/bar.mp3 и сделать то же самое для вашего вывода.

$input_file = "/user/foo/bar.mp3";
$output_file = "/user/foo/out.mp3";

shell_exec("ffmpeg -i \"{$input_file}\" \"{$output_file}\");

Кстати, существует проблема с веб-приложениями. Когда вы используете FFMPEG в своем PHP-проекте, вы можете получить ошибку timeout, потому что обработка занимает слишком много времени.

Я бы посоветовал вам использовать следующий скрипт: он выполняет команды командной строки в фоновом режиме

function Execute($CMD)
{
    $OS = strtoupper(PHP_OS_FAMILY);

    if ($OS == 'WINDOWS') {
        return pclose(popen("start /B {$CMD}", "r"));
    } else {
        return shell_exec("{$CMD} > /dev/null 2>/dev/null &");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...