BUG: netcam green screen
Genius IPCam secure 300R. I connect it using url http://webcam/cgi-bin/getimage I see a green screen in motion web server. When I do "wget
http://webcam/cgi-bin/getimage --user=admin --password=1234" every time I obtain a good jpeg frame.
If I use a USB camera and config line "videodevice /dev/video0" everything works fine.
Whats going wrong?
netcam_url http://webcam/cgi-bin/getimage
netcam_userpass admin:1234
Environment
Motion version: |
3.2.10.1 |
ffmpeg version: |
0.4.9 |
Shared libraries: |
ffmpeg, mysql, postgresql |
Server OS: |
Fedora 8 |
--
DennisOpanasenko - 19 Jun 2008
Follow up
Hi Dennis,
1-. Get a mjpeg dump using :
http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamMjpegStreamDumps
2-. Post your motion.conf
3-. run motion in no daemon mode and debug enabled
./motion -n -d 7
--
AngelCarpintero - 20 Jun 2008
Follow up
All right, I have attached a config, raw file and debug printout. Could I do anything else to make a issue clear?
Thank you.
Hi Dennis your netcam firmware is doing multipart/jpeg but without boundary strings , i'm pretty sure that these buggy firmwares were handled
already by motion ... but probably there an issue somewhere. Please run with a full debug :
./motion -n -d 10
Thanks
--
AngelCarpintero - 24 Jun 2008
Follow up
I have attached a motion-debug10. It is a printout fo motion -d 10. As far as I can understand it seems that Motion wouldn't recognize a jpeg frame, but such frames obtained via wget looks good. Should I attach one of this?
Also I found a possibility of get a some stream from camera. But this stream wouldn't be recognized by Motion as well. I would be eager to provide all information you ask to resolve this.
Thank you, Angel, for you efforts.
--
DennisOpanasenko - 19 Jun 2008
Hi Dennis ,
I've rechecked and your issue was not solved yet , your last debug gave me the clue .
JMESSAGE(JWRN_NOT_SEQUENTIAL, "Invalid SOS parameters for sequential JPEG")
My guess is your camera is sending sequential pictures, so it requieres "Progressive JPEG support" this is really weird for stream and motion doesn't support it at the moment.
Could try to get a long capture with wget or even with mjpegdump so i can try to figure out how to add add support to motion.
Anyway try to see if you can change the image mode in your camera ( ask to genius support ).
Did you try to get images using other methods ? like :
Thanks
--
AngelCarpintero - 26 Jun 2008
Follow up
Hi, Angel!
If I don't misunderstood you, I'm pretty sure that when I get url http://webcam/cgi-bin/getimage netcam sends only one picture. All that it produced I've attached as "rawfile-jpeg". No matter what I do: wget or mjpegdump: netcam sends approximately 30kbytes and nothing else. All of my programs shows this file as jpeg image correctly.
Meanwhile I've found a way to obtain some stream from the netcam. But that stream not recognized by Motion too. I attached a stream as "rawfile-stream". Ask me for debug or anything else if it could be useful.
Thank you.
--
DennisOpanasenko - 26 Jun 2008
Hi Dennis ,
I've made a weird patch as a proof of concept , it basically disable all errors from netcam and jpeg process , because i test your stream and image and
with some programs jpeg warnings / errors are raised but others just pass over.
So get 3.2.10 svn branch an apply that patch and let me know if you get a good image.
--
AngelCarpintero - 26 Jun 2008
Follow up
Hi, Angel!
I applied patch on 3.2.10.1, but not on a svn. It was successful, and brings the netcam to life. Now I got a valid webcast from netcam by Motion and valid motion detection. When I use
netcam_url http://webcam/cgi-bin/getimage
everything works almost fine.
When I do in motion.conf
netcam_url http://webcam/cgi-bin/getimage?java=1
to obtain stream I got a gray screen in motion and printout in my /var/log/messages I attached as "messages".
Thank you!
--
DennisOpanasenko - 28 Jun 2008
Good news Dennis , with my previous patch i did a trick for libjpeg library to forget about :
JMESSAGE(JWRN_NOT_SEQUENTIAL, "Invalid SOS parameters for sequential JPEG")
JMESSAGE(JERR_UNKNOWN_MARKER, "Unsupported marker type 0x%02x")
This was for static images , so i think that i can create a patch in trunk tree or even for 3.2.x branch to
fix this issue or avoid it.
I've no idea what is the type of stream motion gets from :
netcam_url http://webcam/cgi-bin/getimage?java=1
Could you run motion with -d 10 and post that log ?
Thanks !
--
AngelCarpintero - 28 Jun 2008
Follow up
Hi, Angel!
I attached a motion-debug10-stream which is a motion -n -d 10 stderr printout for a couple seconds.
Thanks! --
DennisOpanasenko - 28 Jun 2008
Dennis , not good news from your last log , your camera is doing something very weird , it not sending content-type :
[1] Received first header ('HTTP/1.0 200 OK')
[1] Received first header ('width=640,length=25340;')
image content
[1] Received first header ('width=640,length=25356;')
image content
...
So that will never support by any application there's no way to "guess" what content-type a device is sending and that custom header:
('width=640,length=25340;')
It's really weird ... :-/ why only sending width ?! , it should be Content-lenght: 25340\r\nEXTRAHEADER
So lets try to get what is the stream your camera sends , please do a raw capture of that stream.
Thanks
--
AngelCarpintero - 28 Jun 2008
Follow up
Angel, I did it by mjpegdump and attached as rawfile-stream. For such dumb cameras may be a good idea to include an option like "ContentOverride" in motion config file? I'll try to contact Genius support to ask him to add a more reasonable stream output to firmware. They include a software for netcam, but for my mind it's useless at all!
--
DennisOpanasenko - 28 Jun 2008
Sorry Dennis i was not sure if that attachment was a stream. Well anyway some comments you can send to Genius support :
1-. They don't follow the International Telecommunication Union (ITU) as Recommendation
T.81
- some examples they do in jpeg images :
FF D8 SOI
FF C0 SOF0
FF DB DQT
FF C4 DHT
FF DA SOS
FF D9 EOI
- without adding JFIF APP0 marker ( i's not considered mandatory lately but it was ... so why break it now and leave a bunch applications broken ? )
- not respecting the order of Start of Frame and DQT .
Recommendation order is :
FF D8 SOI
FF E0 APPO
FF DB DQT
FF C0 SOF0
FF C4 DHT
FF DA SOS
FF D9 EOI
But well we have fix that as i did in my patch.
About Stream that is really weird :
1-. Not Content-Type header
2.- Not Content-lenght header but : width=xxx;lenght=xxxx
3-. Images on stream are using same format of above ( not really recoomended ) ... but ... WTF is EOI ( FF D9 ) no end of file !
So , please if you send a mail don't hesiate to put me in copy.
Thanks
--
AngelCarpintero - 28 Jun 2008
Fix record
Added a better patch adding a new parameter netcam_broken to fix that issues with still images , this broken stream won't be fixed too much weird breaking
http headers so complaint to Genius.
Patch needs some test before be included in 3.2.10 branch and trunk.
--
AngelCarpintero - 28 Jun 2008
Committed to 3.2.10 branch and trunk.
--
AngelCarpintero - 04 Jul 2008
Works fine!
A lot of thanks.
--
DennisOpanasenko - 12 Jul 2008
Do I need do build a special motion to make this secure300R work?
I've got 3.2.12 from linux mint but I still get:
[1] Error reading first header - re-trying (4times)
[1] Failed to read first camera header - giving up for now
my motion.conf's got:
netcam_url http://cam1/cgi-bin/getimage?java=1 netcam_userpass admin:1234
netcam_broken on
netcam_tolerant_check on
Maybe I need other settings as well in motion.conf?
--
ArnoTixe - 12 Feb 2013