我已经在Digitalocean上设置了一个VPS服务器。安装了Ubuntu 18.04,LAMP等。最后,我安装了ffmpeg。它在终端上运行良好,但当我试图通过php执行它时,它给出了一个奇怪的“权限被拒绝”错误:
以下是一些信息:
root@vl:/# ffmpeg在哪里
ffmpeg: /usr/local/bin/ffmpeg
root@vl:/# ffprobe在哪里
ffprobe: /usr/local/bin/ffprobe
root@vl:/# ffmpeg -version
FFmpeg版本N-102461-g8649f5dca6版权所有(c) 2000-2021年ffmpeg开发人员使用gcc 7(Ubuntu7.5.0-3ubuntu1~18.04)构建的配置:--prefix=/usr/local/ffmpeg_build --pkg-config-flags=--静态--extra-cflags=-I/usr/local/ffmpeg_build/include --extra-ldflags=-L/usr/local/ffmpeg_build/lib --extra-libs='-lpthread -lm‘--ld=g++ --bindir=/usr/local/bin -enable-gpl--enable-gnutls --enable-libaom --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libsvtav1 --enable-libvorbis -enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree libavutil 57。0.100 / 57年。0.100 libavcodec 59。1.100 /59年。1.100 libavformat 59。0.101 /59年。0.101 libavdevice 59。0.100 /59年。0.100 libavfilter 8. 0.101 / 8. 0.101 libswscale 6. 0.100 / 6. 0.100 libswresample 4. 0.100 / 4. 0.100 libpostproc 56。0.100 / 56。0.100
我的php文件:
echo shell_exec("ffmpeg -i mj.gif -profile:v baseline -pix_fmt yuv420p -vf scale=600:-2 output.mp4 2>&1")
?>
错误!:
FFmpeg版本N-102461-g8649f5dca6版权所有(c) 2000-2021年ffmpeg开发人员使用gcc 7(Ubuntu7.5.0-3ubuntu1~18.04)构建的配置:--prefix=/usr/local/ffmpeg_build --pkg-config-flags=--静态--extra-cflags=-I/usr/local/ffmpeg_build/include --extra-ldflags=-L/usr/local/ffmpeg_build/lib --extra-libs='-lpthread -lm‘--ld=g++ --bindir=/usr/local/bin -enable-gpl--enable-gnutls --enable-libaom --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libsvtav1 --enable-libvorbis -enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree libavutil 57。0.100 / 57年。0.100 libavcodec 59。1.100 /59年。1.100 libavformat 59。0.101 /59年。0.101 libavdevice 59。0.100 /59年。0.100 libavfilter 8. 0.101 / 8. 0.101 libswscale 6. 0.100 / 6. 0.100 libswresample 4. 0.100 / 4. 0.100 libpostproc 56。0.100 / 56。0.100输入#0,gif,来自'mj.gif':时长:00:00: 0.000000,码率:0.000000 kb/s流#0:0:视频: gif,bgra,1400x1050,10fps,10TBR,100TBN output.mp4:权限被拒
在过去的24小时里,我尝试过以不同的方式安装ffmpeg (编译和apt install),我也尝试过更改权限,但仍然遇到了这个错误。
任何帮助都将不胜感激!
谢谢
发布于 2021-05-10 16:33:13
php shell程序以root用户身份运行,您使用root用户在终端中执行它。您需要授予www-data用户运行该文件的权限。可能是因为ffmpeg试图访问的文件(mj.gif)没有为每个人设置读取该文件的权限。尝试在gif所在的目录中运行chmod 755 mj.gif
。
发布于 2021-05-11 01:08:21
相反,
echo shell_exec("ffmpeg -i mj.gif -profile:v baseline -pix_fmt yuv420p -vf scale=600:-2 output.mp4 2>&1")
试试像这样的东西
echo shell_exec("ffmpeg -i mj.gif -profile:v baseline -pix_fmt yuv420p -vf scale=600:-2 /var/www/your_app/output.mp4 2>&1")
如果失败,请尝试chmod 777 /var/www/your_app
https://stackoverflow.com/questions/67467116
复制相似问题