Optimizing Web-Served Media for RV

I’m looking for any insight on ideal parameters or any way of producing the best possible experience loading web-served media inside of RV.

Issues I’m Seeing

Long load times. Time between addSource and first pixels can be as long as 4 seconds in some cases for even relatively small media. I’ve tried even serving media locally using static serving with Flask to try to eliminate web latency and I still see longer than expected load times.

Frequent Application Freezes when Loading (even with progressive source loading)

Slow caching of Audio. Sometimes several seconds will pass after caching images before audio will be presented when using streaming, seemingly made much worse with progressive source loading.

Excessive web requests (even on seemingly fully-cached media). When I started using flask local static serving, it became much more apparent to me that when swapping between sources that were fully cached, I’d get a lot of web requests hitting when the source caching bar seemed full.

RV Feezes seemingly blocked by web requests. When I started artificially increasing the latency on my local flask server (with a simple time.sleep(x)), I’d find that RV would sometimes freeze more readily in direct proportion to the delay I’d introduce. I’d expect any web-bound request to be asynchronous as far as the UI interaction goes.

Encoding Parameters

My encoding settings used provide -tune zerolatency as well as -movflags faststart.

Is there anything else I can do to alleviate some of these problems I’m seeing? I suspect some of these are at the ffmpeg http streaming layer, but if there’s any simple things I can do to improve read performance and mitigate some of these problems, I’d love to hear!

1 Like