I have made a bit more progress getting my Edimax IP Camera working, and detailed what I have learned at http://ic-3010wg.webhop.net.
The main problems are still that although I can download an MPEG4 stream using wget, neither mplayer nor vlc will play it directly, which is no good.
The other issue is that sound still does not work.....
7 comments:
Hi,
did you try mplayer to play from stdin:
wget http://url.com/movie.mpeg -O - | mplayer -
?
Good idea - no, I hadn't.
When I try that, mplayer gives a load of warnings about not being able to seek backward in linear streams, and I see the wget progress bar showing that data is being downloaded.
No video though!
Adding the -q (for quite) option to mplayer gets rid of the progress bar. Still lots of warnings about seeking backwards, but I did see this "Win32 LoadLibrary failed to load: avisynth.dll, /usr/lib/win32/avisynth.dll, /usr/local/lib/win32/avisynth.dll"
It is correct, I don't have avisynth.dll
mmm...now I am a bit confused. Running:
wget -q http://admin:1234@192.168.1.117:4322 -O - | mplayer -v -
Suddenly produced a live video on screen - Success!
Strangely, the -v option just switches on verbose output, so shouldn't have done anything.
Looking at the output it appears that mplayer is trying very very hard to decide what format the stream is in. It eventually settled on MPEG-ES, then started to play it.
Therefore I think there may be a delay while mplayer decides what the stream format is....
Unfortunately the pipes are not seekable, but you can test the "−cache [kBytes]" parameter.
This should produce a delay. Maybe mplayer can detect the codec faster with a little bit of caching.
In the firmware which you can download at edimax I found some more URLs in the file IC3010M/29/AP/enet_EDIMAX/enet/enet_httpd_webs.c:
~/IC3010M/29/AP/enet_EDIMAX/src/enet$ grep [...]
websPushJPEGHandler, 0);
websUrlHandlerDefine("/mjpg/video.mjpg", NULL, 0, websPushJPEGHandler, 0);
websUrlHandlerDefine("/"CGI_NAME"/audio/receive.cgi", NULL, 0, websPushAudioHandler, 0);
websUrlHandlerDefine("/"CGI_NAME"/audio/transmit.cgi", NULL, 0, websReceiveAudioHandler, 0);
[...]
The receive.cgi sends a GSM 06.10 audio stream to the client.
The transmit.cgi seems to expect an speex audio stream which is played back by the camera. Unfortunately I could not figure out, how this speex stream should be packed.
this camera is continuosly crashing, in detail is the webserver crashing every few hours, exactly like the 1510wg model.
any way to fix this?
thanks
Post a Comment