IP camera software

Ive been trying to get video from a usb camera displayed in ignition - ive tried a number webcam servers including webcamxp, sentry vision, VLC media server, yaw cam and Gmax IP camera. Ignitions IP camera function doesnt want to play nice with any of them. most of them arent the correct mjpeg stream - the Gmax IPcamera program seemed the most promising. I was able to display a stream briefly but every time ignition connects to the url the program freezes. has anyone had any luck doing something like this or suggest an ip camera converter/emulator that works.

thx.

After many many hours of trying different methods I figured out how to stream my usb webcam into an ignition window (IP Camera Viewer) using VLC media players stream functionality. this should work for any other video source too.

To stream video source (video file, network file, webcam ect) install VLC media player. In VLC click “Media” menu go to “Stream…” then choose a video source , in this example im going to use a webcam – click on the “Capture Device” tab. In the device selection box under Video device name click the drop down and select your webcam, in this example I’ll choose “USB Video Device”. At the bottom of the VLC window click “Stream”. The next window shows you Source: “dshow://”. ¾ down the page click “Next” – you are now on the destination window, I am going to directly paste the destination code in so don’t bother with any settings on this page just click “Next”. You are now in the option setup screen. In the “Generated stream output string” box paste in this code:

:sout=#transcode{vcodec=MJPG,vb=400,width=620,height=480}:duplicate{dst=std{access=http{mime=multipart/x-mixed-replace; boundary=--7b3cc56e5f51db803f790dad720ed50a},mux=mpjpeg,dst=:8080}}Then click “Stream” at the bottom of the window – you are now streaming the webcam to port 8080 in mjpeg format.

In ignition create an IP Camera Viewer and under URL insert localhost:8080/ and you will be connected to the webcam.

If you want to autostart VLC stream you can just create a batch file with the following code (just edit the video source and make sure the location for VLC.exe is correct):

"C:\Program Files\VideoLAN\VLC\vlc.exe" dshow:// :dshow-vdev="USB Video Device" :dshow-size="640x480" :dshow-caching=1000 :sout=#transcode{vcodec=MJPG,vb=400,width=620,height=480}:duplicate{dst=std{access=http{mime=multipart/x-mixed-replace;boundary=--7b3cc56e5f51db803f790dad720ed50a},mux=mpjpeg,dst=:8080}}VLC is picky about format and spaces Ive attached file - just edit and change to .bat
VLC startup.txt (311 Bytes)

2 Likes

I have tried this. But the Gateway is on Server computer and not local if that makes a difference .
I have tried this but still cant see it in my vision component, I can see it through the web browser. still trying to troubleshoot this.

Is this possible with multiple camera?

12 usb cameras to be exact.

I haven’t tried with 12, but it should be possible to have more than one instance of VLC running, but you will need to give them different port numbers.

I am trying to duplicate your set up but its not working for me

You would need a way to differentiate between the different devices, if they are all identified as “USB Video Device” you may be out of luck.

Admittedly i have not done this with usb cameras, but i have with IP cameras, i just changed the port number for each one, 8080, 8081, 8082 and such.

I did give them different names. In VLC they all show up by the name.

Did you modify the port for each one, then access them with their unique ports? My setup is different in that i am re-streaming RTSP to http, but it confirms that you can have multiple concurrent instances of VLC with different video sources.

I created a .bat file where you can pass it an IP and port number, then it will open and restream.

IP=%1
Port=%2
start C:\PROGRA~1\VideoLAN\VLC\vlc.exe -vvv -Idummy rtsp://view:view@%1/defaultPrimary?streamType=u --sout #transcode{vcodec=MJPG,venc=ffmpeg{strict=1},fps=10,width=320,height=180}:standard{access=http{mime=multipart/x-mixed-replace;boundary=--7b3cc56e5f51db803f790dad720ed50a},mux=mpjpeg,dst=:%2/}

Then from ignition i can open a stream with system.util.execute(['C:\\MyTemp\\test2.bat', '192.168.86.90', '9911'])

I imagine you could do the same kind of thing with the OP’s code but pass it the unique device names instead of IP.

So what I have is Matrix blueFox cameras but they are USB. I was able to set them up with unique id through there software. From VLC I can stream it. But, when I try to set up HTTP with MPEG video format, its tells me its connected on ignition side but the buffer is maxed out. I increased the buffer still no video.

Do you only get the buffer issue when you have multiple cameras? Looks like they are up to 5 MP, which is a massive amount of data if you are streaming 12 of them. I suspect you would have to reduce the resolution, or increase the buffer size dramatically.

Edit:
It looks like they actually can go to 31.5MP, maybe if you share some more info about which camera you have and how you have your VLC and Camera viewer component configured, we can get somewhere.