FFMPEG работает на консоли, но не работает в PHP-скрипте на Ubuntu

У меня есть это приложение, в котором мне нужно конвертировать видеофайлы в MP4, а затем сжимать их. Я пытаюсь использовать FFMPEG, чтобы заставить это работать. Попробовал командную строку в консоли, отлично работает

Конвертация

ffmpeg -i teste.avi teste.mp4

Сжатие

ffmpeg -i teste.mp4 -acodec mp2 teste.mp4

Но когда я делаю то же самое в PHP-скрипте, он начинает кричать, что что-то под названием GLIBCXX не установлено. Это ошибка:

ffmpeg: /opt/lampp/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by /usr/lib/i386-linux-gnu/libjack.so.0)
ffmpeg: /opt/lampp/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/lib/i386-linux-gnu/libjack.so.0)
ffmpeg: /opt/lampp/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /usr/lib/i386-linux-gnu/libjack.so.0)
ffmpeg: /opt/lampp/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/lib/i386-linux-gnu/libzmq.so.3)
ffmpeg: /opt/lampp/lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/lib/i386-linux-gnu/libzmq.so.3)
ffmpeg: /opt/lampp/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by /usr/lib/i386-linux-gnu/libopencv_core.so.2.4)
ffmpeg: /opt/lampp/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/lib/i386-linux-gnu/libopencv_core.so.2.4)
ffmpeg: /opt/lampp/lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/lib/i386-linux-gnu/libopencv_core.so.2.4)

это мой скрипт

$r = shell_exec("ffmpeg -i $file_path $output_path 2>&1"); //convert
$r = shell_exec("ffmpeg -i $file_path -acodec mp2 $file_path 2>&1"); //compress

Я запускаю скрипт на Ubuntu

@edit Я могу запустить, например, shell_exec('ls')


person Victor Ferreira    schedule 16.11.2015    source источник
comment
Возможно, пользователь, от имени которого работает веб-сервер, не имеет доступа к библиотекам/файлам, необходимым для ffmpeg.   -  person Ben Swinburne    schedule 16.11.2015
comment
как я могу предоставить такие разрешения моему веб-серверу?   -  person Victor Ferreira    schedule 16.11.2015
comment
Вы когда-нибудь chown устанавливали каталог htdocs? Это может быть причиной.   -  person Muhammad bin Yusrat    schedule 16.11.2016


Ответы (1)


Что я сделал, чтобы это исправить, так это то, что я пошел в /usr/lib и искал libstdc++ (в этом каталоге есть более новые версии) и скопировал его в /opt/lampp/lib.

Я сделал резервную копию исходного файла и вставил новый файл, и БУМ! Это сработало! :)

Я надеюсь, что это сработает и для вас.

person Muhammad bin Yusrat    schedule 16.11.2016
comment
что вы называете более новой версией в /usr/lib - person Shubham Azad; 16.10.2018
comment
Более новые версии libstdС++. - person Muhammad bin Yusrat; 17.10.2018