generateLazyPullFile
Will create a VOD file which contains details of the stream to be pulled when the file is requested.
This function has the following parameters:
Parameter Name | Mandatory | Default Value | Description |
---|---|---|---|
uri | true | null | The URI of the external stream. Can be RTMP, RTSP or unicast/multicast (d)mpegts |
pathToFile | true | null | The path where the file will be saved, with a “.vod” extension. |
forceTcp | false | 1 true | If 1 and if the stream is RTSP, a TCP connection will be forced. Otherwise the transport mechanism will be negotiated (UDP or TCP) |
tcUrl | false | zero-length string | When specified, this value will be used to set the TC URL in the initial RTMP connect invoke |
pageUrl | false | zero-length string | When specified, this value will be used to set the originating web page address in the initial RTMP connect invoke |
swfUrl | false | zero-length string | When specified, this value will be used to set the originating swf URL in the initial RTMP connect invoke |
rangeStart | false | -2 | For RTSP and RTMP connections. A value from which the playback should start expressed in seconds. There are 2 special values: -2 and -1. For more information, please read about start/len parameters here: http://livedocs.adobe.com/flashmediaserver/3.0/hpdocs/help.html?content=00000185.html |
rangeEnd | false | -1 | The length in seconds for the playback. -1 is a special value. For more information, please read about start/len parameters here: http://livedocs.adobe.com/flashmediaserver/3.0/hpdocs/help.html?content=00000185.html |
ttl | false | operating system supplied | Sets the IP_TTL (time to live) option on the socket |
tos | false | operating system supplied | Sets the IP_TOS (Type of Service) option on the socket |
rtcpDetectionInterval | false | 10 | How much time (in seconds) should the server wait for RTCP packets before declaring the RTSP stream as a RTCP-less stream |
emulateUserAgent | false | EvoStream message | When specified, this value will be used as the user agent string. It is meaningful only for RTMP |
isAudio | true if uri is RTP, otherwise false | 1 true | If 1 and if the stream is RTP, it indicates that the currently pulled stream is an audio source. Otherwise the pulled source is assumed as a video source |
audioCodecBytes | true if uri is RTP and isAudio is true, otherwise false | zero-length string | The audio codec setup of this RTP stream if it is audio. Represented as hex format without ‘0x’ or ‘h’. (For example: audioCodecBytes=1190) |
spsBytes | true if uri is RTP and isAudio is false, otherwise false | zero-length string | The video SPS bytes of this RTP stream if it is video. It should be base 64 encoded |
ppsBytes | true if uri is RTP and isAudio is false, otherwise false | zero-length string | The video PPS bytes of this RTP stream if it is video. It should be base 64 encoded |
ssmIp | false | zero-length string | The source IP from source-specific-multicast. Only usable when doing UDP based pull |
httpProxy | false | zero-length string | This parameter has two valid values: IP:Port – This value combination specifies an RTSP HTTP Proxy from which the RTSP stream should be pulled from; self – Specifying “self” as the value implies pulling RTSP over HTTP |
sendRenewStream | false | 0 false | If sendRenewStream is 1, the server will send RenewStream via SET_PARAMETER when a new client connects. Only valid for RTSP URIs |
keepAlive | false | 0 false | If value is 1 (true), source stream will not shutdown even after all clients have hung up |
An example of the generateLazyPullFile interface is:
generateLazyPullFile uri=rtsp://AddressOfStream pathToFile=/MyFileDirectory/MyFile.vod
Example:
API Call:
generateLazyPullFile uri=rtmp://s2pchzxmtymn2k.cloudfront.net/cfx/st/mp4:sintel.mp4 pathToFile=../media/testGenerateLazyPull
JSON Response:
{
"data":{
"audioCodecBytes":"",
"emulateUserAgent":"EvoStream Media Server (www.evostream.com) player",
"forceTcp":true,
"httpProxy":"",
"isAudio":true,
"keepAlive":false,
"pageUrl":"",
"pathToFile":"..\/media\/testGenerateLazyPull",
"ppsBytes":"",
"rangeEnd":-1,
"rangeStart":-2,
"rtcpDetectionInterval":10,
"sendRenewStream":false,
"spsBytes":"",
"ssmIp":"",
"swfUrl":"",
"tcUrl":"",
"tos":256,
"ttl":256,
"uri":{
"document":"mp4:sintel.mp4",
"documentPath":"\/cfx\/st\/",
"documentWithFullParameters":"mp4:sintel.mp4",
"fullDocumentPath":"\/cfx\/st\/mp4:sintel.mp4",
"fullDocumentPathWithParameters":"\/cfx\/st\/mp4:sintel.mp4",
"fullParameters":"",
"fullUri":"rtmp:\/\/s2pchzxmtymn2k.cloudfront.net\/cfx\/st\/mp4:sintel.mp4",
"fullUriWithAuth":"rtmp:\/\/s2pchzxmtymn2k.cloudfront.net\/cfx\/st\/mp4:sintel.mp4",
"host":"s2pchzxmtymn2k.cloudfront.net",
"ip":"54.239.131.224",
"originalUri":"rtmp:\/\/s2pchzxmtymn2k.cloudfront.net\/cfx\/st\/mp4:sintel.mp4",
"parameters":{
},
"password":"",
"port":1935,
"portSpecified":false,
"scheme":"rtmp",
"userName":""
}
},
"description":"Stream parameters written to ..\/media\/testGenerateLazyPull.vod",
"status":"SUCCESS"
}
The JSON response for generateLazyPullFile contains the following details:
- data – The data to parse
- audioCodecBytes - The audio codec setup of this RTP stream if it is audio. Represented as hex format without ‘0x’ or ‘h’
- emulateUserAgent – This is the string that the EMS uses to identify itself with the other server. It can be modified so that EMS identifies itself as, say, a Flash Media Server
- forceTcp – Whether TCP MUST be used, or if UDP can be used
- httpProxy – May either be IP:Port combination or self
- isAudio – Indicates that the currently pulled stream is an audio source
- keepAlive – if true, will retain the stream in the config even if the playback stopped
- pageUrl – A link to the page that originated the request (often unused)
- pathToFile – The local name for the stream
- ppsBytes – The video PPS bytes of this RTP stream if it is video
- rangeEnd – The length in seconds for the playback
- rangeStart – A value from which the playback should start. Applies only to RTSP and RTMP connections
- rtcpDetectionInterval – Used for RTSP. This is the time period the EMS waits to determine if an RTCP connection is available for the RTSP/RTP stream. (RTSP is used for synchronization between audio and video)
- sendRenewStream – Indicates if the server will send a RenewStream when a new client connects
- spsBytes – The video SPS bytes of this RTP stream if it is video
- ssmIp – The source IP from source-specific multicast
- swfUrl – The location of the Flash Client that is generating the stream (if any)
- tcUrl – An RTMP parameter that is essentially a copy of the URI
- tos – Type of Service network flag
- ttl – Time To Live network flag
- uri – Contains key/value pairs describing the source stream’s URI
- document – The document name of the source stream
- documentPath – The document path of the source stream
- documentWithFullParameters – The document name with parameters of the source stream
- fullDocumentPath - The document path of the destination stream
- fullDocumentPathWithParameters - The document path with parameters of the destination stream
- fullParameters – The parameters for the source stream’s URI
- fullUri – The full URI of the source stream
- fullUriWithAuth – The full URI with authentication of the source stream
- host – Name of the source stream’s host
- ip – IP address of the source stream’s host
- originalUri – The source stream’s URI where it was generated
- parameters – Parameters for the source stream’s URI (if any)
- password – Password for authenticating the source stream (if required)
- port – Port used by the source stream
- portSpecified – True if the port for the source stream is specified
- scheme – The protocol used by the source stream
- userName – The user name for authenticating the source stream (if required).
- description – Describes the result of parsing/executing the command
- status –
SUCCESS
if the command was parsed and executed successfully,FAIL
if not