使用OpenCV帧创建RTP / RTSP或HTTP流

时间:2018-03-15 07:18:04

标签: c++ opencv ffmpeg video-processing rtp

我有一个定制板,它从IP摄像机获取输入流,应用程序使用OpenCV在输入视频流上执行面部检测。

我的用例是通过网络提供输出流,可以通过VLC在同一网络中连接的任何设备上访问。

我尝试通过VideoWriter编写OpenCV框架:

VideoWriter outStream("/home/user/frames/frame.mjpg", CV_FOURCC('M','J','P','G'), CAP_PROP_FPS, img.size(), true);
 if (outStream.isOpened()){
     outStream.write(img);

使用mjpg_streamer创建流:

mjpg_streamer -i "input_file.so -f /home/user/frames" -o "output_http.so -w /usr/local/www -p 5241"

但是上面的过程显示了很多延迟。 我无法使用imshow,因为我的硬件没有任何视频输出端口。

这是我的代码:https://pastebin.com/s66xGjAC

1 个答案:

答案 0 :(得分:2)

我建议使用imwrite()将jpeg图像保存在Mjpeg-Streamer指定的目录中。写低质量的Jpegs,设置" CV_IMWRITE_JPEG_QUALITY"达到满足您要求的最低值。