Вы можете использовать символ амперсанда после команды, чтобы запустить его в фоновом режиме и сразу же получить приглашение (контроль).
Я предлагаю создать скрипт bash, подобный:
#!/bin/sh
ffmpeg -i $1 -ab 64k -vb 420k $1.mp4
ffmpeg -i $1 -ab 64k -vb 420k $1.webm
Затем запустите его из php как:
system ('myscript.sh tempfile &');
В следующем примере используется структура if
, чтобы решить, использовать звук или нет.Первый параметр - это имя файла, если второй равен 0
, то нет звука на mp4, если третий равен нулю, то нет звука на webm.
#!/bin/sh
if [ $2 -eq 0 ]
then
ffmpeg -i $1 -an -vb 420k $1.mp4
else
ffmpeg -i $1 -ab 64k -vb 420k $1.mp4
fi
if [ $3 -eq 0 ]
then
ffmpeg -i $1 -an -vb 420k $1.webm
else
ffmpeg -i $1 -ab 64k -vb 420k $1.webm
fi
Вы можете использовать его из PHPкак:
system ('myscript.sh ' . $tempfile . ' ' . (0 + $mp4sound) . ' ' . (0 + $webmsound) . ' &');
... но помните, что вы можете даже запустить файл PHP вместо шеллскрипта, например:
system ("php converter.php \"$tempfile\" \"$mp4sound\" \"$webmsound\" &');