whisperCast Elements

See also: Configure whisperCast

The whisperCast media elements are the building blocks of the entire media streaming process.

Standard elements:

  • FileElement:
    You can configure a FileElement in order to read (and serve) files from a directory. It reads the files on request and provides the data that it reads downstream.

  • HttpClientElement:
    This element reads data from a remote http server. You can configure it with the remote location you want this data to be read.

  • HttpPosterElement:
    Push (post) a stream via http to another server (whispercast instance).

  • HttpServerElement:
    This element registers a path on which someone can push data into the system. This element accepts it and pushes it downstream.

  • RtmpPublishingElement:
    This element registers rtmp publishing path(s) on which someone can push data into the system from a Flash applet incorporated in a web page or via Adobe Flash Media Live Encoder.

  • SwitchingElement:
    This is an element which provides switching capabilities. It provides the data that is received from other, upstream, elements, and it can switch between these providers. The way it switches depends on an associated element policy?. As an example, consider a situation in which one would like to mix a live stream (obtained, say from an HttpClientElement), with some files, obtained from a FileElement.

  • NormalizingElement:
    This element normalizes the time of the media it receives. You may want one of these after each SwitchingElement, and should normally use one just before exporting some un-normalized media to the user. It can also do flow control

  • TimeSavingElement:
    This is an element which saves the state of media playing, so the user can restore its play position very close from where he left in case of a problem with connection or with the server. For example, if you serve a one-hour long media file, if something goes wrong (like: connection if lost, server restarts etc), you may want your viewers to restart viewing from where they left, not from the beginning. To achieve this, insert one of these elements.

  • DroppingMediaElement:
    This element drops stuff from media, like all the audio tags (to get a muted stream), or all video (to get just the sound), or all video except a key frame every 10 seconds, to get a low-bandwidth-what's-going-on stream.

  • SplittingElement:
    This takes unformatted (raw) data and splits it in tags. Normally, a tag splitter is included in most of the elements that produce data. However it is possible to declare those splitters to produce 'raw' data, which is just a stream of amorphous data chunks. For taking those chunks and organizing them in media tags, you need one of this elements.

  • LoadBalancingElement:
    Provides a stream that is load balanced between different sources. One can imagine using this behind a set of file sources: define a set of FileElement sources, one for each mirrored disk and place a LoadBalancingElement in front of it. Request that come to the LoadBalancingElement will be distributed among the file elements, spreading the disk utilization (also providing fail-over support: if one file is not found on one disk it will be tried on the next).

  • SimpleAuthorizer:
    A simple set of user/passwds for your security needs.

  • RemoteResolver:
    An element that resolves media names on a remote whisperCast server, using the standard library RPC, and serves local media based on the remote indication. Great for distributed setups.

  • LookupElement:
    This is a little related to the RemoteResolver, but the lookup is an HTTP request, and the media can actually be fetched from a remote location. Great for distributed setups.