When starting to play,record or distribute streaming media the source location of the media and associated source parameters are required. This information is passed in by the application using source URLs. The following describes the format of these URLs for different types of service formats. The current KreaTV extended URI format is explained below:
foo: This part of the URL defines the scheme. The current schemas that are supported include http, dvr, rtsp, dvb, rtp, atsc and ip. Please note that not all schemes are supported on all KreaTV platform variants. The scheme must be specified.
streaming_source: This part of the URL defines either the DVR asset, tuning_parameters or address and port information associated with the source content. The streaming_source must be specified for all schemes.For more details see each scheme definition.
query parameters: This part of the URL definition provides optional parameters. These parameters are initially delimited by using the '?' delimiter. For backwards compatability, a '&' is still accepted in this position. For more details see each scheme definition.
morequeryparams: This part of the URL definition provides for additional parameters. Additional parameters are delimited by using the '&' delimiter. For more details see each scheme definition.
optional parameters: This part of the URL definition provides for optional parameters. The beginning of the optional parameter list is delimited by using the '|' delimiter in place of a '&', or if the first parameter, in place of the '?'. This delimiter has a special meaning when constructing streaming sessions; for purposes of session reuse, all parameters after the '|' will NOT be considered when determining if a session URL is duplicated (and can thus be reused). For more details see each scheme definition.
In general, the URL passed in to create a media session will be functionally available to all interested parties by calling TToiMediaSession->GetUrl(). This is true except in the case where the parameter "Reusable" is included in the URL, typically as 'Reusable=NO'. When this parameter is included in the URL string, it will be stripped out before the URL is stored in the created media session.
RTSP is a session management protocol for streaming and is implemented by many video servers including Kasenna MediaBase, Concurrent and NCUBE. RTSP URLs have the following syntax:
rtsp://<host>[:<port>]/<content path>[?<queryparam>=value][&<queryparam>=value]*][|<parameter>=value[&<parameter>=value]*]
where
Each parameter is separated by an ampersand (&). For details see the list of parameters.
Example:
rtsp://my-vod-server.com/movies/shrek
Multicast streaming is in many ways similar to RTSP but sessions are managed with the standard IGMP multicast join and leave operations. Multicast URLs have the following simplified syntax:
igmp://<multicast address>:<port>[?<queryparam>=value][&<queryparam>=value]*][|<parameter>=value[&<parameter>=value]*]
where
Note! Address digits must be written without initial zeros to be treated as dotted decimal form. The following address is NOT in correct dotted decimal form: 0224.010.01.01 (it is actually in dotted octal form)
Note! Port number must be above 1024
For details see the list of parameters.
Example:
igmp://239.1.1.1:5201
Singlecast streaming accepts unicast UDP encapsulated streams sent to a local IP address. Singlecast URLs have the following syntax:
udp://<singlecast_address>:<port>[?<queryparam>=value][&<queryparam>=value]*][|<parameter>=value[&<parameter>=value]*]
Where
Note! Address digits must be written without initial zeros to be treated as dotted decimal form. The following address is NOT in correct dotted decimal form: 192.168.01.02 (it is actually in dotted octal form)
Note! Port number must be above 1024
Examples:
udp://192.168.1.2:5201udp://192.168.1.2:5201?source=10.10.11.2:46218
Multicast and Singlecast streaming can also be done using the Real-time Transport Protocol (RTP). For this to work the URL must start with rtp://. Other than that, everything that applies to multicast and singlecast applies to RTP as well.
Example:
rtp://239.1.5.10:20000
Standard HTTP URLs may be used to stream audio/video from a web server. The file is identified by its MIME type (audio/mpeg, video/mpeg):
http://<host>[:<port>]/<content path>[?<queryparam>=value][&<queryparam>=value]*][|<parameter>=value[&<parameter>=value]*]
where
Example:
http://myserver.mydomain.com/fun_movie.mpg
DVB-T sources are specified on the form:
dvb://<original-network-id>.<transport-stream-id>.<service-id>[?<queryparam>=value][&<queryparam>=value]*][|<parameter>=value[&<parameter>=value]*]
where
These parameters can be obtained after performing a channel scan.
Example:
dvb://F7A7.5C24.43B1
Bitband uses a proprietary ASX format. A standard HTTP URL is used to specify the file, which has to end with ".asx" or ".bbp".
http://<host>[:<port>]/<content path>[?<queryparam>=value][&<queryparam>=value]*][|<parameter>=value[&<parameter>=value]*]
where
For details see the list of parameters.
Example:
http://myserver.mydomain.com/forrest_gump.asx
http://myserver.mydomain.com/forrest_gump.bbp|STBID=00:1A:66:1A:B1:7C
The DVR URI is used to open recorded assets in the system. The preferred way to obtain the URI is to use the designated functions. They will return on the following form:
dvr://<asset path>
where the <asset path> is the path to the asset on the harddrive.
Example:
dvr:///dvr/storage/asset_bls558
ATSC QAM Sources using Tuning Triplet are specified on the form:
atsc://fr<frequency>.<modulation>.<mpegservice-id>[?<queryparam>=value][&<queryparam>=value]*][|<parameter>=value[&<parameter>=value]*]
where
Example:
atsc://fr477000000.256.23?tuner_id=0