PHP exec()带有混合引号

时间:2016-06-27 04:41:13

标签: php ffmpeg

我尝试使用PHP的exec()运行以下ffmpeg命令,但由于需要双引号和单引号,exec()失败。

/usr/bin/ffmpeg -loop 1 -i /var/www/html/data/photos/576c2ecf766fe.png -vf "zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125" -c:v libx264 -pix_fmt yuv420p -t 5 -s hd1080 -crf 17 /var/www/html/ffmpeg/zoomout.mp4

如何通过PHP运行此脚本?

谢谢

1 个答案:

答案 0 :(得分:1)

您需要转义在PHP中用于封装的任何引用类型。所以假设你有exec(''),那就是:

/usr/bin/ffmpeg -loop 1 -i /var/www/html/data/photos/576c2ecf766fe.png -vf "zoompan=z=\'if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))\':d=125" -c:v libx264 -pix_fmt yuv420p -t 5 -s hd1080 -crf 17 /var/www/html/ffmpeg/zoomout.mp4

您可以在此处阅读有关PHP字符串的更多信息,http://php.net/manual/en/language.types.string.php。 heredoc和nowdoc也可以工作。