FFMpeg在命令行中工作但在PHP中没有使用exec();

Kit*_*Kit 4 php command-line ffmpeg exec

我正在使用FFMpeg来隐藏视频,它在命令行中工作正常.我使用以下命令:

ffmpeg -i input.mpg  -vcodec libx264 -b 819200 -s 100x100 -g 15 -bf 3 -b_strategy 1 -coder 1 -qmin 10 -qmax 51 -sc_threshold 40 -flags +loop -cmp +chroma -me_range 16 -me_method hex -subq 5 -i_qfactor 0.71 -qcomp 0.6 -qdiff 4 -directpred 1 -flags2 +fastpskip -dts_delta_threshold 1 -acodec libfaac -ab 48000 output.m4v
Run Code Online (Sandbox Code Playgroud)

但是,当我使用PHP exec()运行命令时,输出视频未正确编码并被扭曲和裁剪.我在PHP中使用以下内容:

$output = exec($cmd . ' 2>&1', $output, $return);
Run Code Online (Sandbox Code Playgroud)

$ output返回'0'成功代码.

有没有人有什么建议?

谢谢.

glo*_*mad 8

这很不寻常.您可能安装了多个ffmpeg二进制文件,并且PHP/Apache用户调用的二进制文件与您从命令行调用的用户名称不同.

尝试在exec()中指定ffmpeg二进制文件的完整路径(/ usr/bin/ffmpeg或其他).