I used to stream movies from my desktop over the local network with VLC and the main issue I faced was that I could never get the subtitles to work. I took a quick look at this repository and it doesn't look like they support subtitles either.
Thanks, that would be great!
I am trying to think how this could work. Generally, subtitles are embedded as a separate track in the video container or as a sidecar .srt file [1].
Perhaps they can be converted and shown using the WebVTT API[2] or <track> tags [3]?
Edit: Maybe that wouldn't work, here's a relevant stackoverflow post [4]
Reminds me how people on 4chan/g/ back in the day (mid to late 2000s I think?) would start threads where one user put up a livestream of a movie on some IP address, and the participants would connect and watch it together (using mplayer or VLC) while doing live commentary in the thread itself. Good times. I think I first watched Hackers like that.
> Only the current audio/video frame is being sent to the viewers, there is no way they can download/cache the videos either for future usage.
This seems misleading, though. I think I get what was meant: clients can't send a request to download from the start or a specific offset and thus "download" the original file, the server is in charge of what's being sent. However, clients can still capture the frames, save them, and replay them, obviously. And I see a button to "Seek", so...
The 'Seek' is done server side. So if you go to `n` seconds it is done server side and done for everyone.
I should reword the README though. If someone is savy enough they could totally grab the video. For most users it is like a Google Meet though. If you click `Show Controls` you can pause the video that is it.
With things like Insertable Streams[0] you can totally grab the video.
Cool. What are the hardware requirements? I use https://github.com/calzoneman/sync with mp4 files served by nginx and it works great for 15-20 people watching on a cheap 0.5GB ram 1 vcpu vps.
You run one encoder for all the viewers. CPU usage won't scale up from 1 -> 15 viewers.
I could get it lower by encoding once and then syncing to keyframes. It would make the code more complicated though. If someone asks for it/gets excited would love to do it though :)
I'm working on a way to play DVDs in the browser, and I'm ultimately going to need a similar setup: server handles all seeking/pausing/state, browser just renders the video (and sends all the requisite commands)
I wanted to try to do some kind of simple network block device to give access to the whole DVD to VLC WASM but the pre built VLC WASM binaries don't have dvdnav support and i can't get the builds to succeed on my own
Perhaps they can be converted and shown using the WebVTT API[2] or <track> tags [3]?
Edit: Maybe that wouldn't work, here's a relevant stackoverflow post [4]
[1] https://en.wikipedia.org/wiki/SubRip
[2] https://developer.mozilla.org/en-US/docs/Web/API/WebVTT_API
[3] https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...
[4] https://stackoverflow.com/questions/61446205/webrtc-and-text...
The 'co-watching/co-streaming' is the best. I love watching a crappy horror movie with friends and bantering.
> Only the current audio/video frame is being sent to the viewers, there is no way they can download/cache the videos either for future usage.
This seems misleading, though. I think I get what was meant: clients can't send a request to download from the start or a specific offset and thus "download" the original file, the server is in charge of what's being sent. However, clients can still capture the frames, save them, and replay them, obviously. And I see a button to "Seek", so...
I should reword the README though. If someone is savy enough they could totally grab the video. For most users it is like a Google Meet though. If you click `Show Controls` you can pause the video that is it.
With things like Insertable Streams[0] you can totally grab the video.
[0] https://developer.mozilla.org/en-US/docs/Web/API/Insertable_...
And generally, you don't need any buffering mechanisms for the clients?
Nice project!
In this project I don't set anything though.
[0] https://webrtc.googlesource.com/src/+/refs/heads/main/docs/n...
I could get it lower by encoding once and then syncing to keyframes. It would make the code more complicated though. If someone asks for it/gets excited would love to do it though :)
I wanted to try to do some kind of simple network block device to give access to the whole DVD to VLC WASM but the pre built VLC WASM binaries don't have dvdnav support and i can't get the builds to succeed on my own