我创建了使用ffmpeg为视频添加徽标的代码。
ffmpeg -i 1.mp4 -i a.jpg -filter_complex "overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2" outputvideo.mp4
当我在windows dos中使用此代码时没有问题并且添加了徽标,但是当我在PHP中使用它时它会给我一个错误。
PHP:
<?php
echo "Starting ffmpeg...\n\n";
echo shell_exec("ffmpeg -i 1.mp4 -i a.jpg -filter_complex "overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2" outputvideo.mp4");
echo "Done.\n";
?>
错误:
Parse error: syntax error, unexpected 'overlay' (T_STRING) in C:\xampp\htdocs\tts\2.php on line 3
如何解决这个问题?
请帮帮我。
答案 0 :(得分:2)
逃脱"
,如\"
。
echo shell_exec("ffmpeg -i 1.mp4 -i a.jpg -filter_complex \"overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2\" outputvideo.mp4");
答案 1 :(得分:0)
正如Glavic指出的那样,你需要转义字符串中的双引号,所以你的命令应该是这样的:
echo shell_exec("ffmpeg -i 1.mp4 -i a.jpg -filter_complex \"overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2\" outputvideo.mp4");