I need to create several local virtual IP Cameras for a project I'm making. I have tried several software, and the closest I have gotten was with magic camera, because it would let me create a virtual camera, but it wont let me assign a source to that camera. I need to assign an IP address and a username with a password, so that I access the IP camera's video and use that virtual camera in a program I'm developing. the thing is that the Camera's brand is not supported by Labview, so I need to use a virtual local camera to use these cameras (3S Vision IP Cameras). Thanks in advance!
2 Answers
From the National Instruments Support Knowledgebase:
Connecting to an Arbitrary MJPEG IP Camera with IMAQdx Using Third Party Virtual Camera Emulator
http://digital.ni.com/public.nsf/allkb/9446A8C25CC99F7586257A56004D513D

- 643
- 4
- 8
-
I already tried that approach, but it didn't work. Can you please tell me how to do this with magic camera? – Nando Flores Feb 02 '14 at 23:56
Here are the options for using an IP cameras in LabVIEW as of 2019:
(in case someone like me still need this)
Use Vision Acquisition Software 14.5 (February 2015)
(with LabVIEW 2014 SP1 and Vision Development Module 2014-2017 SP1)Pros:
- Official, native support;
- Any # of cameras.
Cons:- You lose all the features introduced in newer versions of LabVIEW;
- Cameras must support and be configured to stream in MJPEG over HTTP.
Additional info:It's the last version to support arbitrary IP cameras. Basler and Axis IP cameras were supported until VAS 19.0.
Cameras in the same subnet should be detected automatically. If cameras are in another network, you can try to add them manually as follows:
- Go to the
%Public%\Documents\National Instruments\NI-IMAQdx\Data\
folder; - Open or create a file
IPCameras.ini
in a text editor; - If creating, place an
IPCameras
section on a first line:[IPCameras]
- Add a line for each camera in a following format:
cameraSerialNumber = IPAddress, MJPEG stream URL, camera brand, camera description
- Save your changes and restart NI MAX.
Use DirectShow device (webcam) emulator
NI-IMAQdx driver supports USB 2.0 cameras through the DirectShow interface. By using software which creates such interface for IP cameras, they can be used as regular USB 2.0 cameras.
There are multiple tools available:
-
Pros:
- Free;
- Any # of cameras.
Cons:- Each camera must be added manually through emulator's settings;
- Each camera's resolution must be set manually in emulator's settings;
- Cameras must support and be configured to stream in MJPEG over HTTP(S);
- 32/64-bit versions work independently of each other. NI MAX is a 32-bit application, so it won't show cameras emulated by 64-bit tool. However, they are still detected and can be used in LabVIEW with IMAQdx VIs.
Additional info:Camera's alias displayed in LabVIEW can be changed in a following way:
- Go to the
%Public%\Documents\National Instruments\NI-IMAQdx\Data\
folder; - Select one of
camX.iid
files and open it in a text editor; - Find an attribute
InterfaceName
and set its value to a desired name. SeeVendor
attribute's value for a name you set to that camera in emulator's settings; - Save your changes and rename this file to the same name;
- Restart LabVIEW.
Moonware Universal Source Filter [more info]
Pros:
- Supports JPEG/MJPEG/MPEG4/H264 over HTTP/RTSP;
- Hardware decoding;
- Low latency;
- Multiple cameras.
Cons:- 32-bit only. 64-bit version is not likely to happen;
- Adds a watermark to an image (free version) / Paid: $49 per PC (no watermark);
- Each camera must be added manually through emulator's settings.
-
Use Multimedia for LabVIEW add-on
Pros:
- Native interface (LabVIEW API for FFmpeg libraries);
- Supports most codecs and protocols;
- Any # of cameras;
- Full control over data acquisition and processing (down to individual FFmpeg options).
Cons:- Paid: $949 per PC (developer license), $19 per PC (runtime license), 30 days trial;
- Lower-level analog of NI-IMAQdx driver (see more complicated).
Use libVLC to receive images from a camera
(or another similar library)Pros:
- Free;
- Supports most codecs and protocols;
- Possibility of hardware decoding (depends on library usage);
- Any # of cameras.
Cons:- You'll have to interface with
libVLC
library directly through theCall Library
function node; - To receive video frame by frame you'll have to write a simple C library which will be called by
libVLC
to provide a frame (see example below in a linked thread).

- 2,256
- 2
- 16
- 23