根据需要更改图像叠加

时间:2018-03-24 13:08:27

标签: ffmpeg

我需要你的帮助。我用这个命令流到Twitch:

ffmpeg -i input.mp4 -i image.jpg -filter_complex 'overlay=x=10:x=10' -s \
  1920x1200 -framerate 15  -c:v libx264 -preset ultrafast -pix_fmt yuv420p \
  -threads 0 -f flv 'rtmp://'

如何在可变时间将image.jpg图片更改为另一张图片?我不会重启FFMPEG命令。

2 个答案:

答案 0 :(得分:1)

一种简单的方法是为图像输入添加-f image2 -loop 1输入选项,然后在需要时以原样方式替换image.jpg,例如使用mv

ffmpeg -re -i input.mp4 -f image2 -loop 1 -i image.jpg -filter_complex 'overlay=x=10:x=10,scale=1920x1200,format=yuv420p' -c:v libx264 -preset ultrafast -f flv 'rtmp://'

无关更改:

  • -framerate是输入选项,因此我将其删除。
  • 我将所有过滤放在过滤链中,将-ss替换为缩放过滤器,将-pix_fmt替换为格式过滤器。
  • -threads 0(自动确定最佳线程数)是此编码器的默认值,因此我将其删除。
  • 添加了
  • -re用于流式传输本地文件,否则会尝试尽快编码。
  • 流式传输时使用-bufsize-maxrate-grecommended
  • Use the slowest preset你可以因为超快效率很低。

答案 1 :(得分:0)

回答"变量时间"你问题的一部分使用cron作业运行脚本,在指定的时间,即每5分钟更新一次叠加图像。例如,您可以创建各种叠加的文件夹,每5分钟随机选择一个,然后将其复制到image.jpg。然后,FFMPEG将新图像渲染到您的流中。

使用-f image 2 -loop 1 -thread_queue_size 512 -i image.jpg非常重要,尤其是在渲染其他图像格式时。