Quantcast
Channel: IP Cam live feed from C# - Stack Overflow
Viewing all articles
Browse latest Browse all 2

IP Cam live feed from C#

$
0
0

I'm trying to get live feed from TPLink TL-SC3171G IP cam in C# app. I've tried using AForge.NET library but no luck. The sample code from AForge.NET doesn't work for me. I'm getting "The remote server returned an error: (401) unauthorized access."

I can access the cam via browser with basic ip adress: "http://192.168.168.20". In app I've tried with:

"http://username:password@192.168.168.20""http://username:password@192.168.168.20:port"

Can you please help me with some direction. It really doesn't have to be AForge.NET library.

This is the code:

using AForge.Video;using AForge.Video.DirectShow;namespace Player{    public partial class MainForm : Form    {        private Stopwatch stopWatch = null;        // Class constructor        public MainForm( )        {            InitializeComponent( );        }        private void MainForm_FormClosing( object sender, FormClosingEventArgs e )        {            CloseCurrentVideoSource( );        }        // "Exit" menu item clicked        private void exitToolStripMenuItem_Click( object sender, EventArgs e )        {            this.Close( );        }        // Open local video capture device        private void localVideoCaptureDeviceToolStripMenuItem_Click( object sender, EventArgs e )        {            VideoCaptureDeviceForm form = new VideoCaptureDeviceForm( );            if ( form.ShowDialog( this ) == DialogResult.OK )            {                // create video source                VideoCaptureDevice videoSource = form.VideoDevice;                // open it                OpenVideoSource( videoSource );            }        }        // Open video file using DirectShow        private void openVideofileusingDirectShowToolStripMenuItem_Click( object sender, EventArgs e )        {            if ( openFileDialog.ShowDialog( ) == DialogResult.OK )            {                // create video source                FileVideoSource fileSource = new FileVideoSource( openFileDialog.FileName );                // open it                OpenVideoSource( fileSource );            }        }        // Open JPEG URL        private void openJPEGURLToolStripMenuItem_Click( object sender, EventArgs e )        {            URLForm form = new URLForm( );            form.Description = "Enter URL of an updating JPEG from a web camera:";            form.URLs = new string[]                {"http://195.243.185.195/axis-cgi/jpg/image.cgi?camera=1",                };            if ( form.ShowDialog( this ) == DialogResult.OK )            {                // create video source                JPEGStream jpegSource = new JPEGStream( form.URL );                // open it                OpenVideoSource( jpegSource );            }        }        // Open MJPEG URL        private void openMJPEGURLToolStripMenuItem_Click( object sender, EventArgs e )        {            URLForm form = new URLForm();            form.Description = "Enter URL of an MJPEG video stream:";            form.URLs = new string[]                {"http://195.243.185.195/axis-cgi/mjpg/video.cgi?camera=4","http://195.243.185.195/axis-cgi/mjpg/video.cgi?camera=3","http://192.168.168.20:80",                };            if ( form.ShowDialog( this ) == DialogResult.OK )            {                // create video source                MJPEGStream mjpegSource = new MJPEGStream( form.URL );                // open it                OpenVideoSource( mjpegSource );            }        }        // Open video source        private void OpenVideoSource( IVideoSource source )        {            // set busy cursor            this.Cursor = Cursors.WaitCursor;            // stop current video source            CloseCurrentVideoSource( );            // start new video source            videoSourcePlayer.VideoSource = source;            videoSourcePlayer.Start( );            // reset stop watch            stopWatch = null;            // start timer            timer.Start( );            this.Cursor = Cursors.Default;        }        // Close video source if it is running        private void CloseCurrentVideoSource( )        {            if ( videoSourcePlayer.VideoSource != null )            {                videoSourcePlayer.SignalToStop( );                // wait ~ 3 seconds                for ( int i = 0; i < 30; i++ )                {                    if ( !videoSourcePlayer.IsRunning )                        break;                    System.Threading.Thread.Sleep( 100 );                }                if ( videoSourcePlayer.IsRunning )                {                    videoSourcePlayer.Stop( );                }                videoSourcePlayer.VideoSource = null;            }        }        // New frame received by the player        private void videoSourcePlayer_NewFrame( object sender, ref Bitmap image )        {            DateTime now = DateTime.Now;            Graphics g = Graphics.FromImage( image );            // paint current time            SolidBrush brush = new SolidBrush( Color.Red );            g.DrawString( now.ToString( ), this.Font, brush, new PointF( 5, 5 ) );            brush.Dispose( );            g.Dispose( );        }        // On timer event - gather statistics        private void timer_Tick( object sender, EventArgs e )        {            IVideoSource videoSource = videoSourcePlayer.VideoSource;            if ( videoSource != null )            {                // get number of frames since the last timer tick                int framesReceived = videoSource.FramesReceived;                if ( stopWatch == null )                {                    stopWatch = new Stopwatch( );                    stopWatch.Start( );                }                else                {                    stopWatch.Stop( );                    float fps = 1000.0f * framesReceived / stopWatch.ElapsedMilliseconds;                    fpsLabel.Text = fps.ToString( "F2" ) +" fps";                    stopWatch.Reset( );                    stopWatch.Start( );                }            }        }    }}

Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images