标签: ip-camera

IP Camera,如何在网络上检测它?

我正在创建一个程序来与这个型号的IP Camera通信:

CVUL-I125

这有一个简单的Web界面,我已经成功地与它交谈以控制它,并从中获取视频和快照.

但是,我找不到任何关于如何检测此摄像机在网络上的良好文档,也没有找到它所具有的特定IP地址.

到目前为止,我发现它的唯一工具是捆绑的Windows软件.

我假设(希望!)有一种更好的方法,而不仅仅是迭代范围内的所有IP地址,并查看是否有类似于相机界面的东西.

有谁知道如何做到这一点?

这种事情是否有已知的API?

请注意,由于它是一台IP摄像机,因此它不能直接连接到我的计算机,因此我无法在本地安装任何内容.

以下是一些更多细节:

  • 我正在销售相机和软件,这意味着我不能依赖客户端的任何特定类型的设置,除了工作DHCP
  • 相机没有我可以找到的API文档,如果有人比我更强大的google-fu,请赐教
  • 相机具有DHCP支持,因此它确实成功连接到网络,问题是我之后如何可靠地找到它
  • 我不知道它是否有主机名,文档什么也没说,我自己的DHCP服务器只列出了它的MAC地址

api networking ip-camera

5
推荐指数
1
解决办法
2万
查看次数

OpenCV和网络摄像机 - 或者 - 如何监视邻居?


一点背景; 这个程序最初是为了与USB摄像头配合使用而设计的 - 但是由于摄像机需要的位置和计算机的位置之间的设置,切换到通过网络运行的摄像机更有意义.现在我正在尝试转换程序以实现这一目标,但到目前为止我的努力都遇到了糟糕的结果.我也在OpenCV论坛上问了同样的问题.帮我监视我的邻居!(当然,这是他们的许可!):D


我正在使用:

  • OpenCV v2.4.6.0
  • C++
  • D-Link云相机7100(安装程序是DCS-7010L,根据说明.)

我试图通过OpenCV访问DLink相机的视频源.

我可以通过浏览器的IP地址访问摄像头,没有任何问题.Unfourtunately; 我的计划不太合作.尝试访问摄像机时,程序会给出OpenCV生成的错误:

警告:打开文件时出错(../../modules/highgui/src/cap_ffmpeg_impl.hpp:529)

我尝试的几乎所有事情都会发生这种错误,但不会产生更多问题.

供参考 - 第529行OpenCV的cap_ffmpeg_impl.hpp中的代码如下:

522    bool CvCapture_FFMPEG::open( const char* _filename )
523    {
524        unsigned i;
525        bool valid = false;
526
527        close();
528
529    #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(52, 111, 0)
530        int err = avformat_open_input(&ic, _filename, NULL, NULL);
531    #else
532        int err = av_open_input_file(&ic, _filename, NULL, 0, NULL);
533    #endif
...
616    }
Run Code Online (Sandbox Code Playgroud)

...我不明白我在看什么.它似乎正在寻找ffmpeg版本 - 但我已经在该计算机上安装了最新的ffmpeg,所以这应该不是问题.

根据Sebastian Schmitz的建议,这是我尝试使用的编辑版本:

 1    #include …
Run Code Online (Sandbox Code Playgroud)

c++ camera opencv ffmpeg ip-camera

5
推荐指数
1
解决办法
3196
查看次数

使用python-gstreamer播放RTSP

我使用gstreamer从IP摄像机(如Axis)播放RTSP流.我使用如下命令行:

gst-launch-0.10 rtspsrc location=rtsp://192.168.0.127/axis-media/media.amp latency=0 ! decodebin ! autovideosink
Run Code Online (Sandbox Code Playgroud)

它工作正常.

我想用pygtk中的gui控制它,所以我使用gstreamer python绑定.我写了这段代码:

[...]
self.player = gst.Pipeline("player")
source = gst.element_factory_make("rtspsrc", "source")
source.set_property("location", "rtsp://192.168.0.127/axis-media/media.amp")
decoder = gst.element_factory_make("decodebin", "decoder")
sink = gst.element_factory_make("autovideosink", "sink")

self.player.add(source, decoder, sink)
gst.element_link_many(source, decoder, sink)

bus = self.player.get_bus()
bus.add_signal_watch()
bus.enable_sync_message_emission()
bus.connect("message", self.on_message)
bus.connect("sync-message::element", self.on_sync_message)
[...]
Run Code Online (Sandbox Code Playgroud)

但它不起作用并退出此消息:

gst.element_link_many(source, decoder,sink)
gst.LinkError: failed to link source with decoder
Run Code Online (Sandbox Code Playgroud)

我也尝试用这个来改进我的CLI,因为我只使用h264:

gst-launch-0.10 -v rtspsrc location=rtsp://192.168.0.127/axis-media/media.amp ! rtph264depay !  ffdec_h264 ! xvimagesink
Run Code Online (Sandbox Code Playgroud)

并在我的python代码中实现它:

[...]
self.player = gst.Pipeline("player")
source = gst.element_factory_make("rtspsrc", "source")
depay = gst.element_factory_make("rtph264depay", "depay") …
Run Code Online (Sandbox Code Playgroud)

python rtsp gstreamer h.264 ip-camera

4
推荐指数
2
解决办法
2万
查看次数

解码专有的H.264网络视频流?

我正试图查看我从eBay下车的这台IP摄像机(是的,是的,我知道).型号BL-5720IPW-L4MM.

无论如何,它们带有非常糟糕的基于Windows的应用程序,主要使用中文,而且功能非常差.我已经问过供应商我是否可以使用视频流的格式,所以我可以为他们提供Linux替代品 - 但是他们拒绝了...无论如何,它们非常昂贵,我需要从我的Linux读取视频流服务器(No X)并计划将流集成到linux应用程序'motion'中.但我无法弄清楚原始视频的开始位置,以及它的流媒体格式.

From what I can gather (in byte offset/length - desc - example):
0/4 Firmware Version - 8.4.4.5
5/2 H-res - 1280
7/2 V-res - 720

And what I know about the stream:
* 264/MPEG4 based codec
* 25fps
Run Code Online (Sandbox Code Playgroud)

以下是从TCP 9001捕获的原始数据(一旦连接就开始流式传输).如果任何人能够帮助我掌握这种格式,我们将不胜感激.完整的24MB(约60秒)捕获在这里可用,如果解码正确,应该显示我非常凌乱的桌子.

hexdump -n 1024 -C camera-capture.raw
00000000  08 04 04 05 00 05 d0 02  b0 01 f0 00 00 00 00 00  |................|
00000010  00 00 00 00 42 66 00 00  00 …
Run Code Online (Sandbox Code Playgroud)

c video-streaming h.264 ip-camera mpeg-4

4
推荐指数
1
解决办法
5446
查看次数

来自C#的IP Cam实时馈送

我正试图从C#app中的TPLink TL-SC3171G IP cam获取实时源.我尝试过使用AForge.NET库但没有运气.AForge.NET的示例代码对我不起作用.我收到"远程服务器返回错误:(401)未经授权的访问."

我可以通过浏览器使用基本的ip地址访问摄像头:"http://192.168.168.20".在应用程序中,我尝试过:

"http://username:password@192.168.168.20"
"http://username:password@192.168.168.20:port"
Run Code Online (Sandbox Code Playgroud)

你能帮我指点一下吗?它真的不一定是AForge.NET库.

这是代码:

using AForge.Video;
using AForge.Video.DirectShow;

namespace Player
{
    public partial class MainForm : Form
    {
        private Stopwatch stopWatch = null;

        // Class constructor
        public MainForm( )
        {
            InitializeComponent( );
        }

        private void MainForm_FormClosing( object sender, FormClosingEventArgs e )
        {
            CloseCurrentVideoSource( );
        }

        // "Exit" menu item clicked
        private void exitToolStripMenuItem_Click( object sender, EventArgs e )
        {
            this.Close( );
        }

        // Open local video capture device
        private void localVideoCaptureDeviceToolStripMenuItem_Click( object sender, …
Run Code Online (Sandbox Code Playgroud)

c# ip-camera

4
推荐指数
1
解决办法
2万
查看次数

从视频/图像中提取元数据

我从 IP 摄像机获取 MJPEG 流,我正在查看并保存在我的计算机上。我如何做的代码可以在这里找到。答案解释了如何从流中提取图像并保存它们。

为了提取图像,我使用答案中列出的方法并保存它,我只是使用 OpenCV 将图像放入 avi 容器中。代码如下。

writer=cv.CreateVideoWriter("video1.avi", cv.CV_FOURCC('X', '2', '6', '4'), fps, (320,240))
cv_image = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8),cv2.CV_LOAD_IMAGE_COLOR)bitmap=cv.CreateImageHeader((cv_image.shape[1], cv_image.shape[0]), cv.IPL_DEPTH_8U, 3)
cv.SetData(bitmap, cv_image.tostring(), cv_image.dtype.itemsize * 3 * cv_image.shape[1])
cv.WriteFrame(writer, bitmap)
Run Code Online (Sandbox Code Playgroud)

这里的位图是我正在显示并放入 avi 容器中的图像。

由于图像来自 IP 摄像机,因此它必须具有一些元数据,例如摄像机插入的时间戳。

问题:如何提取元数据?

我想到了两种方法来做到这一点:

  1. 从视频中提取帧,然后访问它们以访问时间戳。
  2. 从视频本身中提取时间戳。

我该如何进行?我使用哪种方法?我正在使用 Python 和 Opencv,并且正在 Windows 7 上工作。

我也读过与我正在尝试做的事情有关。它没有解决我的问题。

python video opencv metadata ip-camera

4
推荐指数
1
解决办法
1万
查看次数

OpenCV VideoCapture 摘要认证

我有一个正在进行的项目,通过 opencv VideoCapture 访问多个 IP 摄像机,适用于大多数摄像机。

我有一个新的大华 PTZ 摄像机,它使用摘要身份验证,OpenCV 中的 VideoCapture 无法打开它。通过 WireShark,我可以看到相机返回 401 Unaothorized。

我在 OpenCV 文档中没有找到任何有关身份验证问题的内容。

也许我需要使用 OpenCV 以外的其他东西来解决这个问题?

这是最低工作代码(如果您有相机要测试)。

#include <iostream>
#include <imgproc.hpp>
#include <opencv.hpp>
#include <highgui.hpp>

using namespace std;
using namespace cv;
int main(){
    while(1){
        VideoCapture cap("http://login:password@111.111.111.111/cgi-bin/snapshot.cgi");
        if(!cap.isOpened()){
            cout << "bug" << endl;
            continue;
        }
        Mat frame;
        cap >> frame;
        imshow("test", frame);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是相机的响应:

HTTP 未经授权的响应

c++ opencv digest-authentication ip-camera opencv3.3

4
推荐指数
1
解决办法
4698
查看次数

警告:找不到编解码器参数(../../modules/highgui/src/cap_ffmpeg_impl.hpp:540)

我试图从IP摄像头显示视频输入,得到以下错误

warning: Could not find codec parameters 

(../../modules/highgui/src/cap_ffmpeg_impl.hpp:540)
Run Code Online (Sandbox Code Playgroud)

这是相同的代码.

#include <stdio.h>
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv; 
using namespace std;
int main(int, char**) 
{ 
VideoCapture vcap; 
Mat image;
// This works on a D-Link CDS-932L
const string videoStreamAddress = "http://admin:admin123@172.41.20.55:80/?    action=stream?dummy=param.mjpg";//From mjpeg streamer
//const string videoStreamAddress = "http://192.168.1.13:8080/videofeed?   dummy=param.mjpg"; // Streaming from android using ip-cam

//open the video stream and make sure it's opened
if(!vcap.open(videoStreamAddress)) {


cout << "Error opening video stream or file" << std::endl;
return -1;
} …
Run Code Online (Sandbox Code Playgroud)

c++ video opencv ip-camera

3
推荐指数
1
解决办法
4886
查看次数

从海康威视IP摄像机中抓取相框

我在从远程IP摄像机抓取帧时遇到问题.我的雇主希望它在C#.NET(用于Windows)中完成,并且如果可能的话,使用轻量级解决方案,即不使用任何巨大的框架.

设备型号为DS-2CD2632F-I,我们目前连接到我的局域网,相机的网络界面工作得很好.

我已经尝试了几个流行的框架,例如AForge,EmguCV,OzekiSDK和Directshow.NET,但它们似乎都没有工作.特别是OzekiSDK(显然是由海康威视推荐的?)无法从相机中获取视频流,即使我只是使用提供的示例项目,它只是显示黑屏并抛出"空相机对象"异常如果我试图抓住一个框架.

摄像机的Web界面正常工作,甚至VLC播放器也能通过rtsp:// link(rtsp://my_ip:554//Streaming/Channels/1)成功地从摄像机播放流,而无需登录和密码.

我想过使用libvlcnet,但我不确定它是否可行.

你有什么建议?

.net c# ip-camera

3
推荐指数
1
解决办法
8277
查看次数

使用python和open cv连接海康相机

我想用 python 连接 Hikvision ip 摄像机并使用以下代码打开 cv :

import numpy as np
import cv2

cap = cv2.VideoCapture()
cap.open("rtsp://yourusername:yourpassword@172.16.30.248:555/Streaming/channels/2/")

while(True):
     # Capture frame-by-frame
    ret, frame = cap.read()

    # Our operations on the frame come here
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # Display the resulting frame
    cv2.imshow('frame',ret)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

当我运行我的代码时,我收到此错误:

    Traceback (most recent call last):
  File "C:\Users\Amin\Desktop\ip camera in py\csm.py", line 15, in <module>
    cv2.imshow('frame',ret)
cv2.error: OpenCV(4.0.0) c:\projects\opencv-python\opencv\modules\imgproc\src\color.hpp:261: error: …
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing ip-camera hikvision

3
推荐指数
1
解决办法
1万
查看次数