forked from jplayer/jPlayer
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathRTMP_NOTES
46 lines (27 loc) · 4.17 KB
/
RTMP_NOTES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
NOTES:
Added an example page showing video usage with "rtmpv" and the most recent jPlayer skin here:
http://clients.impossibilities.com/jplayer/rtmpv.html
More examples coming soon...
1. Two new supplied media types for setMedia "rtmpa" and "rtmpv" - specify for rtmp audio streams and rtmp video streams.
Example Audio:
jPlayer("setMedia", {
rtmpa: "rtmp://cpcode.edgefcs.net/ondemand/mp3:/path_to_my_audio/some_audio_track.mp3" } );
Example Video:
jPlayer("setMedia", {
rtmpv: "rtmp://cpcode.edgefcs.net/ondemand/mp4:/path_to_my_audio/some_audio_track.mp4" } );
2. URL parsing of RTMP sources (which may need to be customized per usage, or extended/modified based on implementation needs) is located in the new ActionScript class files: JplayerRTMP.as - the relevant function is: parseRTMPsrcConnect(string) - this is where you should make accomodations for your FMS instance name, media location path, etc. Currently has basic support for parsing vod and live, but you may need to adjust this function to handle and parse your RTMP source URLs appropriately. Examples for splitting the host, appname and streamname are there, but if you have custom instances, or other needs, this is the place to edit/adjust.
3. The changes to jquery.jplayer.js are very minor, the majority of the big changes are in the Jplayer.as to allow for the new RTMP formats "rtmpa" and "rtmpv" and to import a new JplayerRTMP.as and a ConnectManager class which add the bulk of the RTMP support.
10/21/2011 UPDATE:
Video is now functioning properly. Several bug fixes related to video over rtmp are now in place allowing it to function as expected.
Optimized the buffering settings to provide a dual-threshold buffering approach for recorded/ondemand RTMP streams, and standard non dual-threshold buffering for LIVE content where technically there may not be anything to buffer.
08/11/2011 UPDATE:
Reworked the parseRTMPsrcConnect to add significant amount of intelligence about rtmp sources. Now as long as its a valid rtmp source, it will be parsed appropriately. I also added in support for instance name detection without the much slower practice of multiple connection attempts to try and figure out the instance name verus portion of the stream name. Use a single "^" instead of a "/" directly after the instance name in your rtmp source url as a sentinel to indicate the end of a custom instance name after an FMS appname. Example:
rtmp://media.somehost.com:1935/someAppName/customInstanceName^mp3:thepathtosomefolder/folder/my_great_audio.mp3
TODO Future Features List:
1. DONE: Automatic Multiple port/protocol negotiation support, latching onto first to respond in order for more robust support in enterprise/firewalled networks. This is now place, but in the future I would like to add additional support for passing in a custom array of configureable ports/protocols and timeout attempts, to configure attempts only on specific ports/protocols and custom retry amounts.
2. Bandwidth detection. Currently no bandwidth detection is being used. Could leverage old style onBwDone one time check, but ideal situations would be to add in support for AS3 based NetStreamInfo QOS metric properties to allow dynamic/multibitrate switching on the fly - auto determine other bitrates, etc. Possibly support for basic SMIL sources.
3. Additional error/status messages for the various NetConnection/NetStream status codes returned by FMS for RTMP streaming, and pass through to JPlayer.
4. Add in indeterminate progress/waiting event similar to seeking, specifically for RTMP connection negotiation and buffering.
5. DONE: Additional buffering parameters - perhaps dual threshold buffering, but at least additional config options for prerecorded media. LIVE streams are set to use bufferTimeMax at .5 and bufferTime at 0 (recommended for LIVE streams)
6. LIVE stream GUI adjustments, change scrub/seek bar to Indeterminate animating progress bar and change current time/duration time from numeric values to "LIVE". (Determined best approach is to handle this all in JavaScript - will not be modifying the core ActionScript to support).
7. Explore support for DVR live feature of FMS, and additional formats like HLS/Chunked F4V/HTTP Dynamic Streaming, etc.