Joystream / atlas

Whitelabel consumer and publisher experience for Joystream
https://www.joystream.org
GNU General Public License v3.0
100 stars 44 forks source link

Multiple video resolutions #2883

Open dmtrjsg opened 2 years ago

dmtrjsg commented 2 years ago

Taken from -#2511

Background Having distinct resolutions for the same video is very useful, in particular to support different screen sizes or levels of connectivity across users. We will also need this as part of youtube-synch, where Youtube offers various levels of encoding of the same media.

Proposal Consumer Baseline Basically allow the viewer to both see the resolution of the media currently being viewed, but also discover whether others exist, and the opportunity to change during play.

Stretch Taking this one step further, it would be useful if the application could have a built in propensity to select a resolution best aligned with current level of connectivity, and switch between versions automatically. This could also be done to lower latency on starting playback of new videos, and is a very standard pattern. I would consider everything in this bucket as a stretch goal, and if it is not decided as in scope, just create some new fresh issues capturing this as possible enhancements for the future.

Studio Allow a publisher to provide more than one media file, both during original publishing, or at a later time. Great the product can detect resolution information from file, so user does not need to specify manually. The ability to have more than one resolution should not be a major choice, instead something a creator can choose to engage with if they need it.

In the future Orion likely will have a transcoding integration, but that may be quite far ahead, and even then it may still be sensible to allow user to specify their own pretranscoded media.

TODO I think the query node already supports all the required metadata representations, so the work here is really in doing some design on the studio side, perhaps a bit on the consumer side, and then mostly application engineering work. Timeline I don't believe this feature is a precondition for launching youtube-synch, or even mainnet, but it seems like a sensible feature enhancement, and some of the exploratory engineering RnD can be done as a filler task at any time.

┆Issue is synchronized with this Asana task by Unito

bedeho commented 2 years ago

What is this?

dmtrjsg commented 2 years ago

This is a provision to be able to playback in multiple video quality resolutions to enhance the experience of viewers on mobile devices and slower internet.

The proper solution would require effort we could not afford, so we concluded it would make sense as a first step in this direction to allow users to upload multiple resolutions of same video asset.

There's a first ticket raised and looked into for this sprint: https://github.com/Joystream/atlas/issues/2886

Happy to speak about it tomorrow after standup and we'd need Klaudiusz to be involved in the conversation.

bedeho commented 2 years ago

Ah ok, makes sense, would be really cool, just wanted to know it did not include the actual transcoding also, because that is a bigger job than what can be tackled.