IP Camera Stream Simulator

What tools or programs would allow one to simulate large numbers of IP cameras? The goal is to do this without having 20 or 100 cameras all set up in one place at one time.


There are many Traffic Generator available in the market either software or hardware, with a quick search I came across 1 and 2

Axis has a really good emulator for use with your own canned video, you can add 100s of cameras. I do recommend having it installed on its own server.

It can simulate several different camera models with H.264, MPEG4, MJPEG...

Tariq, can those actually simulate an IP camera stream? They look like generic traffic generators.

Sarit, do you know if Axis is still supporting / developing that?

In the last three years they offered two versions, if it is maintained the releases are few and far between. However, even with its current release it gets the job of emulating video done fast and without much maintenance on the tester side. The latest release, in November of 2011 is the latest, but if you use this link you'll get their ftp site, so can stay up to date with latest versions.

btw- I sent an email to Axis for a clearer schedule of releases for this product and will post when I know more.

Sarit.... that is not where they keep the 'current' version...which is V3.08.

With that said...the v3.06 that is at the FTP location is a decent version that I used for a long time in my lab.

The Iframe time delay is nice.

Also.... if you use a Playback FILE in H264, pay attention to what goes out from a performance perspective in the bottom frame.

If you see the MB/s drop, the simple solution is to make a copy of the file and use that. Repeat as neccessary. For example, I had a file where I had to make a new copy for every 5 streams.

There is a primary setup one must perform to have the tool usable for many VMSs. That is to select the 'ALL' choice whan asked what to copy from the camera you are using as a base.

Also, to make the tool standalone so that it does NOT go looking for its reference camera, you must delete all the real camera refs in the 'Playback' preferences gui. The result is that ONLY the streams that are listed in the Files can be sourced.

New features in 3.06
====================

- Each created virtual camera gets its own MAC address based on serial number.

- When one video source, recording or live material, is streamed to several clients,
each stream is delayed a random number of frames to avoid that the I-frames are sent
to all clients at exactly the same time, straining the network.
Note that only MPEG4 and H.264 and not MJPEG is handled this way since for MJPEG
all frames are complete.

- One or more Virtual Cameras can be updated with a Template.

Note: Now requires .NET 4.0 (which is not supported by Windows 2000).

John, you should contact IPVM member Mike Dotson from Seneca Data...

I received a response from Axis and apparently this emulator is available for Partners only. Though I found it via a Google search I do recommend becoming a partner first. Here are a few more simulators to select from.

The Axis Virtual Camera Tool is excellent!

The Axis person that I get my copy from says the following:

"We only make AVC available for our partners since we don’t have a support channel for it (besides our developer program, which is restricted). That being said if the folks from IPVM need a copy they can reach out to their Axis contacts and we might be able to arrange something."

Thank you Mike for the update. I received a similar "partners only" response a while back. We'll work on getting the tool available for us to include here.

Axis reached out to us about this. Sarit, I'll follow up with you directly.

VLC can re-stream anything you feed into it (another stream, a file, etc.), I bet it could be adapted to simulate any number of streams. You could probably even run multiple copies and have one batch stream to another batch... even set up a stream feedback loop if you wanted to be really nasty.

Hi all, how about updating this 3 year old post if there is interest.

Stress testing a newly designed/deployed system´s resources (processing power, network and storage performance) is desirable before connecting to a customer´s existing camera network.

Any advances in Camera Emulation software and/or availability?

I second that. I wish I had known about this thread 1 year ago, it might have saved my a few days work as I had written my own tool. Perhaps IPVM could have a page under their Tools menu containing links to useful third party tools.

I just downloaded the Axis tool. It works Ok, but I would prefer something that generates something like a TV test signal, with date-time stamps (ms resolution), and other useful information stamped on each frame.

The axis software has advanced from 3.08 to 3.09 in the last three years.

New features in 3.09
====================
- Fixed compatible issue with new RTSP server in 5.60 firmware.

- Windows XP and Windows 2003 are no longer supported.

- The IP address of the real camera are replaced with the address of the
virtual camera in parameter responses.

- Bug fixes.

I tried this tool and generated several simulated Axis cameras, they all are accessible via a browser through their IP address:port and behave like the real camera but so far I have been unable to add them (Model #, series) to the VMS we are using, only as a series 200 cameras in Mjpeg.

Would appreciate it very much if you can give me some advice on this. You can contact me directly.

Thanks in advance

I had it working when I wrote the post above but haven't needed to use it since. So I have tried just now (at home), but I can't get it working now. Same thing, I can browse but can't stream to the VMS. I'll have another look when I am back at the office tomorrow, where I have the tools to troubleshoot.

I'm not an expert with this application, but I did just get it to work by replicating a stream from an Axis P1428, and I am guessing your problem could be related to the following:

Typically when a VMS, such as Exacqvision, connects to the camera, it first sends a series of HTTP commands to configure motions masks, privacy masks, stream resolutions, etc. Once that is complete (takes a few seconds) it then creates an RTSP connection and starts streaming the audio/video. It looks like this Axis virtual camera either isn't supporting the HTTP API or perhaps there is a setting somewhere and it isn't set - I don't know. The point is, when I connect using Exacqvision with the device type set to "Axis", it doesn't stream any video and I am thinking it is because the HTTP API is not supported and so it doesn't progress to the RTSP step. However, when I set the Device type to RTSP, and enter the following URL into the Hostname/IP Address, it does work.

rtsp://192.168.1.66/axis-media/media.amp?videocodec=h264&video=1&audio=0&event=on&fps=12

By using RTSP, you are bypassing the HTTP configuration commands, and going directly to the streaming, which is probably what you want.

Perhaps try the following:

1) Change the device type in your NVR to from AXIS to RTSP and enter the RTSP string similar to what I have above Note the RTSP string above is using h264, not jpeg over RTSP , I have not tested it to see if it supports jpeg over RTSP. The following document has examples of different RTSP strings:

Axis RTSP API

2) The default RTSP port is 554, so either you have to change the default RTSP in your NVR for that camera to match the port used by the virtual camera, or change the default port setup in the Virtual camera to 554, which is what I did. In that case you can also check that there isn't something running on your PC already attached to port 554. From memory the Windows Media Sharing service (or some name like that) sometimes uses it, in which case you can disable that service.

A possible 'fix' for this issue is the following:

In the 'real camera' tab, be sure there is a real Axis cam of some sort there. It does NOT have to be the one that created the stream settings.

Doing this has allowed this sim to work with several VMSs which otherwise would not work unless RTSP was called directly.

BTW..in my setup, in the PlayBack settings, I do NOT use any real camera there...I only have my recordings in effect.

Harold, 1, thanks for posting comments and reviving this.

There has been one major new entrant in this space - XStreamGenerator from a Dubai based company. We have not tried it but they seem to be quite focused on building a real commercial product for load testing VMSes.

Here is their marketing video:

Let us know what you think. We generally don't get a lot of requests here, so that's why we did not cover it yet.

Also, to 1's point, I do think it would be useful to keep a directory of tools and we'll work on that.

John, I am testing this xStream tool out right now. It creates a Virtual set of IP addresses to use even though the actual NIC on the host system is a completely different IP.

You get a 30 day demo and have to use their own saved clips which are either 4CIF or 720P

The documentation is a bit 'thin' and I eventually discovered an RTSP call I could use with VLC...and hence a VMS.

There seems to be a 'keep-alive' issue I am seeing, so I am also evaluating their support.

During our eval we tried this on a VMS and it did not work even though it was one of the 'listed' compatibles. It has been a couple weeks since we reported that their test version was too old by a least two releases.

Other VMSs are quite happy with it.

A new one in our lab is the SONY IP Camera Emulator.

It does NOT need a real camera to work well. The AXIS one does 'prefer' to have a real camera as a fallback to cover queries that the sim itself does not know how to answer.

If you have multiple NICs in your PC you can assign the different ones to sim cams.

Having a real SONY cam does allow you to change the playback video to something you recorded from the real one.

It is a bit quirky how to control the sim...but NotePad++ is your friend here since the control file is keyword based and 'change alls' easily handled.

You need to be registered with them to be able to get it. Video Security Member is the key.