Transcoding at lower bitrate for limited bandwidth (#58)
Hello!
To begin with, thanks a lot for Funkwhale and the Android application, which is delightful to use every day.
As mentioned in #58, the application does not yet have a way to reduce the amount of data exchanged between the player and the server. When streaming high-quality audio on 4G or 5G connection, it can get very costly if one does consume a lot of FLAC content. This PR is an attempt at solving this issue and is my first contribution to the project. I would appreciate some hints/helps according to unit tests, translations, and probably things I did not cover for the moment...
Here is a summary of what I have done:
- Add a new setting called "Bandwidth limitation" with an icon, and a basic description,
- If bandwidth limitation is set to limited, append
&to=mp3&max_bitrate=320
to the listen URL of the candidate best track upload.
A better way to do it in the future would be to add a bar to configure the desired maximum bitrate, and probably check in the cache if the best upload is already there before asking for a reduced one. Testing that the best quality upload is already meeting the bandwidth constraint would be interesting to avoid an unneeded transcoding on the server side. I prefer to point out the flaws so that we can discuss about them together!
Thank in advance,
Dylan
Merge request reports
Activity
changed title from Transcoding at lower bitrate for limited bandwidth (#5 (closed)3) to Transcoding at lower bitrate for limited bandwidth (#5 (closed)8)
added 6 commits
-
6582dd82...61ab3a91 - 2 commits from branch
funkwhale:develop
- a9e7fe2e - Add bandwidth limitation setting in Settings activity
- 9493d73f - Add network icon for bandwidth limitation setting
- 5e012c2b - Add summary for bandwidth limitation
- b2128621 - Transcode at 320kbps when bandwidth limitation is enabled
Toggle commit list-
6582dd82...61ab3a91 - 2 commits from branch
assigned to @georgkrause
Hello @dgageot And thank you for the contribution, I will take care for handling this hopefully next week, sorry for the delay!
Hi @dgageot
At first, I like the approach to add a manual setting first. This way we can test it out and if its working correctly we could extend the functionality. Maybe its worth to add a beta sign somehow?
I just enabled the Gitlab Runner for your project so the tests can run. Do you have any more questions regarding the tests?
Also, do you have specific questions regarding the translations? I'll check if everything is setup correctly as soon as possible.
During the week I will run your App to do some tests. Again, thank you a lot for your work!
Approved by @hdasch via Chat
added 43 commits
-
40c87bb6...1d5578fe - 39 commits from branch
funkwhale:develop
- 33938e37 - Add bandwidth limitation setting in Settings activity
- 27e751df - Add network icon for bandwidth limitation setting
- 45ad4bdb - Add summary for bandwidth limitation
- 8e09dccb - Transcode at 320kbps when bandwidth limitation is enabled
Toggle commit list-
40c87bb6...1d5578fe - 39 commits from branch
added 1 commit
- 1288e050 - Add translations for other languanges than default
added 1 commit
- 5c5d86a7 - Add beta sign on network bandwidth limitation icon
Hi @georgkrause,
Thanks for the feedback!
I have added a beta sign over the setting icon, and introduced translations (might not be perfect) for each string. If everything is good to you, I think the MR is complete.
Edited by Dylan Gageot@dgageot thank you! Lets merge it and see if there are any bug reports regarding this :)