Using GStreamer for highly scalable, network streaming project.

yusuf.husainy yusuf.husainy at
Wed Jul 24 08:06:11 PDT 2013


We had an internal discussion with our client and this is what I got:

You may mean 500 individual cameras rather than 500 different cameras.
<Yusuf>Yes, 200 to 500 individual cameras to act as source of inbound feed.
These cameras could be of different types, some may be D-Link surveillance
cameras, some may be Dropcam camera etc. But assume that all the cameras
support H.264 video (with/without audio) over RTSP.

  1) What is your target video resolution?
  2) What is your target frame rate?
15-20 fps
  3) What is your target streaming bandwidth per video feed into the system?
Did not understand the question. Each video stream into the system will be
VGA resolution H.264+AAC over RTSP, 15~20fps. The feeds come in from devices
in the field; network conditions at feed source (devices) may not be
constant and reliable. The system should be resilient to handle frame
loss/packet loss.
  4) What is the maximum number of concurrent streams you want to be able to
Per server (EC2 m1.large instance), up to 200 inbound individual concurrent
  5) What is the maximum number of concurrent unique streams you want to be
able to stream?
See the above answer. Inbound 200 unique concurrent streams.
  6) Is 1000 the maximum number of concurrent not unique streams you must be
able to support?
1000 outbound concurrent streams. So if there are 1000 viewers, and total
200 inbound streams, on average there will be 5 outbound streams per inbound
  7) Does the system have to be able to support VoD streams also or just
Live streams?
Yes, the 200 inbound streams must be recorded to storage as well as streamed
out live. The 1000 outbound streams is total of live as well as VoD outbound
streams, so for example, 800 Live outbound and 200 VoD outbound. The VoD
must be from the content recorded from the inbound streams at a previous
time. Think DVR in the cloud.
  8) If it needs to support VoD, what is the maximum number of concurrent
streams it needs to support?
As stated above. Expected server performance is 200 inbound streams (record
and stream out simultaneously) and 1000 outbound streams (total of live and
  9) Can you mix/merge some video feeds to lower the storage and bandwidth
required or do you need to have them all in full size available?
Cannot mix/merge. Each stream must be stored individually.
  10) What will you do with saved video (VoD) as it gets older?
If configured to do so, the server should delete files older than
[configured] days, e.g. delete files older than 60 days.

I appreciate the help :)

Yusuf Husainy.
Best regards
Peter Maersk-Moller

View this message in context:
Sent from the GStreamer-devel mailing list archive at

More information about the gstreamer-devel mailing list