我已经玩了好几个小时了,我想不出来寻求帮助,你能帮我制定ffmpeg命令以在视频上显示水印图像吗?对于最初的半个视频,水印应该在左下角,对于剩余的半个视频,水印商店在右上角。
左下:ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" -codec:a copy output.mp4
右上角:ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=main_w-overlay_w-5:5" -codec:a copy output.mp4
此外,我看了一下Timeoverlay ffmpeg水印的前30秒。
如何将所有这些合并并满足我上面提到的要求?
在本例中,input.mp4
的持续时间为30秒。覆盖过滤器支持enable
选项。
ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2:enable='lte(t,15)'[bg];[bg][1]overlay=main_w-overlay_w-5:5:enable='gte(t,15)'" -codec:a copy output.mp4
- 要获取持续时间,请参阅如何以秒为单位获取视频持续时间?。在Linux上,计算50%持续时间的一种方法是使用
bc
。请参阅使用ffmpeg获取视频中间帧的示例 - 另一种方法是使用sendcmd过滤器,但它更复杂。请参阅ffmpeg中Sendcmd的示例
- 请参阅FFmpeg Expression Evaluation中的可用函数