php + ffmpeg为有错误的视频添加徽标

时间:2013-10-02 09:27:10

标签: php ffmpeg

我创建了使用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

如何解决这个问题?

请帮帮我。

2 个答案:

答案 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");