我正在尝试将视频大小调整为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的工作正常。
答案 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