PHP + FFMPEG将徽标添加到视频有错误


php+ffmpeg add logo to video having error

我创建代码,用于使用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

如何解决这个问题?

请帮助我。

'"一样转义"

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

正如 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");