Posts: 40,483
Threads: 491
Joined: Aug 2002
OK, some poking around seems to indicate that Roku only supports a streaming scheme called HLS. Looks like it's a pull protocol, since it's effectively using HTTP queries to pull down the media to play. Apparently it doesn't support RTP/RTSP at all, so the work I'm doing on that wouldn't help.
Dean Roddey
Explorans limites defectum
Posts: 40,483
Threads: 491
Joined: Aug 2002
Well, reading up a bit on HLS, it explains how the Plex server works like it does. The media is divided into files of a given playback length, and encoded into multiple encoding quality levels. The clients ask for the sequential chunk files during playback, which are long enough (5 to 10 seconds) to stay ahead of playback without having to read too many ahead. THe server provides a manifest that describes the available stream types for that piece of media. If the client decides that the network quality has degraded or improved, it can switch to another stream. Since each file in each encoding level holds the same time range of data, it can just start asking for the files from another stream at the same sequential step, and that will just pick it up at the same place at another encoding rate. So it can efficiently switch encodings on the fly without getting out of sync.
They all have their pros and cons. This kind of scheme really is a pull scheme over HTTP, so they can't do multi-cast channel type stuff like RTP can. I assume that, when you drive it from the server, the server just sends the client a manifest file saying, please start playing this media, and the client then chooses an appropriate stream and starts pulling down files.
Dean Roddey
Explorans limites defectum