我有这个应用程序,我需要将video文件转换为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')
你正在运行一个XAMPP服务器,所以里面的所有东西都和它一起运行的库一起运行。 问题是现在你试图运行一个使用系统库的程序,并且已经设置了一个使用特定其他库的环境。 你有两个select:
tasksel
使这很轻松。 这样PHP将运行在相同的环境ffmpeg正在运行。 LD_LIBRARY_PATH
设置为您要运行ffmpeg的PHP脚本中的全局值。 如果运行ldconfig -v | grep \/
您可以find这些值 ldconfig -v | grep \/
。 我做了什么来解决这个问题是我去了/ usr / lib并searchlibstdc ++(这个目录有更新的版本),并将其复制到/ opt / lampp / lib。
我做了原始文件的备份并粘贴了新文件和BOOM! 有效! 🙂
我希望它也适用于你。