我难倒似乎一切都是对的,不知道为什么会出错
<?php
echo "Starting ffmpeg...\n\n";
echo shell_exec("ffmpeg -i /var/www/vhosts/site.com/httpdocs/Videos/*.* -i "$i" -c:v libx264 -crf 24 /var/www/vhosts/site.com/httpdocs/Videos/Output/"${i%.*}.mp4 </dev/null >/dev/null 2>/var/log/ffmpeg.log &");
echo "Done.\n";
?>
是的,这些代码在终端
中运行for i in *.*; do ffmpeg -i "$i" -c:v libx264 -crf 24 n/"${i%.*}.mp4"; done
答案 0 :(得分:0)
你有几个问题,但主要的是你使用双引号围绕字符串和双引号围绕一些值。还有+ .rdio-inline
的使用,PHP将尝试将其作为变量进行处理。
$i
在整个字符串周围使用单引号既可以解决字符串中的引号问题,也可以阻止PHP尝试解释任何字段。
<强>更新强>
不确定使用shell来执行此操作,但您可以编写类似......
的内容echo shell_exec('ffmpeg -i /var/www/vhosts/site.com/httpdocs/Videos/*.* -i "$i" -c:v libx264 -crf 24 /var/www/vhosts/site.com/httpdocs/Videos/Output/"${i%.*}.mp4 </dev/null >/dev/null 2>/var/log/ffmpeg.log &');