我需要你的帮助。我用这个命令流到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命令。
答案 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
和-g
是recommended。答案 1 :(得分:0)
回答"变量时间"你问题的一部分使用cron作业运行脚本,在指定的时间,即每5分钟更新一次叠加图像。例如,您可以创建各种叠加的文件夹,每5分钟随机选择一个,然后将其复制到image.jpg。然后,FFMPEG将新图像渲染到您的流中。
使用-f image 2 -loop 1 -thread_queue_size 512 -i image.jpg
非常重要,尤其是在渲染其他图像格式时。