collective / wildcard.media

13 stars 12 forks source link

Future: Resolution Option #19

Open chaydock opened 9 years ago

chaydock commented 9 years ago

There doesn't appear to be a way currently to select a different resolution. Whatever resolution is being hosted is what you receive which may be too much for someone on a low bandwidth connection, or simple overkill streaming an HD video into a window only 200 px wide. Can an option be be added to let the user choose between low, med, high, HD, 4k? (low=200, med=480, high=1080, 4k=2160 or something along those lines) Also, have the embedded viewing window auto-select a resolution to match the window size, but give the user the option to select a different resolution if they have bandwidth issues, or choose to go full screen and up the resolution. Along those same lines, when switching resolution, have the player note the time of the current video and cue up the new resolution at the same time stamp (or maybe a second or two prior to the stamp).

vangheem commented 9 years ago

on-demand resolution can not be achieved. Plone is not a streaming media server and implementing the on-demand re-encoding for different qualities would be very difficult.

The only way to accomplish this, I think, is to convert to all the different resolutions you want to support ahead of time using libav. However, that adds a lot of storage overhead(and this plugin already does have enough storage overhead).

It seems like the player, mediaelementjs, does support providing multiple qualities(pre-converted); however, I do not think it automatically detects the most appropriate one for you.

TL;DR : this will probably never be implemented because it's too much work for not enough benefit. The plugin is not aiming to make Plone a streaming media server or youtube competitor. It's just meant to provide simple video/audio support.

I'll keep the ticket open in case anyone wants to take a crack at it.

djay commented 9 years ago

I think it might not be too hard. We could have fields for webm_high webm_low etc. and then a setting to set the avconv params for each. can just leave them blank if you don't want to use them.