I've written a php program which creates a video from sequence of images using ffmpeg.
<?php
$res = shell_exec("ffmpeg -framerate 50 -i image/image%d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4 2>&1");
echo "$res";
When I run it,
it says GLIBCXX_3.4.15 , GLIBCXX_3.4.9 , GLIBCXX_3.4.11 not found.
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.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)
But from the terminal, ffmpeg -framerate 50 -i image/image%d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4 command works fine. Why php can't find the libraries while from the terminal it works fine? and what should I do to fix the problem in php? Thanks in advance.
I also had similar problem running ffmpeg command from PHP script. I found the solution by running the following command from the terminal. I'm pasting that command here so someone can get help on this.
sudo mv /opt/lampp/lib/libstdc++.so.6 /opt/lampp/lib/libstdc++.so.6.origNow just run your php script hope it works.
If you have tried all the above methods (rename to .orig/_old, copy newer version to lib folder, change LD_LIBRARY_PATH in xampp),
but still couldn't solve this problem. Try this trick it worked for me finally:
1. add the following line in your PHP file.
var_dump(shell_exec("whoami"));you can find the username in your browser after clicking on the URL related to your PHP file
2.in your terminal
sudo vim /ect/sudoers #in vim editor, add this line in your sudoers file "username ALL=(ALL) NOPASSWD:ALL" #change username to that found in step one3. change the exec cmd in your PHP file to
exec("sudo python3 urfilename.py")The main reason for your problem might be root permission, so changing your sudoers file might fix the error.