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 chown директорията htdocs някъде в миналото? Това може да е причина.   -  person Muhammad bin Yusrat    schedule 16.11.2016


Отговори (1)


Това, което направих, за да поправя това, беше, че отидох в /usr/lib и потърсих libstdc++ (тази директория има по-нови версии) и го копирах в /opt/lampp/lib.

Направих резервно копие на оригиналния файл и поставих новия файл и BOOM! Проработи! :)

Надявам се да работи и за вас.

person Muhammad bin Yusrat    schedule 16.11.2016
comment
какво смятате за по-нова версия в /usr/lib - person Shubham Azad; 16.10.2018
comment
По-нови версии на libstdc++. - person Muhammad bin Yusrat; 17.10.2018