Почему exec для avconv не возвращает статус конвертации видео скрипта?

Я использую PHP exec команда для конвертации видео с помощью библиотеки avconv linux:

exec("avconv -i $mp4FilePath -acodec libvorbis -aq 5 -ac 2 -qmax 25 -threads 2 $webmFilePath > /dev/null &" , $output, $return);
echo PHP_EOL . 'Script output: ' . $return . PHP_EOL;
die;

Теперь, когда я запускаю php-скрипт, получается:

developers
built on Mar 16 2015 13:19:10 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/var/www/html/domain/videos/avIBS0ZJmjCQBZV7eWqSWSe0u8lBgRCc.mp4':
Metadata:
major_brand     : mp42
minor_version   : 0
compatible_brands: isommp42
creation_time   : 2014-09-08 00:58:51
Duration: 00:02:50.38, start: 0.000000, bitrate: 414 kb/s
Stream #0.0(und): Video: h264 (Constrained Baseline), yuv420p, 640x360 [PAR 1:1 DAR 16:9], 315 kb/s, 24 fps, 24 tbr, 24 tbn, 48 tbc
Stream #0.1(und): Audio: aac, 44100 Hz, stereo, fltp, 95 kb/s
Metadata:
creation_time   : 2014-09-08 00:58:51
[libvpx @ 0x17bb220] v1.3.0
Output #0, webm, to '/var/www/html/domain/videos/avIBS0ZJmjCQBZV7eWqSWSe0u8lBgRCc.webm':
Metadata:
major_brand     : mp42
minor_version   : 0
compatible_brands: isommp42
creation_time   : 2014-09-08 00:58:51
encoder         : Lavf54.20.4
Stream #0.0(und): Video: libvpx, yuv420p, 640x360 [PAR 1:1 DAR 16:9], q=-1-25, 200 kb/s, 1k tbn, 24 tbc
Stream #0.1(und): Audio: libvorbis, 44100 Hz, stereo, fltp
Metadata:
creation_time   : 2014-09-08 00:58:51
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> libvpx)
Stream #0:1 -> #0:1 (aac -> libvorbis)
Press ctrl-c to stop encoding
frame= 4089 fps= 21 q=0.0 Lsize=    7151kB time=170.38 bitrate= 343.8kbits/s
video:5288kB audio:1751kB global headers:4kB muxing overhead 1.538016

Когда скрипт запускается и конверсия успешна, он ждет в последней строке ничего не происходит и echo Команда не выполнена, мой сценарий ожидает сигнала для остановки (я так думаю). Когда я нажму Enter, я вернусь к оболочке.

Почему обратный вывод не распечатывается? Как я могу проверить, было ли преобразование видео успешным или нет?


РЕДАКТИРОВАТЬ 1:
Когда я удалил > /dev/null &Я мог видеть, что сценарий успешно завершен и $return вернулся 0 для успешной конвертации (если я не прав, поправьте меня). Но $output это пустой массив. Хотя я мог видеть весь вывод в оболочке, который я показал выше. Я хочу записать все эти данные в файл журнала.

1

Решение

Прежде всего я удалил > /dev/null & чтобы иметь возможность вернуться в терминал после завершения работы скрипта. А затем, чтобы получить вывод avconv внутри $output Я добавил 2>&1 до конца сценария.

0

Другие решения

Других решений пока нет …