c++ - OpenCV 接受不同端点的 HTTP 视频流
问题描述
我正在编写一个服务器,它通过 HTTP 接收实时视频流并为不同的端点执行一些操作。
我正在使用OpenCV
它,我的基本代码看起来像这样
void f1()
{
cv::VideoCapture cap("http://localhost:8080/operation1");
if (!cap.isOpened())
return;
for (;;)
{
cv::Mat frame;
cap >> frame;
// do something
}
}
void f2()
{
cv::VideoCapture cap("http://localhost:8080/operation2");
if (!cap.isOpened())
return;
for (;;)
{
cv::Mat frame;
cap >> frame;
// do something else
}
}
void f3() {...}
如您所见,每个函数都侦听不同的 HTTP 端点并执行不同的操作。每个函数在单独的线程中运行。
问题是由于某种原因OpenCV
忽略了端点中的资源部分,即如果ip:port
正确,它将接受流,无论它来自operation1
或operation2
。
出于测试目的,我将此命令用作流生成器
ffmpeg -i sample.mp4 -listen 1 -f matroska -c:v libx264 -preset fast -tune zerolatency http://localhost:8080/operation1
如何OpenCV
区分 HTTP 端点?我错过了什么?我以前没有任何关于OpenCV
照片/视频的经验。
解决方案
推荐阅读
- c# - 如何检查 com 对象是否已经在运行并获取它的实例
- list - 尝试从列表中返回唯一元素
- scala -
Scala 中的集合输出 - javascript - 在 React 上有很多绑定很好吗?
- java - 无法使用 onPause 对锁定/关闭屏幕执行操作
- swift - 如何获取对 MainWindow.xib 启动的主窗口的引用
- antlr4 - ANTLR4 目标文件名
- javascript - 带有切换动画的按钮单击
- python - Python pip install“错误:命令错误退出状态1”
- javascript - React Router Redirect - 将参数添加到路径名