Playback doesn't seek well, help?



I've got content in JRiver Media Center, and rather than convert it to formats Plex likes, I've got a start at a channel plugin that will stream the content from JRiver (JRiver doing the transcoding). It is able to successfully play in several plex clients (web, android). However, the clients have options to skip (10s back, 30s forward on android) as well as set the position via dragging.

Any of these functions basically bring playback to a halt. I'm guess that plex is asking to seek to a specific position somehow (not sure what the HLS protocol does for these commands), and JRiver is trying to transcode everything up to the requested point.

Now JRiver also has an android app where seeking does work. However, looking at the JRiver logs, when that app seeks, it basically sends a new web request to JRiver, with a new start time as a parameter.

I'm hoping there is a way to get seek to work, and I can think of two possible options.
1) Are there some formats that better support seeking directly? Maybe some change in the encoding would help (currently using m3u8, HLS).
2) Is there some way to receive seek/skip commands in the channel plugin? Then I could update the url request myself.

Any suggestions?


The way Plex channels work is that you are just creating an XML document with all the data about the media that each Plex player app can read. The Plex player app reads that data and decides how to best play the media. So each Plex player app completely controls playback and you cannot override the functions of the Plex player apps with channel plugin code.