5 ms·
I'm a little unclear on how you're supposed to self-host video these days. From what I understand the "obvious" way to do it (uploading a video file and embeddi
by Joeboy 4y ago
I'm a little unclear on how you're supposed to self-host video these days. From what I understand the "obvious" way to do it (uploading a video file and embedding it on a page) doesn't result in a good user experience.
- trasz 4y agoPeerTube perhaps? Also, let's face it, YouTube's user experience isn't great either; people only use it because it's popular and free (as in beer).
- deleted 4y ago[deleted]
- rtsil 4y agoYou can use Vimeo or Wistia. Of course, they aren't free.
- eropple 4y agoSo it's not that hard to do a good job of it, but it is work, and it's work with diminishing returns if you're not comfortable managing the lift. And once you get it working, it might require some experimentation here and there to get exactly what you want out of it. The HLS spec is readily available and ffmpeg can, given a video input, emit an HLS manifest with a set of renditions. (For research purposes, the magic words are probably "ffmpeg hls adaptive streaming". Also, tweaking those renditions is a rabbit hole. Bring lunch.) At that point you've just got video files and text-based manifests that can be uploaded somewhere, and you point a sufficiently smart video player at them. For context, I work at Mux [ https://mux.com https://mux.com ] where SaaS video streaming is our bag; having previously built DIY solutions as mentioned above I think that Mux is probably the right choice for most folks who just want to ship a VOD or a live stream in a usable format--and you pay for it, you're the customer--but the tools are there if you want to take a swing at it.
- jeroenhd 4y agoWhen it comes to recorded lectures, even just HLS is probably overkill in my opinion. All modern browsers support video playback of simple H.264/VP9 files natively anyway. Stuff like HLS only tends to break the browser's native download button.
- eropple 4y agoAs with anything, it depends, right? Like, native video does have strong arguments for simplicity. It doesn't have strong arguments for usability. Do you want to seek? Do you want it to continue to work if a user's phone hits a rough patch of the internet? Nothing stops you from letting somebody download a static rendition too, though. (Not trying to shill too hard for Mux, but that comes out of the box.)
- jonathanstrange 4y agoOut of curiosity, what is the problem with the user experience? I genuinely want to know, since I haven't tested embedding videos for a long time. Is a CDN absolutely needed for streaming content?
- eropple 4y agoSeeking into a large video file is awful and having to buffer the entire thing is a bad user experience unless you're starting at the very beginning. In addition to that, there's a quality-vs.-download-time tradeoff and the right answer to that can vary depending on circumstances. Modern systems use HLS or DASH to enable adaptive streaming. Adaptive streaming chunks up your video into segments of 2-10 seconds and renders it out at different quality levels; a sufficiently smart player can then switch between different renditions on the fly based on system and network performance.
- teddyh 4y ago> Seeking into a large video file is awful and having to buffer the entire thing is a bad user experience It would be, if not for HTTP having "Range" support since HTTP 1.1 in 1999.
- eropple 4y agoHave you ever tried to range into a file with variable-length encoding? It doesn't go so well. This is one of the reasons (a little stale IMO, but historically reasonable) that the received wisdom for podcast formats is to use CBR audio, so as to make the naive seek algorithms used when streaming more reliable. Video's bigger and the human tolerances are smaller. There are very, very smart people working on making video readily consumable over the internet. If "just use HTTP range requests" was a viable answer, I tend to think they'd have done it.
- teddyh 4y agoThen, clearly, what we need is a seek-friendly video encoder.
- throwaway09223 4y agoI'm pretty sure the user experience of what you've described is drastically better than what we have with youtube. What on earth would be the problem?
- treis 4y agoVimeo is the SAAS solution. AWS has primitives that you can cobble together into a solution. Assume Azure, Gcloud and probably others have something similar.
- the_third_wave 4y agoUse something like Peertube [1] to host the video and serve that content in a frame seems to be a feasible alternative. I've hosted a few instances for about 3 years without a hiccup, it mostly 'just works'. [1] https://joinpeertube.org/ https://joinpeertube.org/
- jeroenhd 4y agoI don't get it. What's wrong with a <video> tag and a few <source> tags to aid browsers that don't support the necessary codecs? My experience with the browser native video player blows most alternative players out of the water in terms of convenience and reliability. If you're okay with the privacy implications, you can always set up a Peertube instance to host the content more affordably. Such a system makes it more difficult than necessary to download the video, though.
- Taywee 4y agoI find a simple <video> embed to be a fantastic user experience, even compared to YouTube.
- api 4y agoThere are numerous open source YouTube-like viewer scripts. If bandwidth is an issue put the files on S3 or something and link to them there, but that's probably not an issue for a university. Here's one: https://videojs.com https://videojs.com -- there are lots more. People seem to think these things are hard.
- deleted 4y ago[deleted]