Hubs-Foundation / hubs

Duck-themed multi-user virtual spaces in WebVR. Built with A-Frame.
https://hubsfoundation.org
Mozilla Public License 2.0
2.13k stars 1.41k forks source link

stop and refresh buttons on video streams #2104

Open blairmacintyre opened 4 years ago

blairmacintyre commented 4 years ago

Is your feature request related to a problem? Please describe. Sometimes video streams break, such as on poor wifi, and the only solution is to refresh the room. Sometimes you aren't watching a stream, or the wifi is poor and you want to chat but not have the stream consume bandwidth, and want to stop it

Describe the solution you'd like A refresh button, like on hubs' web pages. It shuts down the stream and tries to restart it at the "live" position (i.e., refreshing doesn't try to pick up where you were, it just goes to "live") A stop button, to just stop the stream, which just shuts down the stream.

Describe alternatives you've considered none

Additional context We don't want to remember when in the stream you are. My mental model is that all live streams are "live", there is not pause/back/forward. So, stop just kills a stream, and refresh restarts it at the "live" point.

┆Issue is synchronized with this Jira Task

gfodor commented 4 years ago

One q about this is that it sounds like this is meant to rectify local issues on an individual's machine. If so, this is somewhat different than the existing 'refresh' facility on thumbnails, which is a networked, global event that affects room state. I think a general "reload" facility on all media objects (separate from the existing thumbnail re-fetch concept) would fit in here, that just basically re-runs the resolution of the media on your local machine, akin to if you reloaded the room.

gfodor commented 4 years ago

UX-wise, its a bit hard to know where such a thing could fit in. We could ofc throw it on the menu, but it could get easily confused with the rotate button if we rely upon iconography. adding a "refresh" (labelled) button in the lower row could work, but it's getting a bit crowded!

blairmacintyre commented 4 years ago

If we just do it for streams (the critical use case, since they are the things that are fragile), we could just put it in the overlay you get on the video when you mouse over it). So above the volume slider, beside the magic "grab an image" icon? Add both a "stop" (which essentially just "breaks" the stream) and refresh (which does, as you describe, the same thing as when you start the room, tries to reload it from afresh)

gfodor commented 4 years ago

ah, good point. if we want to focus exclusively on live streams for this issue (which seems relatively OK), we actually don't even show the play/pause/seek controls on those, since they're non-nonsensical, so we can just slap a refresh button in lieu of the play button and call it a day. does that work?

the other use case that came to mind was 3d model refresh (for model authors who upload changes to sketchfab), but in that case, its the web thumbnail semantics, not this one.

blairmacintyre commented 4 years ago

Right now a stream (twitch, for my test just now) has volume and the magic wand to grab an image. I would like to add refresh and I really want stop: especially for VR where I want to put all the streams in one room, for people on slow (or metered) connections, being able to stop streams will be very useful. Beyond that use, if I enter a room and there is a stream someone drops in, and I don't want it (visually) in my view for a while, being able to stop and then restart later (with a refresh) seems useful.

gfodor commented 4 years ago

Ah ok. What about if we added the play/stop button to streams, but for streams specifically, those playback controls were non-networked, and hitting play refreshed the stream and caught it up to the head?

If you couldn't tell, I'm trying to avoid adding another button :)

blairmacintyre commented 4 years ago

The stop/refresh/play buttons should definitely be local; that’s the need. You want to control it for you (like volume)!


Blair MacIntyre Principal Research Scientist

snt frm iOS kybrd, pls pardon typos and weird auto-corrections

blairmacintyre.me && pronoun.is/he/him


From: Greg Fodor notifications@github.com Sent: Wednesday, February 5, 2020 6:39 PM To: mozilla/hubs Cc: Blair MacIntyre; Author Subject: Re: [mozilla/hubs] stop and refresh buttons on video streams (#2104)

Ah ok. What about if we added the play/stop button to streams, but for streams specifically, those playback controls were non-networked, and hitting play refreshed the stream and caught it up to the head?

If you couldn't tell, I'm trying to avoid adding another button :)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/mozilla/hubs/issues/2104?email_source=notifications&email_token=AAKJJ7MC3NX5AIDQETCFAW3RBNE3HA5CNFSM4KOF5YDKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEK5ML2A#issuecomment-582665704, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAKJJ7PVZGZWHGIPE2BDUN3RBNE3HANCNFSM4KOF5YDA.

gfodor commented 4 years ago

Yup, non-networked.

johnshaughnessy commented 4 years ago

Started implementing this in https://github.com/mozilla/hubs/compare/feature/refresh-video-streams-button but am concerned that we'd be paving over previous design decisions around keeping state between clients synchronized. Going to pause on this for now. See the discussion in discord following: https://discordapp.com/channels/498741086295031808/542474492404826125/677657812134002691

camelgod commented 4 years ago

Any news / thoughts on this?

I was just about to open a feature request - It would be SO handy for any kind of livestreaming scenario (or sometimes local videos (youtube?) failing to load for whatever reasons).

The feature branch referenced in the previous comment seems to be gone.