Could not find IP Camera with RVCamera 7.5

RVMedia support and discussion (components for displaying and controlling IP cameras, webcams, video conferencing, video chats, recording audio and video files)
jdong
Posts: 11
Joined: Tue Mar 29, 2022 8:40 pm

Could not find IP Camera with RVCamera 7.5

Post by jdong »

hi,
After upgraded RVMedia from 5.0 to 7.5, the new compiled Windows Desktop Application could not find one of the IP Camera - it showed 'Could not find the Camera'; while the old executable with RVMedia 5.0 works fined.
The IP Camera is 3XLOGIC, the port is 80; username and password are required;

What could be the reason?
Thanks,
Sergey Tkachenko
Site Admin
Posts: 17562
Joined: Sat Aug 27, 2005 10:28 am
Contact:

Re: Could not find IP Camera with RVCamera 7.5

Post by Sergey Tkachenko »

Is it possible to open a video stream from this camera to me?
jdong
Posts: 11
Joined: Tue Mar 29, 2022 8:40 pm

Re: Could not find IP Camera with RVCamera 7.5

Post by jdong »

It's in our customer's site, with their restrict policy, they cannot open the video stream to us.
We tested different IP Camera in their network, the new Executable works with others IP Camera in the same network; worked with Web IP Camera too.
They had their IT guy checked the network and firewall, and found nothing could forbid the access of the Camera.
Is there anything else we do can do to figure out the reason? Do you think the log file will help?
Thanks,
Sergey Tkachenko
Site Admin
Posts: 17562
Joined: Sat Aug 27, 2005 10:28 am
Contact:

Re: Could not find IP Camera with RVCamera 7.5

Post by Sergey Tkachenko »

I can only suggest to modify source code and write some values to logs.
The unit is MRVSearchCamThreads.pas,

The methods are:
- TIsFoscamThread.IsFoscam_1
- TIsFoscamThread.IsFoscam_1_2
- TIsPanasonicThread.IsPanasonic
- TIsAxisThread.IsAxis

(I do not know which version of API this camera uses, so try to check all of them).

The questions are:
1) Are all these methods called?
2) Does some of them return True
3) If not... The methods start from calling ExecuteStr and assigning the returned value to a string. It would be useful to save this string to a log.
(please note that these methods are called in a thread context, so you cannot use UI in these methods)
jdong
Posts: 11
Joined: Tue Mar 29, 2022 8:40 pm

Re: Could not find IP Camera with RVCamera 7.5

Post by jdong »

I cannot find MRVSearchCamThreads.pas, but I found the methods you listed in MRVCamera.pas;
Actually, one thing I did not mention is that when I tested IP Camera with UserName and Password, I had to change the procedure ParseURL2 in MRVInetUtils.pas to make the PORT to be parsed correctly - looks like it would always use the default port 80 with the original logic
Is there anything wrong with the component installed on my computer?

Here is the original logic in MRVInetUtils.pas
procedure ParseURL2(const URL: String; out HostName, FileName: String;
out Port: Word; DefaultPort: Word);
var
Protocol, UserName, Password: String;
PortStr: String;
begin
PortStr := IntToStr(DefaultPort);
UserName := '';
Password := '';
ParseURL(URL, Protocol, HostName, FileName, UserName, Password, PortStr);
Port := StrToIntDef(PortStr, DefaultPort);
end;
Sergey Tkachenko
Site Admin
Posts: 17562
Joined: Sat Aug 27, 2005 10:28 am
Contact:

Re: Could not find IP Camera with RVCamera 7.5

Post by Sergey Tkachenko »

I remember there were problems with URL parsing in some older versions, but I do not remember exactly in which versions.
ParseURL2 seems to be correct: Port is assigned from PortStr (returned by ParseURL). So the bug, if it exists, is in ParseURL, not in ParseURL2.

I highly recommend to upgrade to newer version. At least to 7.5.1 (it can be downloaded from the same location as 7.5), but better to the newest version.
For any case, here are these functions in the new version:

Code: Select all

procedure ParseURL(URL: String; out Protocol, HostName, FileName: String;
  var UserName, UserPassword: String; var Port: String);
var
  i, j, prt: Integer;
  sPort, s: String;
begin
  i := Pos('://', URL);
  if i = 0 then
    Protocol := ''
  else
  begin
    Protocol := Copy(URL, 1, i + 2);
    System.Delete(URL, 1, i + 2);
  end;


  i := Pos('/', URL);
  j := Pos('\', URL);
  if (j > 0) and (j < i) then
    i := j;

  if i > 0 then
  begin
    HostName := Copy(URL, 1, i);
    FileName := Copy(URL, i, Length(URL) - i + 1);
  end
  else
  begin
    HostName := URL;
    FileName := '';
  end;

  if (Length(HostName) > 0) and
    ((HostName[Length(HostName)] = '/') or (HostName[Length(HostName)] = '\')) then
    SetLength(HostName, Length(HostName) - 1);

  i := Pos('@', LowerCase(HostName));
  if i > 0 then
  begin
    s := Trim(Copy(HostName, 1, i - 1));
    System.Delete(HostName, 1, i);
    UserName := Copy(s, 1, Pos(':', s) - 1);
    UserPassword := Trim(Copy(s, Pos(':', s) + 1, 99));
  end;

  sPort := '';
  i := Pos(':', LowerCase(HostName));
  if i <> 0 then
  begin
    sPort := Trim(Copy(HostName, i + 1, 99));
    prt := StrToIntDef(sPort, -1);
    if prt <> -1 then
    begin
      Port := IntToStr(prt);
      System.Delete(HostName, i, 99);
    end
    else
      Port := '';
  end;
end;
{------------------------------------------------------------------------------}
procedure ParseURL2(const URL: String; out HostName, FileName: String;
  out Port: Word; DefaultPort: Word);
var
  Protocol, UserName, Password: String;
  PortStr: String;
begin
  PortStr := IntToStr(DefaultPort);
  UserName := '';
  Password := '';
  ParseURL(URL, Protocol, HostName, FileName, UserName, Password, PortStr);
  Port := StrToIntDef(PortStr, DefaultPort);
end;
jdong
Posts: 11
Joined: Tue Mar 29, 2022 8:40 pm

Re: Could not find IP Camera with RVCamera 7.5

Post by jdong »

I just did a test with RVMedia 8, and compared the logic on my comoputer and the one you attached, they are same.
But looks like the issue related with ParseURL2 is still there, here are the details when I debug :

function TSearchCameraThread.SearchCameraToIP -> CheckConnect -> ParseURL2;
and in ParseURL2, the first line is PortStr := IntToStr(DefaultPort), and it sets the PortStr to be the default one - 80, and the port I passed in was replaced by 80;
After I made a change with ParseURL2 like this, the port could be parsed properly :
procedure ParseURL2(const URL: String; out HostName, FileName: String;
out Port: Word; DefaultPort: Word);
var
Protocol, UserName, Password: String;
PortStr: String;
begin
if port <> DefaultPort then
PortStr := IntToStr(Port)
else
PortStr := IntToStr(DefaultPort);
UserName := '';
Password := '';
ParseURL(URL, Protocol, HostName, FileName, UserName, Password, PortStr);
Port := StrToIntDef(PortStr, DefaultPort);
end;


----------------------------------------------
here is the related original logic:
function TSearchCameraThread.SearchCameraToIP(CameraTypes: TRVCameraTypes;
IP: string; APort : Word;
var AProtocolVersion: TRVProtocolVersion): TRVCameraTypes;
var
.....

// check access IP
if CheckConnect(TRVCamera(FOwner).Agent, IP,
TRVCamera(FOwner).UserName, TRVCamera(FOwner).UserPassword,
TRVCamera(FOwner).SearchHTTPTimeOut, APort) then
begin
......................

begin
Devices := [];
if not Assigned(FOwner) then
exit;

{$IFDEF CAMERA_SAVELOG}
AddTextLog(CAMERA_GUID + '.search', 'Search camera IP ' + IP);
{$ENDIF}
TRVCamera(FOwner).DoSetUserAccess(uaNone);

// check access IP
if CheckConnect(TRVCamera(FOwner).Agent, IP,
TRVCamera(FOwner).UserName, TRVCamera(FOwner).UserPassword,
TRVCamera(FOwner).SearchHTTPTimeOut, APort) then
begin

function CheckConnect(const AAgent, AURL, AUserName, AUserPassword: String;
ATimeOut : TRVTimeOut; APort: Word = DEFAULT_HTTP_PORT): Boolean;
var
hSession, hConnect, hRequest: HRVINTERNET;
UserName, Password: array [0 .. 63] of Char;
HostName, FileName: String;
dwStatus, dwStatusSize, tmp: Longword;
begin
Result := False;
ParseURL2(AURL, HostName, FileName, APort, DEFAULT_HTTP_PORT);
If (AURL = '') or (HostName = '') then


procedure ParseURL2(const URL: String; out HostName, FileName: String;
out Port: Word; DefaultPort: Word);
var
Protocol, UserName, Password: String;
PortStr: String;
begin
PortStr := IntToStr(DefaultPort);
UserName := '';
Password := '';
ParseURL(URL, Protocol, HostName, FileName, UserName, Password, PortStr);
Port := StrToIntDef(PortStr, DefaultPort);
end;
Sergey Tkachenko
Site Admin
Posts: 17562
Joined: Sat Aug 27, 2005 10:28 am
Contact:

Re: Could not find IP Camera with RVCamera 7.5

Post by Sergey Tkachenko »

In ParseURL2, Port is supposed to be an output-only parameter.
The input parameters are URL and DefaultPort, where DefaultPort must be used only if URL does not contain a port number.

The bug is not here but in CheckConnect, in the call of ParseURL2.
Instead of
ParseURL2(AURL, HostName, FileName, APort, DEFAULT_HTTP_PORT);
it must be
if APort = 0 then
APort := DEFAULT_HTTP_PORT;
ParseURL2(AURL, HostName, FileName, APort, APort);


After that, if RVCamera.CameraHost contains port, it will be used (it's not supposed to contain port, but it's checked for any case).
Otherwise, RVCamera.CameraPort will be used, if non-zero. Otherwise, DEFAULT_HTTP_PORT (=80) will be used.
jdong
Posts: 11
Joined: Tue Mar 29, 2022 8:40 pm

Re: Could not find IP Camera with RVCamera 7.5

Post by jdong »

All four methods returns false, here is log of ExecuteStr:

174624281: CheckConnect After InternetConnect
174624281: CheckConnect InternetConnect success
174624609: IsFoscam_1 Start................
174624609: IsPanasonic Start................
174624625: IsAxis Start................
174624640: IsPanasonic 1: false s:<?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

174624640: IsPanasonic End................ s : <?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

174624953: IsAxis 1: false s:<?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

174624953: IsAxis End................ s : <?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

174625031: IsFoscam_1 1: false s:<?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

174625031: IsFoscam_1 end................ s: <?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

174625031: IsFoscam_1_2 Start................
174626546: IsFoscam_1_2 1: false s:<html>
<head><meta http-equiv="refresh" content="1; url=/cgi-bin/index.cgi "></head>
</html>
174626546: IsFoscam_1_2 end................ s : <html>
<head><meta http-equiv="refresh" content="1; url=/cgi-bin/index.cgi "></head>
</html>
Sergey Tkachenko
Site Admin
Posts: 17562
Joined: Sat Aug 27, 2005 10:28 am
Contact:

Re: Could not find IP Camera with RVCamera 7.5

Post by Sergey Tkachenko »

Is it possible to make this test in older version of RVMedia which was able to detect the camera?
jdong
Posts: 11
Joined: Tue Mar 29, 2022 8:40 pm

Re: Could not find IP Camera with RVCamera 7.5

Post by jdong »

Looks like it retuned simular information when we tested with the old component;
All four methods returns false;
Enclosed is the log file - the file name is search_cam.txt, here are some comments of the contents:
1. the first part is log information when searching an online Web Camera, the IP is 158.39.49.51 - our Exe with new component or old component shows the video from this IP Camera properly
2. the IP camera which we want to make it work is 10.123.2.142 - you can search it in the log file; I copied the log contents here too:
---------------------------------------------------------------------------

Search camera Execute
Search camera
Search camera IP 158.39.49.51
IsFoscam_1 Start................
IsFoscam_1 1: false ExecuteStr:<html><head><title>404 not found</title></head>
<body><h1>404 not found</h1>
the requested url /get_status.cgi was not found on this server.
</body></html>

IsFoscam_1 end................ ExecuteStr: <html><head><title>404 not found</title></head>
<body><h1>404 not found</h1>
the requested url /get_status.cgi was not found on this server.
</body></html>

IsFoscam_1_2 Start................
IsFoscam_1_2 1: false ExecuteStr:
<!doctype html public "-//w3c//dtd html 4.01 transitional//en">
<html>
<head>
<meta http-equiv="expires" content="tue, 12 may 1962 1:00:00 gmt">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta http-equiv="content-language" content="en">


<meta http-equiv="refresh" content="0; url=/view/index.shtml">


<title>index page</title>
<noscript>
your browser has javascript turned off.<br>for the user interface to work effectively, you must enable javascript in your browser and reload/refresh this page.
</noscript>
</head>
<body>
</body>
</html>


IsFoscam_1_2 end................ ExecuteStr:
<!doctype html public "-//w3c//dtd html 4.01 transitional//en">
<html>
<head>
<meta http-equiv="expires" content="tue, 12 may 1962 1:00:00 gmt">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta http-equiv="content-language" content="en">


<meta http-equiv="refresh" content="0; url=/view/index.shtml">


<title>index page</title>
<noscript>
your browser has javascript turned off.<br>for the user interface to work effectively, you must enable javascript in your browser and reload/refresh this page.
</noscript>
</head>
<body>
</body>
</html>


IsPanasonic Start................
IsPanasonic 1: false ExecuteStr:<html><head><title>404 not found</title></head>
<body><h1>404 not found</h1>
the requested url /nphpantiltcontrol was not found on this server.
</body></html>

IsPanasonic End................ ExecuteStr: <html><head><title>404 not found</title></head>
<body><h1>404 not found</h1>
the requested url /nphpantiltcontrol was not found on this server.
</body></html>

IsAxis Start................
IsAxis 1: true ExecuteStr:root.audio.duplexmode=get
root.audio.maxlisteners=20
root.audio.connectedclients=0
root.audio.a0.enabled=no
root.audio.a0.httpmessagetype=singlepart
root.audiosource.nbrofsources=1
root.audiosource.a0.audioencoding=aac
root.audiosource.a0.samplerate=8000
root.audiosource.a0.bitrate=16000
root.brand.brand=axis
root.brand.prodfullname=axis 247s video server
root.brand.prodshortname=axis 247s
root.brand.prodnbr=247s
root.brand.prodtype=video server
root.brand.weburl=http://www.axis.com/
root.imagesource.nbrofsources=1
root.input.nbrofinputs=1
root.network.rtp.nbrofrtpgroups=1
root.output.nbrofoutputs=1
root.properties.api.http.version=2
root.properties.api.http.adminpath=/operator/basic.shtml
root.properties.audio.audio=yes
root.properties.audio.format=g711,g726,aac
root.properties.firmware.buildnumber=3
root.properties.firmware.builddate=apr 19 2007 18:18
root.properties.firmware.version=4.42
root.properties.https.https=yes
root.properties.image.rotation=0
root.properties.image.resolution=4cif,vga,2cif,cif,qvga,qcif
root.properties.image.format=jpeg,mjpeg,mpeg4
root.properties.motion.motion=yes
root.properties.system.language=english
root.properties.system.hardwareid=15d
root.properties.system.serialnumber=00408c87df5d

IsAxis User Access2 ExecuteStr:root.audio.duplexmode=get
root.audio.maxlisteners=20
root.audio.connectedclients=0
root.audio.a0.enabled=no
root.audio.a0.httpmessagetype=singlepart
root.audiosource.nbrofsources=1
root.audiosource.a0.audioencoding=aac
root.audiosource.a0.samplerate=8000
root.audiosource.a0.bitrate=16000
root.brand.brand=axis
root.brand.prodfullname=axis 247s video server
root.brand.prodshortname=axis 247s
root.brand.prodnbr=247s
root.brand.prodtype=video server
root.brand.weburl=http://www.axis.com/
root.imagesource.nbrofsources=1
root.input.nbrofinputs=1
root.network.rtp.nbrofrtpgroups=1
root.output.nbrofoutputs=1
root.properties.api.http.version=2
root.properties.api.http.adminpath=/operator/basic.shtml
root.properties.audio.audio=yes
root.properties.audio.format=g711,g726,aac
root.properties.firmware.buildnumber=3
root.properties.firmware.builddate=apr 19 2007 18:18
root.properties.firmware.version=4.42
root.properties.https.https=yes
root.properties.image.rotation=0
root.properties.image.resolution=4cif,vga,2cif,cif,qvga,qcif
root.properties.image.format=jpeg,mjpeg,mpeg4
root.properties.motion.motion=yes
root.properties.system.language=english
root.properties.system.hardwareid=15d
root.properties.system.serialnumber=00408c87df5d

IsAxis End................ ExecuteStr: root.audio.duplexmode=get
root.audio.maxlisteners=20
root.audio.connectedclients=0
root.audio.a0.enabled=no
root.audio.a0.httpmessagetype=singlepart
root.audiosource.nbrofsources=1
root.audiosource.a0.audioencoding=aac
root.audiosource.a0.samplerate=8000
root.audiosource.a0.bitrate=16000
root.brand.brand=axis
root.brand.prodfullname=axis 247s video server
root.brand.prodshortname=axis 247s
root.brand.prodnbr=247s
root.brand.prodtype=video server
root.brand.weburl=http://www.axis.com/
root.imagesource.nbrofsources=1
root.input.nbrofinputs=1
root.network.rtp.nbrofrtpgroups=1
root.output.nbrofoutputs=1
root.properties.api.http.version=2
root.properties.api.http.adminpath=/operator/basic.shtml
root.properties.audio.audio=yes
root.properties.audio.format=g711,g726,aac
root.properties.firmware.buildnumber=3
root.properties.firmware.builddate=apr 19 2007 18:18
root.properties.firmware.version=4.42
root.properties.https.https=yes
root.properties.image.rotation=0
root.properties.image.resolution=4cif,vga,2cif,cif,qvga,qcif
root.properties.image.format=jpeg,mjpeg,mpeg4
root.properties.motion.motion=yes
root.properties.system.language=english
root.properties.system.hardwareid=15d
root.properties.system.serialnumber=00408c87df5d

Finish search camera IP 158.39.49.51
Search camera Prepare
Prepare
Start Prepare thread
Finish Prepare thread
Finish Prepare
Finish search camera
Finish search camera Execute
Search camera Execute
Search camera
Search camera IP 10.123.2.142
IsFoscam_1 Start................
IsFoscam_1 1: false ExecuteStr:<?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsFoscam_1 end................ ExecuteStr: <?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsFoscam_1_2 Start................
IsFoscam_1_2 1: false ExecuteStr:<html>
<head><meta http-equiv="refresh" content="1; url=/cgi-bin/index.cgi "></head>
</html>
IsFoscam_1_2 end................ ExecuteStr: <html>
<head><meta http-equiv="refresh" content="1; url=/cgi-bin/index.cgi "></head>
</html>
IsPanasonic Start................
IsPanasonic 1: false ExecuteStr:<?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsPanasonic End................ ExecuteStr: <?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsAxis Start................
IsAxis 1: false ExecuteStr:<?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsAxis End................ ExecuteStr: <?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

Finish search camera IP 10.123.2.142
Finish search camera
Finish search camera Execute
Search camera Execute
Search camera
Search camera IP 10.123.2.142
IsFoscam_1 Start................
IsFoscam_1 1: false ExecuteStr:<?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsFoscam_1 end................ ExecuteStr: <?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsFoscam_1_2 Start................
IsFoscam_1_2 1: false ExecuteStr:<html>
<head><meta http-equiv="refresh" content="1; url=/cgi-bin/index.cgi "></head>
</html>
IsFoscam_1_2 end................ ExecuteStr: <html>
<head><meta http-equiv="refresh" content="1; url=/cgi-bin/index.cgi "></head>
</html>
IsPanasonic Start................
IsPanasonic 1: false ExecuteStr:<?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsPanasonic End................ ExecuteStr: <?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsAxis Start................
IsAxis 1: false ExecuteStr:<?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsAxis End................ ExecuteStr: <?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

Finish search camera IP 10.123.2.142
Finish search camera
Finish search camera Execute
Search camera Execute
Search camera
Search camera IP 10.123.2.142
IsFoscam_1 Start................
IsFoscam_1 1: false ExecuteStr:<?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsFoscam_1 end................ ExecuteStr: <?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsFoscam_1_2 Start................
IsFoscam_1_2 1: false ExecuteStr:<html>
<head><meta http-equiv="refresh" content="1; url=/cgi-bin/index.cgi "></head>
</html>
IsFoscam_1_2 end................ ExecuteStr: <html>
<head><meta http-equiv="refresh" content="1; url=/cgi-bin/index.cgi "></head>
</html>
IsPanasonic Start................
IsPanasonic 1: false ExecuteStr:<?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsPanasonic End................ ExecuteStr: <?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsAxis Start................
IsAxis 1: false ExecuteStr:<?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsAxis End................ ExecuteStr: <?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

Finish search camera IP 10.123.2.142
Search camera Prepare
Finish search camera
Finish search camera Execute
Search camera Execute
Search camera
Search camera IP 10.123.2.142
IsFoscam_1 Start................
IsFoscam_1 1: false ExecuteStr:<?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsFoscam_1 end................ ExecuteStr: <?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsFoscam_1_2 Start................
IsFoscam_1_2 1: false ExecuteStr:<html>
<head><meta http-equiv="refresh" content="1; url=/cgi-bin/index.cgi "></head>
</html>
IsFoscam_1_2 end................ ExecuteStr: <html>
<head><meta http-equiv="refresh" content="1; url=/cgi-bin/index.cgi "></head>
</html>
IsPanasonic Start................
IsPanasonic 1: false ExecuteStr:<?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsPanasonic End................ ExecuteStr: <?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsAxis Start................
IsAxis 1: false ExecuteStr:<?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

IsAxis End................ ExecuteStr: <?xml version="1.0" encoding="iso-8859-1"?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 not found</title>
</head>
<body>
<h1>404 not found</h1>
</body>
</html>

Finish search camera IP 10.123.2.142
Search camera Prepare
Finish search camera
Finish search camera Execute
Sergey Tkachenko
Site Admin
Posts: 17562
Joined: Sat Aug 27, 2005 10:28 am
Contact:

Re: Could not find IP Camera with RVCamera 7.5

Post by Sergey Tkachenko »

If I understand correctly, one camera is detected as Axis camera, another camera is not detected as a special camera model.

But in addition to detection of Foscam/Panasonic/Axis/DLink model, there is a detection by video URL templates. It is called only if a specific camera model is not detected.

The search thread enumerates video URL templates (they are defined in MRVIPCamList unit), and checks if they may contain video.

There are two lists: video URLs for MJpeg cameras and video URLs for H.264 cameras.
RVCamera.SearchCamera enumerates MJpeg URLs if RVCamera.VideoFormat = rvvfMJPEG, and enumerates H.264 URLs otherwise.

So, probably the new version of RVMedia cannot find the camera because of the wrong value of VideoFormat property.

We need to find which video URL is detected.
Please make a test in RVMedia version that can show video from this camera.
We need to know the return value of TSearchCameraThread.IsCamDevices method. It must be a video URL.
jdong
Posts: 11
Joined: Tue Mar 29, 2022 8:40 pm

Re: Could not find IP Camera with RVCamera 7.5

Post by jdong »

Yes, that's correct - one camera which was identified as Axis camera is an Web Camera which showed video correctly - the IP is 158.39.49.51.
The one with 10.123.2.142 is the one which we want to make work, and but we could not see the video from this Camera.

With the old component, it showed an URL (it could be checked in the enclosed screen shot), and looks like the URL is rvctSamsung defined in MRVIPCamList.pas :
(Device : [rvctSamsung]; Model : 'SN?-???? Camera, Camera (2)'; VideoFormat: 'MJPEG' ; URL : 'http://IPADDRESS/cgi-bin/video.cgi?msubmenu=mjpg')
Attachments
URL.png
URL.png (20.82 KiB) Viewed 126367 times
Sergey Tkachenko
Site Admin
Posts: 17562
Joined: Sat Aug 27, 2005 10:28 am
Contact:

Re: Could not find IP Camera with RVCamera 7.5

Post by Sergey Tkachenko »

Yes, I can see this template still exists in the list of MJpeg cameras.

Are you sure that RVCamera.VideoFormat = rvvfMJPEG when you call RVCamera.SearchCamera?
jdong
Posts: 11
Joined: Tue Mar 29, 2022 8:40 pm

Re: Could not find IP Camera with RVCamera 7.5

Post by jdong »

I will check it.
Can you tell me where can I find the logic to identify the Videoformat before calling RVCamera.SearchCamera, so that I can put some log their to check why it's not MJPEG, or how the VideoFormat is determined ? (Is that because of multiple channel from the IP Camera?)
Post Reply