The Pause and Seek issues are caused by the same thing.
The issue is known to JRiver, but it is quite difficult to solve, and so has not been a top priority for them.
To solve it requires the following things:
- the MC server must supply an Http ContentLength header
- the MC server must supply an Http AcceptRanges header
- the MC server must provide DIDL with at least two out of the following three attributes: duration, size, bitrate
- the MC server must honour Http Get requests having RangeBytes entries, with a 206 partial content response, plus a ContentRange value
In order for the MC server to be able to do these things, it needs the following capabilities:
- ability to estimate the ContentLength of a transcoded stream
- ability to translate a RangeBytes offset into a time offset into the transcoded stream
- ability to initiate a new transcode session starting from said time offset
It would also help MC (but is not a must) if it were able to do the following:
- ability to cache / buffer a full or partial stream transcode to disk, so that if a RangeBytes request comes in within the already transcoded disk image, it gets served from cache, and only starts a new time offset transcode if the Range request is out of scope of the disk cache
Note: the above is what I do with my own Whitebear server code, so I know that it works...
Hi there,
I'm trying to get DLNA to work on my videos, I'm using a npm module to do that, but the files that are hosted probably don't provide DIDL of things like you mentioned.
I could confirm they actually provide others, like content length, range and it also lets me request using bytes range.
But the DIDL part I didn't understand, say I'm writing a media server (or modifying an existing one), what's this DIDL thing, and how do I provide? Because when I looked at logs while playing the video, my TV didn't even request for DIDL, is that some first few bytes of video file or some headers thing? It'd be awesome if someone could help me out.
My issue is that when I use dlnacast2 npm module, it does play video but it can't seek, however from windows, right click and cast to tv, it can seek those files, my hunch is either it needs that DIDL, or the windows software is actually allowing time based seeking.
Where do I proceed? I'm currently using http-server to serve video files. I feel like I just need to change the way I host files.