Page 1 of 1

Dlink DCS 2100+ video feed

Posted: 16 Dec 2003 22:54
by neil
Does anyone know how i can connect to an H.263 video feed from this particular camera? feel free to access the camera online at http://68.15.214.105:85 the particular port that the video uses is 5003. i would like to be able to multicast this feed from another server (right now win2k, but i will be switching to linux as soon as i get another server rounded up.)

thank-you,
neil light

Plese--let me know what I can do to help with this!

Posted: 22 Feb 2004 18:59
by davd_at_allens-online
I am ready to do whatever I can even providing a loaner camera to anyone who is ready to work on this.

Camera Feed is available

Posted: 29 Feb 2004 02:39
by david_at_allens-online
the stream is accessible via http at
http://24.20.225.233:8080/cgi-bin/video.vam

a still view is at
http://24.20.225.233:8080/cgi-bin/video.jpg

user id is guest, password is password

if anyone has any advice on how this can be integrated, I would be very much interested in assisting.

DCS 2100+ camera video feed not viewable

Posted: 04 Jan 2005 20:12
by RSinden
It seems to find a suitable module (codec?) as seen in the log below but then I get all the error messages. If anyone can shed any light as to what I can try next. Many thanks.

main debug: using demux2 module "m3u"
main debug: `http://cam1.vvview.co.uk' sucessfully opened
main debug: EOF reached
main debug: [1/2] l=1 c=1
main debug: merged at 1
main debug: control type=1
main debug: deleting playlist item `http://cam1.vvview.co.uk'
main debug: closing input
main debug: unlocking module "m3u"
main debug: unlocking module "access_http"
main debug: thread 34951680 joined (src/input/input.c:290)
main debug: adding playlist item `cam1.vvview.co.uk' ( http://cam1.vvview.co.uk )
main debug: creating new input thread
main debug: set input option: sout to #std{access=file,mux=ts,url=""}
main debug: waiting for thread completion
main debug: thread 34938368 (input) created at priority 37 (src/input/input.c:228)
main debug: stream=`std'
main debug: looking for sout stream module
main debug: probing 1 candidate
main debug: set sout option: sout-standard-access to file
main debug: set sout option: sout-standard-mux to ts
main warning: missing value for option url
stream_out_standard debug: creating `file/ts://(null)'
stream_out_standard debug: using `file/ts://(null)'
main debug: looking for sout access module
main debug: probing 1 candidate
access_output_file error: cannot open `'
main warning: no sout access module matching "file" could be loaded
stream_out_standard error: no suitable sout access module for `file/ts://(null)'
main warning: no sout stream module matching "std" could be loaded
main debug: destroying chain... (name=std)
main debug: destroying chain done
main error: stream chained failed for `std{access=file,mux=ts,url=""}'
main error: cannot start stream output instance, aborting
macosx debug: input has changed, refreshing interface
main debug: thread 34938368 joined (src/input/input.c:290)

Posted: 04 Jan 2005 20:36
by markfm
The stream itself is reached by:
vlc http://demo@cam1.vvview.co.uk/cgi-bin/video.vam

Unfortunately VLC isn't properly decoding the stream.

All that I know is the DCS-2100+ claims to output:
H.263+ (short header) MPEG4

And that it is supposed to try to negotiate UDP -> TCP -> HTTP, in descending order, unless you force it to one protocol.

With my own DCS-2100+ I've tried forcing the output to http on port 80 (video only), 128k, no luck. To check this stream, use:
vlc http://demo@markfm.dynalias.org/cgi-bin/video.vam

During the initial connection, it shows:
ffmpeg debug: couldn't guess format

And then it generates a continuous stream of:
ps warning: garbage at input

I would expect that either ffmpeg doesn't actually support this short header mechanism and/or there's something odd about the overall container used in the stream. Need an ffmpeg/stream guru.

Posted: 05 Jan 2005 00:20
by The DJ
I'm guessing it's sending raw video instead of video within a container format. (when are people gonna learn? :) ).

I'm not able to connect to any of the streams mentioned above atm, so i can't really tell much more.
The debug output provided by Rsiden is pretty useless, because it includes streaming options. Because of the fact that those are incorrect, VLC doesn't even properly connect to the stream in question.

Posted: 05 Jan 2005 01:25
by markfm
The link I put up for markfm should be accessible -- I've connected from work as well as home.

You can actually just paste the http://... into a firefox window and you'll see it getting longer and longer as it fills with the incoming stream.

Re: Dlink DCS 2100+ video feed

Posted: 09 Nov 2012 00:03
by brandon_c
I wrote a program it has two parts one in Java and one in C. It works only for Linux and maybe Unix.

import java.util.Scanner;
import javax.swing.JButton; //imports JButton library
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.io.*;
import javax.swing.*; //imports JFrame library
import java.awt.event.*;
import java.awt.*;
import javax.imageio.ImageIO;
import java.awt.Color;
import java.lang.Thread;

/*Java code*/

public class video implements ComponentListener, ItemListener
{
private JFrame frame;
private JLabel mvideo;
private ImageIcon picture;
private Image imgTmp;

public video()
{
frame = new JFrame();
mvideo = new JLabel();
frame.add(mvideo);
frame.setSize(350,280);
frame.setPreferredSize( new Dimension(350,280));

frame.add(mvideo);
frame.setResizable(false);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void update()throws IOException,InterruptedException
{
Process p = Runtime.getRuntime().exec("./a.out");
Thread.sleep(575);
imgTmp = ImageIO.read(new File("video.jpg"));
picture = new ImageIcon(imgTmp);
mvideo.setIcon(picture);
Thread.sleep(500);

}

public static void main(String args[]) throws IOException, InterruptedException
{
video me = new video();
while(true) me.update();
}


/*need to be overridden but not used*/
public void componentHidden(ComponentEvent e)
{

// displayMessage(e.getComponent().getClass().getName() + " --- Hidden");
}

public void componentMoved(ComponentEvent e)
{
// displayMessage(e.getComponent().getClass().getName() + " --- Moved");
}

public void increaseFrameSize()
{

}
public void decreaseFrameSize()
{

}

public void componentResized(ComponentEvent e)
{

}

public void componentShown(ComponentEvent e)
{
//displayMessage(e.getComponent().getClass().getName() + " --- Shown");
}

public void itemStateChanged(ItemEvent e){}
}
/*c code that has to be compiled independently*/

#include <stdlib.h>

int main()
{
system("curl http://username:password@zzz.zzz.zzz.zz ... /video.jpg > video.jpg");
return 0;
}
*/end code

zzz represents the IP address of your camera.