что такое код выхода ffmpeg 2? а также выходной массив ошибок пуст и не работает в php - PullRequest
1 голос
/ 12 июня 2019

Я использую ffmpeg для преобразования битрейта в 128, но не работает в php

 exec("ffmpeg -i input.mp3 -codec:a libmp3lame -b:a 128k output().mp3 2>&1", 
 $output, $exit_code);
 if ($exit_code!= 0) {
    $data['message'][] = "Error";
 }

 print_r($output);
 print_r($exit_code);
 exit;

После запуска этого кода выведите код ошибки 2. Выходные данные являются пустым массивом, а также exit_code равен 2, а не создает файл output.mp3.

Я уже изучаю Как узнать, что означает этот код ошибки ffmpeg? , но это не моя проблема, и я не объясняю код ошибки 2 или код ошибки 2 не определен. Моя проблема - не показывать никаких ошибок, а сообщение об ошибке пустое, только exit_code show 2, что означает, что произошла какая-то ошибка.

1 Ответ

2 голосов
/ 14 июня 2019
Синтаксическая ошибка

рядом с неожиданным токеном `('

Вы должны избегать скобок, потому что они являются специальными символами:

exec("ffmpeg -i input.mp3 -codec:a libmp3lame -b:a 128k 'output().mp3' 2>&1",

или

exec("ffmpeg -i input.mp3 -codec:a libmp3lame -b:a 128k output\(\).mp3 2>&1",

Также см. FFmpeg: цитирование и экранирование .

Это не совсем проблема PHP, поэтому всегда проверяйте, работает ли ваша команда ffmpeg до того, как вы попытаетесь ее написать. (Это действительно уменьшит количество вопросов здесь.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...