我希望能够将梯形失真校正应用于网络摄像头流。原始图像流包含一个矩形背景,我使用的是矩形覆盖,用户拖动角以匹配图像中的实际角。最后,用户单击将坐标发送到服务器的按钮。然后服务器更新过滤器参数并重新启动流。一切都可以用于ffmpeg
将 RTMP 流式传输到nginx
,但由滞后生成的 HLS 流nginx
不能令人满意和/或挂起。我使用过滤器如下:
-lavfi "perspective=x0=100:y0=20:x1=520:y1=20:x2=100:y2=380:x3=520:y3=380:interpolation=linear:sense=source"
切换到使用motion
流式传输图像具有更好的实时性能,我可以将图像嵌入到上面描述的 HTML 中。问题是我找不到将ffmpeg
过滤器插入motion
流的方法,我认为它仅适用于保存的文件。有可能吗?
使用来自维护者的指针
motion
,我得到了这个工作:v4l2loopback
设备。在我的例子中,它报告了环回设备/dev/video2
,因此ffmpeg
命令从网络摄像头流/dev/video0
过透视过滤器,纠正梯形失真效果,并将结果放入/dev/video2
.motion
,但使用环回设备作为相机输入。仍然需要做一些事情才能
ffmpeg
很好地重新开始,但现在大部分时间都在那里。