当我添加水印时,FFMPEG gif调整大小不起作用

时间:2016-06-30 14:01:08

标签: php ffmpeg

我正在尝试将视频大小调整为gif图像。但每次我都失败了。

请检查我的cdde:

$input = "files/video.mp4";
$thumbnail = 'img/logo.png'
$output = 'gif/'.time().'.gif';

$command = "ffmpeg -t 3 -ss 00:00:02 -i $input -i $thumbnail -filter_complex overlay=W-w-5:H-h-5 -codec:a copy $output"
@exec($command, $ret);
print_r($ret);

以上命令我没有得到数组结果。但工作正常。我的视频已成功转换为带水印的GIF。但是,如果我想在代码下面调整大小。此命令无效。请告诉我错误在哪里

$command = "ffmpeg -t 3 -ss 00:00:02 -i $input -vf scale=400:-1 -i $thumbnail -filter_complex overlay=W-w-5:H-h-5 -codec:a copy $output"

请帮帮我。让我知道是否有任何其他方式使用调整大小和水印图像制作视频到gif。

编辑:如果我要删除水印命令。然后我调整GIF的工作正常。

1 个答案:

答案 0 :(得分:1)

缩放也应该在复合体内发生。

ffmpeg -t 3 -ss 00:00:02 -i $input -i $thumbnail -filter_complex [0]scale=400:-1[b];[b][1]overlay=W-w-5:H-h-5 -codec:a copy $output

此外,独立的vf输出由ffmpeg映射输出。

FFmpeg提供palettegen和paletteuse过滤器,用于优化GIF生成。

ffmpeg -t 3 -ss 00:00:02 -i $input -i $thumbnail -filter_complex [0]scale=400:-1[b];[b][1]overlay=W-w-5:H-h-5,split[v][p];[p]palettegen,fifo[pal];[v][pal]paletteuse -codec:a copy $output