Hacker News new | ask | show | jobs
by anxiostial 2083 days ago
So the idea is that you select a file, create a room and then share the URL with anyone you want to join and then the video is streamed to everyone connected. All communication between occupants is peer to peer, the room creator has the video controls and any action is relayed to all peers. I built this thing in my spare time because it seemed like a fun idea to be able to stream a video file between a group of friends and it is very much a first pass, things will be broken, features missing, etc. I do plan on expanding it further when I have more spare time but please do comment with any feedback, roast it if you like.
4 comments

https://www.comeover.io/ is similar I take, but only that it is built on top of webtorrent instead.
well so is this haha, yea functionally its basically the same app right now, but like I said though I do want to expand it a lot, this was very much a POC for me.
Excited to see what you build. Is there a way to subscribe to your product updates?
no but maybe I will add a way to subscribe to a mailing list of some sort, might be a good idea, did not really expect this much reception haha.
OP doesn't embed googlesyndication+googletagmanager, so that's a plus for me.
and I never will, promise!
This is a cool idea. I did give it a spin and found that the fidelity between viewers was not all that true. For example, if I pause the video (as the room creator), the video gets paused for other viewers as expected, but not in the same place. In other words, not all viewers are in sync.
yea so there is a "drift threshold" of 2 seconds, and my thinking for this is that instead of having the frames jump around many times when we go out of sync it would be preferable to allow for some difference between peers to reduce the number of times we need to sync up.
During pause you can use that time to drag the forward people (including host) back to the oldest guest so people can "manually sync" if they ever choose to.
Sounds like a cool idea, wish there was a demo room without uploading a file. Can you talk a little bit about how the video is handled on the server? What steps do you take to keep the file secure and protect the privacy of the users?
the server does not actually ever receive any part of the video, it is peer to peer (webrtc).
and regarding a public room, just uncheck the private boolean when creating a room, it will then show up for everyone at: https://peer-flix.herokuapp.com/.

although public rooms are kinda pointless right now because once you close your browser the room is basically dead and is not being cleaned up atm.

You should keep the public rooms up, but show a viewer counter and duration of how long the room has been alive. That way, if someone comes onto the page, they can see if a room has been actively streaming to an audience, which would be less likely to disconnect, versus a room that someone created on a whim that they don't intend on keeping around
Yea I would like to and maybe I will revisit the idea, but the inappropriate content issue has me concerned, so until I have some kind of solution for that I think its more responsible to disable it.
You'd probably just have to have people create accounts, verify that they aren't bots through email and captcha, then wait for them to achieve a certain amount of cred before allowing them to have a public channel. And include a flagging system, of course. And add moderators. So yeah, not exactly a short list of things!
Very useful. Better than using screen-sharing in MS Teams (which has really choppy fps)
Same in Jitsi Meet. One workaround I found for the video choppiness (at the expense of image quality) is to present the video file as a virtual webcam using OBS Studio.

https://github.com/Fenrirthviti/obs-virtual-cam/releases

Not sure if this is the case on all platforms, but didn't OBS just add virtual camera in the most recent version (instead of via plugin)?

I noticed it the other day after an update, but not sure if it's only on the Windows version.

Maybe, if they did that's great!