Unable to acquire the live (streaming) video h264 over rtsp of my ip camera using the “IP camera acquisition” package on Matlab2020b

I am unable to acquire the live (streaming) video of my ip camera using the “IP camera acquisition” package.
Premise:
(1) Operating System: MacOS Big Sur (11.0.1)
(2) Matlab version: 2020b
(3) Installed package: IP camera acquisition packages
(4) Camera type: Dahua DH-IPC-HFW2431TP-ZAS
I would like to capture live video from my camera using the rtsp link with H264 codec. I did a lot of testing, but never managed to capture the video stream. The rtsp links I used are (7):
rtsp://admin:admin1993@192.168.0.108:554/cam/realmonitor?channel=1&subtype=0
rtsp: //192.168.0.108: 554/live
Both of these links placed on any browser open VLC correctly and the video stream is regularly captured.
Camera data:
IP address: 192.168.0.108
admin: admin
password: admin1993
RTSP port: 554
Resolution: 1080p (I also tried 720p and other formats)
Bit rate: 4096 kbit / s (I did different tests with different rate)
Below I have reported some of the tests carried out:
cam = ipcam('rtsp://admin:admin1993@192.168.0.108:554/cam/realmonitor?channel=1&subtype=0')
cam = ipcam('rtsp://admin:admin1993@192.168.0.108:554/cam/realmonitor?channel=1&subtype=0','admin','admin1993')
cam = ipcam('rtsp://192.168.0.108:554/live','admin','admin1993')
cam = ipcam('rtsp://192.168.0.108:554/live')
I also tried to do some tests by changing the 'Timeout' time but to no avail:
cam = ipcam('rtsp://192.168.0.108:554/live','admin','admin1993','Timeout',30)
The error generated is always the same:
Cannot connect to the IP Camera Stream URL. Make sure the URL is correct and authentication is provided if needed.
I have read the PDF guide on the MATLAB website several times and I believe I have made all the correct configurations: https://it.mathworks.com/help/pdf_doc/supportpkg/ipcamera/ipcamera_ug.pdf
Can anyone help me to solve this problem?
I thought it was a codec problem or camera settings everything seems fine. I also leave attached a photo of the characteristics of the video stream.
Many thanks in advance

4 Commenti

As an experiment, try opening Network Utility https://osxdaily.com/2013/10/31/use-network-utility-mac-os-x/ and go to the portscan section, and ask for a port scan for 192.168.0.108 to see whether any ports at that IP address can be reached (and which ones)
Thank you so much for the answer @Walter. The Network Utily Tool is no longer available for MacOS Big Sur. But I try this experiment with nmap command inside the terminal (Homebrew). The result is as expected, the ports communicate correctly.
Were you able to solve this issue?
The problem is that, the cam requires “digest” authentication scheme, but the ipcam library (Matlab) can only provide “basic” authentication scheme.
Hope can help you

Accedi per commentare.

 Risposta accettata

After contacting support I was able to figure out what the problem was:
"Unfortunately, MATLAB do not support cameras having only digest authentication yet and currently there is no workaround available for this limitation. We sincerely apologize for the inconvenience this brought to you.
Our developers have plans to support this feature in one of the future releases. I have added you into our notify list, so you will get updates once this feature is published in one of the future releases."
Joey Wang from support

1 Commento

Hi, Lorenzo Giannini. I have also encountered this problem listed above, and tried every solution like you but failed. Fortunately, this sentence of "Unfortunately, MATLAB do not support cameras having only digest authentication yet " enlightens me. Such being the case, why not to change the RTSP Authentication of IP cameras to basic authentication. Take HIKVISION IP camera (DS-2CD4024F or DS-2CD3T25) for example, in the camera's web interface, we can set the RTSP Authentication to digest/basic, and ipcam() can work well. Thank you for your information posted above.

Accedi per commentare.

Più risposte (3)

The MATLAB Support Package for IP Cameras now supports "digest authentication" from R2022b release.

2 Commenti

This issue still exists in R2023a release; the bug is not yet fixed.
@MathWorks MATLAB Hardware Team, Can you suggest why the issue still exists in 23a release though you have mentioned that its fixed in R2022b release
Hi Rajasekar,
The issue that you are facing could be a different one, as digest authentication is supported in all releases from 22b. Please ensure you have installed the latest updates for 23a release and for the IP camera support package. You can follow the steps here for installing the updates.
If you are still facing an issue, please reach out to us at MathWorks Technical Support: https://www.mathworks.com/support/contact_us.html , and we can debug this issue further.
Thanks

Accedi per commentare.

Hey, I need to read the IP camera in MATLAB, but not working.
I tried most possible solutions but not working with me, I need help reading the IP or at least the correct way to find a working URL with matlab.
All the URLs I used worked with VLC but not with matlab. Is there a solution?
The problem I find is 'Cannot connect to the IP Camera Stream URL.' Make sure the URL is correct and authentication is provided if needed.' I test many of code but i find the same error.
cam = ipcam('http://192.168.147.147:8080/video'); %kheddam
cam = ipcam('http://192.168.1.108:80/stream','admin','admin'); %kheddam
cam = ipcam('http://192.168.1.108:8080/video','admin','admin'); %kheddam
cam = ipcam('http://192.168.1.108:8080//#/index/','admin','admin'); %kheddam
cam = ipcam('rtsp://192.168.1.108:554/cam/realmonitor?channel=1&subtype=0','admin','admin'); %kheddam
cam = ipcam('http://192.168.1.108:80/..','admin','admin'); %kheddam
cam = ipcam('http://admin:admin@192.168.1.108:80/axis-cgi/mjpg/video.cgi'); %kheddam
cam = ipcam('rtsp://192.168.1.108:554/cam/realmonitor?channel=1&subtype=0','admin','admin'); %kheddam
cam = ipcam('http://192.168.1.108:80/live','admin','admin'); %kheddam
cam = ipcam('http://192.168.1.108:80/cam/realmonitor?channel=1&subtype=0','admin','admin'); %kheddam
cam = ipcam('http://192.168.1.108:80/live','admin','admin'); %kheddam
cam = ipcam('http://192.168.1.108:80/live','admin','admin'); %kheddam
cam = ipcam('http://192.168.1.108:80/live','admin','admin'); %kheddam
cam = ipcam('rtsp://192.168.1.108:554/Streaming/Channel/1','admin','admin'); %kheddam
czz=ipcam('http://192.168.1.108:80/cgi-bin/CGIStream.cgi?cmd=GetMJStream');%Foscam
czz=ipcam('http://192.168.1.108:80/channel=1&subtype=0');
eee=ipcam('rtsp://192.168.1.108:554/Streaming/Channels/101','admin','admin');
I test all of this codes but always I have tha same error.
Camera Dahua
Matlab R2017a
I got struck in same problem.
Camera is CP PLUS. Model: CP-UNC-DA41PL3-Y
I can access the stream using VLC. In VLC Iam using RTSP URL rtsp://admin:admin123@192.168.1.2:554/cam/realmonitor?channel=1&subtype=0
Codec as checked in VLC is H264.
MATLAB Version: 24.1.0.2689473 (R2024a) Update 6
Iam able to ping the camera from matlab.
Error everytime while using ipcam() is "Cannot connect to the IP Camera Stream URL. Make sure the URL is correct and authentication is provided if needed"
tried:
%%method-1
URL='rtsp://admin:admin123@192.168.1.2:554/cam/realmonitor?channel=1&subtype=0';
cam1=ipcam(URL,'admin','admin123');

4 Commenti

Use hebicam instead of the official support package. MATLAB Support Package for IP Cameras are a little bit more limitted for some ip cameras. Hebicam is written in MATLAB, and it uses JavaCV to read rtsp streamings. You can find this class of Hebcam in Hebicam, and there are three caveats on the file of the Hebicam.m:
  1. If the image captured using Hebicam is not clear or distorted, please change 'udp' to 'tcp' as follows
  2. Move the function of delete from outside the body of classdef Hebicam < handle to inside like this:
  3. If the streamings sended by the ip cameras have the audio streaming, please disable the audio streaming, or the Hebicam class will crash.
Hi Manmeet,
Please reach out to us at MathWorks Technical Support: https://www.mathworks.com/support/contact_us.html , and we can debug this issue further.
Thanks
Hi
I tried with Public firewall off in my Windows 10 Laptop and it worked to my amazement !
Thanks for your input @Vineeth Nair and @Yafei Wang.
I Also tried the hebicam as suggested by Yafel, but for some reasons it did not worked with firewall off. Was not able to fetch live stream of the camera. I will be giving a try again and will provide my feedback.Thanks for your time.
If you want to use Hebicam class to capture the RTSP streaming, you should do the following steps:
  1. Modify the file of HebiCam class "HebiCam.m" as I mentioned in the answer above;
  2. Put the file of hebicam class and the supporting JAR file of ''hebicam-1.1-all-x86_64.jar" in the same folder;
  3. In Matlab script, use the commands to create an HebiCam object and capture the real-time frames as follows:
  4. Note that when you create a HebiCam object, the HebiCam will generate a temporary file named like 'shared_****-**-**_**-**-**.***.tmp', don't delete it and it is used to map the data in memory, and allow us to get the real-time frame data in time.
camObj = HebiCam('rtsp://admin:123456@169.254.56.212:554/Streaming/Channels/101','timeout',15);
frameData = getsnapshot(camObj);
imshow(frameData);

Accedi per commentare.

Categorie

Scopri di più su MATLAB Support Package for IP Cameras in Centro assistenza e File Exchange

Prodotti

Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by