For a while now I’ve used a cheap SunLuxy H.264 DVR as the heart of the CoopCam project and initially couldn’t get a direct link to the camera stream so had to screen captured the bog standard web interface using VLC and break the feed down into separate streams but recently after a fair bit of trial and error I discovered a much easier solution!
I had researched on and off for months, went through masses of trial and error with various software and ultimately found no solution but after being inspired again I headed to the DVR’s web interface to start from scratch. I stumbled across source code in a file called /js/view2.js that constructs an RTMP:// address to show live camera feeds through the web interfaces flash player – See snippet of code below:
dvr_viewer.ConnectRTMP(index, "rtmp://" + location.host, "ch" + index + "_" + (dvr_type=="main"?"0":"1") + ".264");
After removing the jargon the link came out as rtmp://dvraddress:port/ch#_#.264 with the first number being the channel you want to connect to (starting at 0) and the second being the stream (substream being 1 and main being 0)
I headed to VLC player, selected Open Network Stream and entered the following:
rtmp://192.168.0.100:81/ch0_0.264
Broken down you can see my DVR is on the local network as 192.168.0.100 at port 81 and that I wanted to view channel 1’s main stream, low and behold after a few seconds the camera started to play!
Notes
- To convert the stream to something more useful you could use rtmpdump and ffmpeg on Linux systems
- If you do something wrong and overload the DVR then you’ll hear a beep as the box reboots
- If this works for you please comment your DVR make and model