如何解决使用ffmpeg在视频流上覆盖图像
我正在尝试将图像叠加在网络摄像头的视频流(/dev/video0
)上,并将输出发送到另一个视频流(/dev/video2
)。到目前为止,我已经改编了this question的解决方案,可以在现有视频上覆盖(缩放)图像并将其流式传输到适当的输出。
ffmpeg -stream_loop -1 -re -i video.mp4 -i image.png \
-filter_complex "[1][0]scale2ref[i][m];[m][i]overlay[v]" \
-map "[v]" -f v4l2 /dev/video2
我可以用什么代替-stream_loop
从/dev/video0
(网络摄像头)中获取视频并在其上实时叠加相同的图像?
解决方法
我能够通过删除-stream_loop
参数并使用-pix_fmt yuv420p
指定视频流的格式来解决此问题。
ffmpeg -re -i /dev/video0 -i image.png -pix_fmt yuv420p \
-filter_complex "[1][0]scale2ref[i][m];[m][i]overlay[v]" \
-map "[v]" -f v4l2 /dev/video2
从llogan的注释中进一步细化会导致以下最终命令:
ffmpeg -i /dev/video0 -i image.png -filter_complex \
"[1][0]scale2ref[i][m];[m][i]overlay=format=auto,format=yuv420p[v]" \
-map "[v]" -f v4l2 /dev/video2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。