I have a few WAPA BL-720I cameras with POE dongles. The POE dongles cause the cameras to have a static IP that's hardware set and video is indeed viewable with Windows using their software.
However, I have been unable to stream video using zoneminder, vlc, or mplayer.
The ports of interest according to a support e-mail are 80 (actually 8000) which is a statistics page with:
ClientStream:1 ClientCtrl:1 bits_rate:0.000000 frame:0.000000 rGain:200 bGain:205 switchircut:0
And ports 9000/9001 which appear to be the video streaming ports.
When configuring the camera in zone minder with http, the ip address, and port 9000 all I receive is a black screen.
When connecting over telnet, I receive the following login message:
MontaVista(R) Linux(R) Professional Edition 4.0.1 (0502020)
Linux/armv5tejl 2.6.10_mvl401_IPNC-1.0.6
as far as I can tell, the streaming software on the camera is located at
/opt/ipnc/encode_stream
A text file there states the program is actually "encode" and it's copyright Texas Instruments Inc 2007
the autorun.sh in the same directory executes this file as is without any parameters and I can not find any plane text config files.
I can provide a dump of the linux OS on the cameras or perform any other diagnostic probes as needed.
Any help that anybody can provide would be greatly appreciated
I am currently waiting for a response from customer support regarding more detailed information on the ports as well as possible activation signals that have to be sent to the ports.
The software provided by wapa does not state if the connection to the cameras is rstp mms or http and it does not list any port numbers.
EDIT:
It appears that I can stream some sort of data to a file using "netcat <ip> 9001 > somefile"
when attempting to play this file using mplayer, it identifies the file format as h263... which is odd because the camera is only supposed to support mpeg-4/h.264
I will play with this file a bit more an try to get a h.263 codec
------
Camera Specs:
http://www.wapa.cc/html/en/product/02/2010/0602/98.html
zenmap scan for open ports:
21/tcp open ftp
23/tcp open telnet
513/tcp open rlogin
514/tcp open unknown
8000/tcp open http-alt - small statistics page
9000/tcp open unknown
9001/tcp open unknown
With UDP scan
643/udp open|filtered unknown
8181/udp open|filtered unknown
17836/udp open|filtered unknown
19022/udp open|filtered unknown
30544/udp open|filtered unknown
33355/udp open|filtered unknown
49201/udp open|filtered unknown
51586/udp open|filtered unknown
57172/udp open|filtered unknown
61481/udp open|filtered unknown
Need Help with WAPA BL-720I - zm v1.24.2
Texas Instruments: IP Network Camera Reference Design on DM365
http://wenku.baidu.com/view/881bcac7aa0 ... 7cad0.html
that contains information that looks like same than in your post.
http://wenku.baidu.com/view/881bcac7aa0 ... 7cad0.html
that contains information that looks like same than in your post.
Code: Select all
Here we suppose the HD camera's index is index.
#ifndef _WAPA_SDK_H
#define _WAPA_SDK_H
#define DLL_EXPORT extern "C" __declspec(dllexport)
#define WAPA_IPC_NOERROR 0 //No error
#define WAPA_IPC_INVALID_INDEX 1 //Invalid index for camera
#define WAPA_IPC_NOT_LOGIN 2 //The index is not created
#define WAPA_IPC_NOINIT 3 //
#define WAPA_IPC_NETINIT_FAILED 4 //Internet initialization failed
#define WAPA_IPC_PARAMETER_ERROR 5 //Parameter error
#define WAPA_IPC_NETWORK_NOT_CONNECT 6 //Cameras not connected
#define WAPA_IPC_NETWORK_FAIL_CONNECT 7 //Cameras connection failed
#define WAPA_IPC_NETWORK_SEND_ERROR 8 //Send to camera failed
#define WAPA_IPC_NETWORK_RECV_ERROR 9 //Receiving data from cameras failed
#define WAPA_IPC_NETWORK_RECV_TIMEOUT 10 //Time out for receiving data from cameras
#define WAPA_IPC_NETWORK_ERRORDATA 11 //Data transmission error
#define WAPA_IPC_BUSY 12 //Camera busy
#define WAPA_IPC_OPENHOSTSOUND_FAIL 13 //Open PC sound failed
#define WAPA_IPC_FILEOPENFAIL 14 //Open file failed
#define WAPA_IPC_FILECHECKFAIL 15 //File checking error
#define WAPA_IPC_FILEFORMAT_ERROR 16 //File fromat error
#define WAPA_IPC_CREATESOCKET_ERROR 17 //Creat socket error
#define WAPA_IPC_SETSOCKET_ERROR 18 //Set up socket error
#define WAPA_IPC_IPMISMATCH 19 //IP address not matching
#define WAPA_IPC_MACMISMATCH 20 //Mac address not matching
#define WAPA_IPC_ALREADY_RECORDING 21 //Already recording and cannot reopen
#define WAPA_IPC_FILE_ALREADY_EXIST 22 //Creat file failed. Name already existed.
#define WAPA_IPC_FILE_CREATE_FAILED 23 //Creat new files failed
#define WAPA_IPC_FILE_WRITE_FAILED 24 //File writting failed
//DataCallBack type Parameter
#define DATA_TYPE_HD 0 //HD video data
#define DATA_TYPE_CIF 1 //CIF video data
#define DATA_TYPE_AUDIO 2 //Audio data
//Video callback function, index is camera index, type is frame rate type, pData is frame data's pointer which point lenth is len, bMove is ture which means that the video of this frame rate has motion,param1¡¢param2 is video image's width and height
typedef BOOL (CALLBACK *DataCallBack)(int index, int type, BYTE* pData, int len, BOOL bMove, int param1 = 0, int param2 = 0);
// Video format Enumerate
typedef enum {
PAL = 0,
NTSC
}TVFORMAT;
//Motion detection zone
typedef struct _DETECTRECT{
int width; //Correspond to the width of camera's HD bit rate
int height; // Correspond to the height of camera's HD bit rate
BYTE block[20][15]; //It is to divide video into 64X48 blocks. Blocks are the two-dimensional arrays which are chosen or not chosen. For example: The third and tenth blocks at the second line are chosen. Then, block[1][2] = 1£¬block[1][9] = 1£¬the ones not chosen are 0.
}DETECTRECT;
DLL_EXPORT int WAPA_IPC_Init(TVFORMAT tvf); // SDK initialization. Tvf Variable designates video format. 0 stands for PAL, 1 stands for NTSC.
DLL_EXPORT int WAPA_IPC_Cleanup(); //Release SDK. It will close all the cameras connection when using at the time of program Exit.
DLL_EXPORT int WAPA_IPC_SetDataCallBack(DataCallBack fData); // Set up video call-back function
DLL_EXPORT int WAPA_IPC_Login(char* sCameraIP); // Connect to the network camera which the character string the sCameraIP points to. If failed, it returns to -1; If successeed,it will return to camera index. And this index can be used afterwards.
DLL_EXPORT int WAPA_IPC_Logout(int index); // Disconnect the index network camera
DLL_EXPORT int WAPA_IPC_RealPlay(int index, HWND hWnd, BOOL bCif); //Preview, index is camera's index, hWnd is the preview's window handle, bCif control is small bit rate if displaying true and high bit rate if dispalying false.
DLL_EXPORT int WAPA_IPC_StopRealPlay(int index, BOOL bCif); //Stop the index camera's preview. bCif is to stop the preview's bit rate. It is the same as WAPA_IPC_RealPlay.
DLL_EXPORT int WAPA_IPC_StartDecodeHD(int index); //Open index camera's HD bit rate decode
DLL_EXPORT int WAPA_IPC_StopDecodeHD(int index); //Close index camera's HD bit rate decode
DLL_EXPORT int WAPA_IPC_StartDecodeCif(int index); //Open index camera's CIF bit rate decode
DLL_EXPORT int WAPA_IPC_StopDecodeCif(int index); //Close index camera's CIF bit rate decode
DLL_EXPORT int WAPA_IPC_StartRecordHD(int index, char* pFileName); //Open index'camera's HD bit rate recording, pFileName is the pointer which points to the file name string
DLL_EXPORT int WAPA_IPC_StopRecordHD(int index); //Close the index camera's HD bit rate recording
DLL_EXPORT int WAPA_IPC_StartRecordCif(int index, char* pFileName);/ Open the index camera's CIF bit rate recording, pFileName is the pointer which points to the file name string
DLL_EXPORT int WAPA_IPC_StopRecordCif(int index); //Close index camera's CIF bit rate recording
DLL_EXPORT int WAPA_IPC_StartListen(int index); //Open the index camera's audio monitoring, only supports one camera at the same time, If multi-channel monitoring, then the audio will be from the last channel.
DLL_EXPORT int WAPA_IPC_StopListen(); //Close audio monitoring
DLL_EXPORT int WAPA_IPC_GetVersion(int index, DWORD& dwVersion); // Obtain the index camera's software version no., The four bytes of DWORD save the version number with 4-byte in sequence.
DLL_EXPORT int WAPA_IPC_UpdateCamera(int index, char* pFileName); //Upgrade the index camera's programme. The updated file is the character string which pFileName points to
DLL_EXPORT int WAPA_IPC_SET_IP(int index, long longIP); //Setup the index camera's IP address. longIP is a 4-byte IPv4 address and it can be obtained by the conversion from inet_addr to IP character string.
DLL_EXPORT int WAPA_IPC_SET_Resolution(int index, int resolution); //Setup the index camera's resolution. When the value of resolution is 2,the image ratio is : 4:3 and the resolution of HD bit rate is 960*720;When the value of resolution is 4,the image ratio is : 16:9 and the resolution of HD bit rate is 1280*720.
DLL_EXPORT int WAPA_IPC_SET_ManualReduce(int index, int reduce); // Setup the index camera's frame rate to be reduced manually. Reduce values is 1-4. 2 is 1/2, 3 is 1/4, 4 is 1/4.
DLL_EXPORT int WAPA_IPC_SET_AutoReduce(int index, int reduce); //setup the index camera's frame rate to be reduced automatically, 0 stands for off and 1 stands for on.
DLL_EXPORT int WAPA_IPC_SET_EdgeGain(int index, int gain); //setup the index camera's image enhancement, 0 stands for off and 1 stands for on
DLL_EXPORT int WAPA_IPC_SET_RGB(int index, int r, int g, int b); //Setup the index camera's color. r,g,b represent the red,green and blue respectively
DLL_EXPORT int WAPA_IPC_SET_IRCard(int index, int oper); //Setup the index camera's IR cut parameters, the value of oper:0-100
DLL_EXPORT int WAPA_IPC_SET_LightType(int index, int oper); //Setup the index camera's light type.The value of oper is 0 or 1, 0 stands for natural light, 1 stands for lamp light.
DLL_EXPORT int WAPA_IPC_SET_Exposure(int index, int oper); //Setup the index camera's exposure mode. 0 stands for Brightest part priority,1 stands for Darker part priority,2 stands for Brighter part priority,3 stands for Darkest part priority.
DLL_EXPORT int WAPA_IPC_SET_DetectSens(int index, int sensitive); //Setup the index camera's motion detection sensitivity. The value of sensitivity:0-4, 0 stands for the lowest, 4 stands for the highest.
DLL_EXPORT int WAPA_IPC_SET_DetectRect(int index, DETECTRECT rect);//Setup the index camera's motion detection area,pls refer to detailed DETECTRECT instruct description
#endif
Re: Need Help with WAPA BL-720I - zm v1.24.2
I have made some progress with the WAPA cam:
Unfortunately this only works immediately following a reboot, if you want to reconnect after that you have to reboot the camera.
I have been trying to figure out some of the stream control stuff without any luck, I also tried to get an RTSP server working.
The reason WAPA doesn't have anything is because they only used the DVSDK, they did not pay for the IPNC Application Code (which also incurs a $0.75 royalty fee to APPRO or something) , so they just jury rigged the encode example. I also emailed Wapa asking for anything that could help me with this and they just ignore all my emails.
http://processors.wiki.ti.com/index.php ... _Container for more info on this..
root@xdev ~ # ffmpeg -i tcp://192.168.50.48:9001 -an -vcodec copy -f m4v body.m4v
ffmpeg version 0.8.7, Copyright (c) 2000-2011 the FFmpeg developers
built on Nov 22 2011 06:59:46 with gcc 4.6.2
configuration: --prefix=/usr --extra-cflags='-Wall -g ' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libdirac --disable-decoder=libdirac --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-libvpx --enable-librtmp --enable-avfilter --enable-frei0r --enable-libopencv --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/x86_64-linux-gnu --enable-libdc1394 --disable-altivec --disable-armv5te --disable-armv6 --disable-vis --shlibdir=/usr/lib/x86_64-linux-gnu
libavutil 51. 9. 1 / 51. 34.101
libavcodec 53. 8. 0 / 53. 8. 0
libavformat 53. 5. 0 / 53. 5. 0
libavdevice 53. 1. 1 / 53. 1. 1
libavfilter 2. 23. 0 / 2. 23. 0
libswscale 2. 0. 0 / 2. 1.100
libpostproc 51. 2. 0 / 51. 2. 0
[m4v @ 0xd9ecc0] max_analyze_duration 5000000 reached at 5000000
[m4v @ 0xd9ecc0] Estimating duration from bitrate, this may be inaccurate
Input #0, m4v, from 'tcp://192.168.50.48:9001':
Duration: N/A, bitrate: N/A
Stream #0.0: Video: mpeg4, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 30 fps, 30 tbr, 1200k tbn, 30 tbc
Output #0, m4v, to 'body.m4v':
Metadata:
encoder : Lavf53.5.0
Stream #0.0: Video: mpeg4, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], q=2-31, 90k tbn, 30 tbc
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop, [?] for help
frame= 3074 fps= 49 q=-1.0 Lsize= 55261kB time=00:01:42.46 bitrate=4418.0kbits/s
video:55261kB audio:0kB global headers:0kB muxing overhead 0.000000%
Unfortunately this only works immediately following a reboot, if you want to reconnect after that you have to reboot the camera.
I have been trying to figure out some of the stream control stuff without any luck, I also tried to get an RTSP server working.
The reason WAPA doesn't have anything is because they only used the DVSDK, they did not pay for the IPNC Application Code (which also incurs a $0.75 royalty fee to APPRO or something) , so they just jury rigged the encode example. I also emailed Wapa asking for anything that could help me with this and they just ignore all my emails.
http://processors.wiki.ti.com/index.php ... _Container for more info on this..
root@xdev ~ # ffmpeg -i tcp://192.168.50.48:9001 -an -vcodec copy -f m4v body.m4v
ffmpeg version 0.8.7, Copyright (c) 2000-2011 the FFmpeg developers
built on Nov 22 2011 06:59:46 with gcc 4.6.2
configuration: --prefix=/usr --extra-cflags='-Wall -g ' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libdirac --disable-decoder=libdirac --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-libvpx --enable-librtmp --enable-avfilter --enable-frei0r --enable-libopencv --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/x86_64-linux-gnu --enable-libdc1394 --disable-altivec --disable-armv5te --disable-armv6 --disable-vis --shlibdir=/usr/lib/x86_64-linux-gnu
libavutil 51. 9. 1 / 51. 34.101
libavcodec 53. 8. 0 / 53. 8. 0
libavformat 53. 5. 0 / 53. 5. 0
libavdevice 53. 1. 1 / 53. 1. 1
libavfilter 2. 23. 0 / 2. 23. 0
libswscale 2. 0. 0 / 2. 1.100
libpostproc 51. 2. 0 / 51. 2. 0
[m4v @ 0xd9ecc0] max_analyze_duration 5000000 reached at 5000000
[m4v @ 0xd9ecc0] Estimating duration from bitrate, this may be inaccurate
Input #0, m4v, from 'tcp://192.168.50.48:9001':
Duration: N/A, bitrate: N/A
Stream #0.0: Video: mpeg4, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 30 fps, 30 tbr, 1200k tbn, 30 tbc
Output #0, m4v, to 'body.m4v':
Metadata:
encoder : Lavf53.5.0
Stream #0.0: Video: mpeg4, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], q=2-31, 90k tbn, 30 tbc
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop, [?] for help
frame= 3074 fps= 49 q=-1.0 Lsize= 55261kB time=00:01:42.46 bitrate=4418.0kbits/s
video:55261kB audio:0kB global headers:0kB muxing overhead 0.000000%