我目前尝试使用opencv分析udp流的屏幕截图。
目前,我正在使用带有ffmpeg的shell脚本来生成图像并将其以1 fps的速度保存到磁盘中,然后使用opencv4nodejs进行读取。但是我认为这不是最好的做法。
我正在使用opencv4nodejs:https://github.com/justadudewhohacks/opencv4nodejs
现在我已经厌倦了使用opencv的VideoCapture功能。
为进行调试,我目前打开流,获取屏幕快照并将其保存到磁盘。
const cv = require('opencv4nodejs');
const vCap = new cv.VideoCapture('udp://239.1.1.1:6670');
let frame;
class Streamer {
streamTest () {
frame = vCap.read();
cv.imwrite('./resources/output.png', frame);
};
}
module.exports = Streamer;
如果我使用的是UDP流,则配给比例是错误的,总是设置为4:3,但流显示的是16:9图像。
我可以调整帧的大小,但这不是这种情况下的合适解决方案,因为在此流中我还获得了4:3的图像。
如何以正确的比例分析udp流中的帧?
顺便说一句。我也无法使用
更改udp流的fps.set(cv.CAP_PROP_FPS, 1);
仅当我使用连接的网络摄像头流时,此方法才有效。
const vCap = new cv.VideoCapture(0);