Camera Proxy application to unify and secure your IP camera live-viewing

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,672
Reaction score
14,015
Location
USA
This is a software project of mine that I want to share with you all.

Basically, it provides a single point of access to live view all of your IP cameras, easily and securely. All camera images are sent and received through the service, so you don't need port forwarding rules for each camera; just one port forwarding rule for the service itself. It is kind of like a very stripped-down version of Blue Iris, with only the live viewing and web interface components included.


The program runs as a background service on a Windows PC (also partially compatible with Linux and MAC OS X, using Mono).

Full details, source code, and download links are on the codeplex page github:

https://cameraproxy.codeplex.com

GitHub - bp2008/cameraproxy: A Windows Service which acts as a "smart" proxy for IP network cameras. Uses the .NET framework and parts of the VLC media player libraries.



I hope someone finds this useful. Feel free to reply to this thread with any questions or requests for help.

Screenshots

Login Page:


User List:


Camera List:


Included all.html page:
 
Last edited:

Mike

Staff member
Joined
Mar 9, 2014
Messages
2,981
Reaction score
2,725
Location
New York
Looks great, definitely interested in trying this out. Thanks for sharing it with us.
 

riceandbeans

Getting the hang of it
Joined
Nov 1, 2015
Messages
80
Reaction score
42
Location
Austin, TX
In C#! I've done something similar in the mono framework on a raspberry pi, I bet it'd be a perfect platform for this if you wanted to run (fairly) headless jpeg/mpeg. This is awesome, thanks for open sourcing and sharing!
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,672
Reaction score
14,015
Location
USA
In C#! I've done something similar in the mono framework on a raspberry pi, I bet it'd be a perfect platform for this if you wanted to run (fairly) headless jpeg/mpeg. This is awesome, thanks for open sourcing and sharing!
You're welcome. This project is mostly dead now as I just don't have the time and interest to continue developing it. But what is out there still works, and should work on raspberry pi as well, although some of the more useful aspects like image resizing are not advisable to use on a pi due to their increased CPU cost!
 

mikeduncan

n3wb
Joined
May 18, 2016
Messages
22
Reaction score
18
Hello, just discovered this app and it works perfect, is there a way to pass the user/pass in the url when accessing a cam with permission set to 100?

I know this is old, but very useful! Thank you :)
 

Dodutils

Pulling my weight
Joined
Dec 10, 2016
Messages
451
Reaction score
166
So basically it's a Reverse Proxy dedicated to IPCam stuff isn't it ?
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,672
Reaction score
14,015
Location
USA
Hello, just discovered this app and it works perfect, is there a way to pass the user/pass in the url when accessing a cam with permission set to 100?

I know this is old, but very useful! Thank you :)
Hello. Yes, you can include user/pass in the URL, by following this format:

Code:
http://127.0.0.1/image/camera.jpg?rawauth=user:pass
So basically it's a Reverse Proxy dedicated to IPCam stuff isn't it ?
Yes, that more-or-less describes it.
 

Dodutils

Pulling my weight
Joined
Dec 10, 2016
Messages
451
Reaction score
166
Yes, that more-or-less describes it.
OK I already made some reverse proxy software but never made one for reverse video streaming, good idea ,will try it and look at the source code.
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,672
Reaction score
14,015
Location
USA
Yeah, most of the functionality is undocumented or poorly documented, so being able to read source code will really help anyone trying to figure out what things are. I never intended this project for more than a poor-man's way to put IP cameras on a website without exposing the cameras directly to outside attack.
 

Dodutils

Pulling my weight
Joined
Dec 10, 2016
Messages
451
Reaction score
166
Yeah, most of the functionality is undocumented or poorly documented, so being able to read source code will really help anyone trying to figure out what things are. I never intended this project for more than a poor-man's way to put IP cameras on a website without exposing the cameras directly to outside attack.
OK but if it was for this purpose you could some NVR or IPCam software that already provide such feature so you connect to it with dedicated Client software or Web browser to see this re-streamed video but anyway making its own solution is always more interesting ;-)
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,672
Reaction score
14,015
Location
USA
Yes, Blue Iris in fact will do nearly everything that CameraProxy will do, and a whole lot more. But Blue Iris is a bit more expensive, given that Blue Iris itself costs money and you need to run it in Windows. Camera Proxy is free and isn't necessarily married to Windows.

Part of the reason I built camera proxy was so I could implement my own method of PTZ control, using a panoramic image that you can click on to point the camera at the spot you clicked. Of course setting that up is way too complicated for the average user, which is why you don't see it in any other software, and I ended up having to write it myself.
 

Dodutils

Pulling my weight
Joined
Dec 10, 2016
Messages
451
Reaction score
166
Part of the reason I built camera proxy was so I could implement my own method of PTZ control, using a panoramic image that you can click on to point the camera at the spot you clicked. Of course setting that up is way too complicated for the average user, which is why you don't see it in any other software, and I ended up having to write it myself.
$$$ is a VERY good reason and for your special PTZ control too I do the same when I find no tool doing what I want and I really need my own features ;-)
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,672
Reaction score
14,015
Location
USA
I actually embedded the panoramic PTZ control in my dad's Blue Iris interface, and it is hard-coded to connect to his Camera Proxy instance for the actual control API.



It is way, way, way over most people's head to implement this so I never made it an "official" feature :)
 

mikeduncan

n3wb
Joined
May 18, 2016
Messages
22
Reaction score
18
Hello. Yes, you can include user/pass in the URL, by following this format:

Code:
http://127.0.0.1/image/camera.jpg?rawauth=user:pass


Yes, that more-or-less describes it.
Thanks a bunch bp2008, what I am using it for is to feed an mjpeg stream at 1 frame per second to my android wear watch. Couldn't find a way to throttle framerate in BI. This did the trick :)
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,672
Reaction score
14,015
Location
USA
Yes, this should do that pretty well with mjpeg as long as the source camera is object is limited to 1 FPS. It won't transmit duplicates of the same frame. Also important will be downscaling the image resolution to better match your display, since that will reduce bandwidth and make things more efficient.

This page describes the different arguments you can use to recompress the video frames:Camera Proxy - Home
 

einarhh

n3wb
Joined
Apr 20, 2017
Messages
1
Reaction score
0
Is it possible to use a domain certificate in stead of self signed certificate for localhost? (When using HTTPS)
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,672
Reaction score
14,015
Location
USA
Should be possible. Stop the service and replace the file "SimpleHttpServer-SslCert.pfx" with your new one. Assuming of course you can get your certificate in .pfx format (it is possible to convert from other formats, probably using openssl or other tools). Once the certificate file is replaced, start the service again.
 
Top