HTTP Source

The HTTP Source Element handles media streams stored on regular web servers using the Hypertext Transport Protocol (RFC 2616).

Loadable Module Properties

Module Name Streamer HTTP Source Element
File Name libhttpelement.so
Class Count1

Element Quick Index

HTTP Source.

HTTP Source element at beginning of pipeline.

HTTP Source Element

The HTTP Source Element is a limited implementation of the Hypertext Transport Protocol (HTTP) described in RFC 2616.

Class Properties

Name HTTP Source Descriptor
Version1
Interface Name IElementDescriptor
BindingC++

Element Descriptor

NameHTTP Source
TypeSource
Priority500
Output FormatsRaw

URL Schemes

This element accepts URL strings on the form:

http://<address>[:<port>]/<path>

where <address> is the network address given either as an IPv4 address in standard dot notation or as a host name. The <port> is optional and defaults to the standard HTTP port 80. The entire <path> section after the third slash is not used by the HTTP element. The path is forwarded without modification to the server.

Examples:

http://clips.example.com:8080/presentation.ts
http://212.214.69.146/directory/file

Metadata

Since the element is a source element all metadata is produced by the element itself.

Key Input Output
_ConnectionTypeProducedCommitted
_StreamUrlProducedCommitted
_PlaybackModeProducedCommitted

User Operations

The HTTP source element supports a limited range of user operations only. Pause, fast forward and rewind is not supported, nor is the play-from-position and pause-at-position operations.

Theory of Operation

The HTTP element uses the Hypertext Transport Protocol as described by RFC 2616 to request a web server to transmit a media file accessible through that protocol. All file data received from the server is committed without modification to the output pad of the RTSP element. Since HTTP uses TCP for transport, transmission of the file over the network is effectively managed by the protocol.

The HTTP element is only capable of reading the media file sequentially from beginning to end. This limitation renders rewinding impossible. Furthermore there is currently no support for pausing and fast forwarding.