GNU MediaGoblin is a well known free software media publishing platform where people can see and share their media. Even though we can think of it as an alternative to YouTube or SoundCloud, there are some missing features. The primary goal of this project is to improve the existing video player by adding an option for multiple resolutions.
During the start of this project, I plan to work on transcoding the uploaded video into possible multiple qualities like 360p, 480p, 720p, 1080p and 4K. But there is a glitch here because transcoding the video into so many qualities may take too much time.
Hence, I plan to use Celery's prioritized tasking with Rabbitmq to tackle this problem. The video will be rendered to the user just after the video is transcoded to 480p, and then subsequently the option for different qualities is given as and when the video is transcoded to that quality.
At the end of the project, I will be handling the front-end part of the project where the option to choose different resolutions will be added to the video player. I also plan to extend on the idea where if the user's internet speed is low at page load, then a lower quality of the video should be rendered.