3 ms·
Does anyone know of a good presentation system that does not consist of compressing raw pixels and sending that to the audience? It's a huge waste of bandwidth
by wtallis 6y ago
Does anyone know of a good presentation system that does not consist of compressing raw pixels and sending that to the audience? It's a huge waste of bandwidth that I'd rather see used to provide reliable low-latency audio.
I'd love to be able to teach programming in a way that lets the students explore the live state of my working directory and follow along with file edits, but rendered locally on their machines at native resolution and with at least some degree of interactivity. Most collaborative editors I'm aware of are ill-suited for code, or don't seem to work well for more than one file at a time. Ideally, I'd like students to be able to open a read-only view of my entire IDE workspace, but exporting it over a network filesystem isn't quite live enough even with a short auto-save interval.
- tedyoung 6y agoBesides VSCode's LiveShare that was already mentioned, there are several tools that allow folks to collaboratively edit code: Floobits[1] and CodeTogether[2] are a couple that I've used successfully (I'm an IntelliJ IDEA fan, so like to stay in my IDE). [1] https://floobits.com/ https://floobits.com/ [2] https://www.codetogether.com/ https://www.codetogether.com/
- rustyconover 6y agoI think you'd be surprised how efficient video codecs with regards to bandwidth used, nobody sends raw pixels at all. Also with HLS latency can be very short with the right settings. A few tips for coding screencasting: For coding screencasts you should make sure that chroma subsampling isn't enabled when you're doing the encode of the video otherwise it may look worse with highly contrasting areas. Decrease the encoding frame rate if its primarily going to be just a screencast without a lot of motion on the screen. At the expense longer mpeg segments (and more latency) you may want to increase the group-of-picture size. There shouldn't be a reason that the encoded screencast looks worse then how it appeared to you unless the encoder you are using is just mashing the quality down.
- formerly_proven 6y ago> For coding screencasts you should make sure that chroma subsampling isn't enabled when you're doing the encode of the video otherwise it may look worse with highly contrasting areas. What platforms support 4:4:4 video? Youtube, Twitch, Vimeo, ... all don't.
- rustyconover 6y agoI'd just build my own HLS setup with Cloudfront and one of those encoders with MediaLive.
- wtallis 6y ago> I think you'd be surprised how efficient video codecs with regards to bandwidth used, nobody sends raw pixels at all. Also with HLS latency can be very short with the right settings. We've all had enough experience with Zoom, Google Meet, Skype for Business, etc. in recent months to know that this is not something that works well out of the box. And that's before we get into issues like the fact that I'm using a 34" ultrawide monitor, and most streaming systems will have to downscale my desktop before encoding it, and the result won't look at all good for a viewer trying to watch on a 1080p laptop.
- Shorel 6y agoThese systems are not OBS. You can pan and zoom as required to match your stream resolution, and it doesn't need to be the same as your desktop resolution.
- zaxu 6y agoAt the same time, moving video coming from a camera is a lot different than a stream of what is essentially a 95% a still image.
- wtallis 6y agoI was referring primarily to the screen sharing features of the aforementioned services. In general, they're barely adequate for slideshow presentations, but the transitions are still going to be rough. And even when everybody in the virtual conference has a solid internet connection, the user experience is still a lot worse than when a PDF of the slides is emailed out before the meeting starts. I find it simply amazing that all these "collaboration" tools aspire to little more than emulating the use-cases of broadcast television or a large lecture hall, and there a so few tools that try to enhance the experience in ways that are only possible when every participant has their own screen and computer.
- formerly_proven 6y agoTheir badness is unrelated to the abilities of e.g. x264 compressing a screencast, because it really is quite good at that (near-losless quality at about one Megabit/s).
- nfrmatk 6y agoI think that you can do something like this with VS Code's Live Share[1] feature. And I think it's possible to do read-only sessions as well. Been a while since I looked at that feature though, so I'm not certain. [1]: https://docs.microsoft.com/en-us/visualstudio/liveshare/use/vscode https://docs.microsoft.com/en-us/visualstudio/liveshare/use/...
- wtallis 6y agoThat seems to be pretty much what I was looking for. Thanks!
- mprev 6y agoWhat you’re looking for sounds like Skypix, an Amiga based system for creating BBS UIs. But, honestly, if your intention is to reach an audience rather than simply to geek out over an elegant technical solution (no harm in that!), then just go with streaming. It’s not your bandwidth, after all, if you’re using Twitch et al. I guess, though, that streaming has the problem of not letting you copy the code, not being meaningfully interactive, etc.
- wtallis 6y ago> if your intention is to reach an audience rather than simply to geek out over an elegant technical solution I'm not looking for a broadcasting solution along the lines of Twitch, so much as a solution to use with a specific audience of maybe a dozen students, that I want to be able to interact with to some degree.
- iudqnolq 6y agoScrimba pretty effectively (at least in terms of tech implementation) does this for frontend programming. I think the actual course content is relatively middling. https://scrimba.com/ https://scrimba.com/