NoahFetz / F1AppleTV

F1TV Client for AppleTV

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Manually set stream quality

seanarnold opened this issue · comments

It would be good to add the functionality of manually setting stream quality.

Background

I have an issue where the set bitrates in F1TVs .m3u8 files are too aggressive:

  • BANDWIDTH=10991332,AVERAGE-BANDWIDTH=6811332,RESOLUTION=1920x1080

A 1080p stream requires a bandwidth of 0.8MB/sec. This shouldn't be an issue but I think due to where the CDNs are located (I'm in New Zealand) the iOS players seem to have issues from switching me to 1080p. Other streaming platfoems I've tested in NZ use a low 0.4MB threshold.

Solution?

I know that HLS streams are designed to play & be managed by the client with bitrate adjustments being made on the fly, but it'd be great to allow custom overrides like F1TV offers in browsers. Unfortunately it seems not easy to achieve on iOS. however I think I have a rough hacky plan after doing some research:

  1. Add a stream override setting in the Settings menu (auto, 280, 360, 540, 720, 1080)
  2. If the setting exists, Intercept the .m3u8 file and remove stream options that do not match to the setting.
  3. Serve the file again via local webserver (This seems mandatory due to the inability to play local .m3u8 files. Maybe Telegraph will work?
  4. Play the modified .m3u8 file.

The other option might be to

  1. Parse the matching stream from the .m3u8.
  2. Play the stream directly (unsure on the modifications that would be needed for the playback here).

What do you think? Adaptive streaming issues seem to be the most prevalent problem I see on the F1TV Reddit. Ideally F1 would just reduce the required bitrate, but that seems unlikely since it's been an issue for some many years. It'd be great to be able to have this in a native app, rather than having to fetch a laptop and an HDMI cable.