I'm looking for a solution toward a patch for commercial skipping in Myth's uPnP server. Originally, I thought that an .m3u playlist would be the way to go, with each entry being a segment of content that comprises a track for the player. The next chapter button would provide semi-automatic commercial skipping, which the user could control. But the Link Theater would likely pause as the next segment is buffered, but since it's during a commercial break, it's not that distracting. However, most users would probably prefer a more continuous streaming effect.
I found that you can request the entire file from Myth's uPnP server, which
will stream it out in response to a URI request like the following:
Code:
http://mymythserver:6544/Myth/GetRecording?ChanId=3072&StartTime=2007-05-17T02:30:00
(this works, even from a browser), but, there is no way to specify a byte
range in a URI to indicate that the client wants only part of the content.
Byte ranges are part of the HTTP 1.1 specification, and are passed along
outside of the URI in the header of the request. Myth's uPnP server
provides partial content using the byte range header in the request, and the Link Theater uses these byte ranges to fast forward or rewind.
Therefore, I am dead-in-the-water with my idea about using a playlist, like
a .m3u file, to get segments of content from the Myth uPnP server (unless I modify Myth's uPnP server to accept another parameter like off=, as was done in the Wizd server). Likewise, even if Myth's uPnP server were modified to provide output denoting chapters for a video playlist (by serving in the proprietary format that causes the Link Player to recognize the chapters), the Link Player could not request segments of content from Myth's uPnP server in the URI requested by the Link Player. But I want to keep with the standards, and not get hardware-specific.
The only alternative that fits this criteria would be to do as you suggest for a more integrated solution -- to have the backend, as it is serving up the file content, look at the commercial skip list and omit those ranges from the content seamlessly. The trouble is the false positives that Myth marks. If program content is cut out, then you'd want to turn this feature off, or rewind, to see what you missed. Perhaps a better solution is to have the backend respond to a next chapter button, and skip over the marked commercial content. The trouble with that is that it can't be done in the lower level HTTP protocol, for the reasons I expressed above. Perhaps commercial skipping could be specified as chapters in a higher-level protocol, like uPnP. Alas, I'm not that familiar with it, and it will require that I spend much more time learning the uPnP protocol to see if this is even feasible.
Does anyone have any suggestions?
TIA,
Rob