it's not clear what is contributing the most to this. latency varies from 10 to 20 seconds for peers connected directly to the stream source...
suspects...
- ffmpeg/obs
- probably negligible?
- are there encoder settings to optimize for this?
- nginx-rtmp module
- this currently splits on keyframes... could we generate smaller chunks and flush more frequently if we ignore keyframes? the chunks are given as a continuous stream to mux.js anyway...
- is mpeg ts the right format for this? does something like rtmp/rtsp make more sense?
- chokadir
- is a 1 second
stabilityThreshold overly conservative?
- chunked read/write stream
- should we zero pad the input chunks to align with the injector chunk size?
- does the spec provide an efficient way to encode empty space?
- injector
- there are several settings here that could be adjusted...
- scheduler
- the first available/needed chunk to pass a random roll with a 5% chance is currently picked... this strategy probably results in waiting too long to prioritize lagging chunks. the spec describes a priority and reputation based system for assigning requests for urgently needed chunks. this should be implemented.
- player
- could we be flushing the transmuxer more frequently?
it's not clear what is contributing the most to this. latency varies from 10 to 20 seconds for peers connected directly to the stream source...
suspects...
stabilityThresholdoverly conservative?