I went to D-Link and study specification. After that I downgrade camera to DCS-950G_ A1_Firmware_v1.00 because the camera with this old firmware does not need admin authentication for streaming. It's so convenient. I do not have to send with each request the password.
I wanted to write a Groovy script, but I wanted to control the camera from the router, which I do not have Java. That's why I chose Bash.
After hours of testing, I had written a working script:
#!/bin/bash
#
WEBCAM_IP="192.168.0.20"
#######################################################################
#init
{ exec 3<>/dev/tcp/${WEBCAM_IP}/5000; echo -n "ARAGORN_INIT" >&3; cat <&3> /dev/null; } &
sleep 2
#start
exec 3<>/dev/tcp/${WEBCAM_IP}/5001
echo -n "ARAGORN_START#255055293901165#0#1#0" >&3
#data
while :
do
head -c 40 <&3 > header.hex
BYTES=( `hexdump -v -s 24 -n 4 -e ' 1/1 "%02X " ' header.hex` )
HEX="${BYTES[3]}${BYTES[2]}${BYTES[1]}${BYTES[0]}"
DATA_LENGTH=`echo "obase=10; ibase=16; ${HEX}" | bc`
head -v -c "${DATA_LENGTH}" <&3
done
With MPlayer I can play the stream directly from the camera. Mplayer takes around 5% CPU on a single camera.
./dcs-950G.bash | mplayer - -demuxer mpeg4es
With ffmpeg I got every second actual jpeg for Motion.

It works well, thanks.
ReplyDeleteKibo, i need a help...
ReplyDeletecould you explain the protocol used to this camera for stream?
How to get the stream? what commands to send and in wich port?
I'm a Delphi programmer and i need to stream from this camera. I can't found anything to help me to develop a viewer for this camera.
I search a lot in google...
if i got the stream i can show it, but i tried to connect in port 5000(base),5001(stream),5100(ip view)...and no sucess....
but if IP VIEW LITE can....i think we can too...
i can't understand your bash script....i'm very experienced programmer....but not in Linux....
sorry for my poor english....i'm from brazil.
I'm trying to develop on viewer for 400 dcs-950, that have in a school here. They like to view 32 cameras per page....and i can't find any free software for this....
my e-mail: ale.trevizoli@gmail.com
thanks in advance....
Hi Alexandre,
ReplyDeleteyou can use Wireshark for studying communication between camera and PC.
DSC950 use port 5000 and 5001.
DCS-950G streaming:
1. ARAGORN_INIT
2. ARAGORN_START
3. read data
Is it possible to translate this for using with netcat ? :)
ReplyDeleteHello, I want to use this camera under linux.
ReplyDeleteBut, upload firmware 1.00 is down.
Do you want give me your firmware.
Thanks
Hi
Deletethere are firmware:
http://tsd.dlink.com.tw/downloads2008.asp
But you dont need firmware 1.0 for streaming.
Hello Tom,
DeleteI download all firmware versions.
I unzip all version in zip file.
I upload with this results :
1.00 fail
1.02 fail
1.06 ok
1.08 ok
2.00 ok
have you a idea?
thanks
Hi
ReplyDeleteyou did not need downgrade firmware.
Use Wireshark and connect to camera.
I found old firmware:
downloads.kibo.cz/v1.00.zip
I am not responsible of your loss.
Hi Tom,
ReplyDeleteThank you very much for this advice.
I realize you're not responsible.
Finally, I will try with this latest version.
Thank you again.
Hi Tom,
ReplyDeleteI was wondering how I could feed this to my Motion setup?
Then, Motion can do the motion detection and triggering...
Thx,
Johan