【发布时间】:2015-01-16 11:58:26
【问题描述】:
我正在尝试将扩展名为 .mov 的视频转换为 .mp4 格式。以下是我尝试使用的命令
$file_name = "abc.mov";
$mp4_file = "abc.mp4";
$cmd = 'sudo /usr/bin/ffmpeg -i /path_to_file' . $file_name . ' -strict experimental -vcodec libx264 -pix_fmt yuv420p -profile:v baseline -preset slower -crf 18 -vf "scale=trunc(in_w/2)*2:trunc(in_h/2)*2" /destination_path/' . $mp4_file;
exec($cmd, $out, $res);
但是没有创建所需的文件(带有 .mp4 )。当我复制命令并将其粘贴到终端中时,将创建具有所需格式的文件。但是,在我的 php 代码中,同样不适用于 exec 命令。
我无法找出问题的实际原因,因为它看起来很奇怪。任何帮助将不胜感激。提前致谢
【问题讨论】:
-
您检查过
exec()s 的返回值是否有错误消息? -
user尝试exec命令可能没有使用sudo命令的权限。 -
即使我在没有 sudo 命令的情况下这样做,它仍然不起作用。 exec 命令也没有返回任何内容。
-
另请注意,它只发生在 .mov 而不是其他文件类型
-
/path_to_file' . $file_name你确定你没有在这里错过/吗?我知道这只是一个例子,但是在这里,如果$file_name只包含没有路径的文件名,则串联将无效。