Live data from Hacker News

How Modern Video Players Work

blog.streamroot.io

1–10 of 16 posts

Re: How Modern Video Players Work

#3
Oh. Well that's disappointing. I was hoping this would be about a modern video/audio decode, synchronize, and display pipeline... not that knowing how video streamed on the web isn't interesting, but it's really about how modern video streaming works.

Re: How Modern Video Players Work

#4
post #3

Oh. Well that's disappointing. I was hoping this would be about a modern video/audio decode, synchronize, and display pipeline... not that knowing how video streamed on the web isn't interesting, but it's really about how modern video streaming works.

Not that its particularly casually browsable but there are some details in the programmer reference manuals for the Intel integrated graphics encode/decode hardware. If you head to volume 8 the MFx introduction section has some sample flows before it starts getting into command packet details: https://01.org/sites/default/files/documentation/intel-gfx-p...

Re: How Modern Video Players Work

#5
All this fancy software and yet watching videos on the web is just as painful as it was 15 years ago if you don't have a fast enough connection. The download won't keep up with the play speed and they don't accommodate that nearly as well as they could. In the early 2000's with dial-up, you could just press pause then come back a few minutes later to watch what had been buffered. Nowadays that trick often doesn't work - pause also pauses the download. Not only that but the play/pause button sometimes doesn't work at all! If the playback is stopped because it's waiting to download more, the pause button usually does nothing - so you have to rewind to a previously buffered part (if you're lucky enough and it kept the buffer) then let it play, then press pause.

Re: How Modern Video Players Work

#6
post #5

All this fancy software and yet watching videos on the web is just as painful as it was 15 years ago if you don't have a fast enough connection. The download won't keep up with the play speed and they don't accommodate that nearly as well as they could. In the early 2000's with dial-up, you could just press pause then come back a few minutes later to watch what had been buffered. Nowadays that trick often doesn't wor…

This!

Related gripe: WTH is there no full-track buffering mode for any web players (looking at You, Tube!) and apps like Pandora or Spotify, for low- or sparse- bandwidth travel?!

I don't care if you limit it geographically or only make it work with bandwidth throttling or whatever...

...just make it work.

Then your apps would work and I would not be cursing and throwing my phone out the window every road trip.

This is costing me a fortune in phones.

Re: How Modern Video Players Work

#7
post #5

All this fancy software and yet watching videos on the web is just as painful as it was 15 years ago if you don't have a fast enough connection. The download won't keep up with the play speed and they don't accommodate that nearly as well as they could. In the early 2000's with dial-up, you could just press pause then come back a few minutes later to watch what had been buffered. Nowadays that trick often doesn't wor…

This! Related gripe: WTH is there no full-track buffering mode for any web players (looking at You, Tube!) and apps like Pandora or Spotify, for low- or sparse- bandwidth travel?! I don't care if you limit it geographically or only make it work with bandwidth throttling or whatever... ...just make it work. Then your apps would work and I would not be cursing and throwing my phone out the window every road trip. This…

The other side of the equation involves at least:

1) Video provider pays for bytes sent to the user that are not used. If the cache policy is "cache the whole thing", you would find yourself paying (a guestimate) 2x for bandwidth. This is because most people do not watch even nearly the entirety of every video that they start loading.

2) Using server bandwidth for bytes that are not used. This increases contention for bandwidth at the origin. Perhaps less of an issue if your site is small and you're using a giant CDN. This does become an issue if you are youtube or you are serving the bytes yourself.

3) Using client bandwidth for bytes that are not used. This slows down any other download that might be happening on the client computer, even when the video is paused. This could be, a different video in a different tab that the user is trying to watch, other assets on the page, other pages, or even other programs on the computer.

Of course adding an option for the user to cache the whole thing wouldn't be so bad, as opposed to having this behavior by default for everyone.

Re: How Modern Video Players Work

#8
post #7

Earlier quoted context omitted.

This! Related gripe: WTH is there no full-track buffering mode for any web players (looking at You, Tube!) and apps like Pandora or Spotify, for low- or sparse- bandwidth travel?! I don't care if you limit it geographically or only make it work with bandwidth throttling or whatever... ...just make it work. Then your apps would work and I would not be cursing and throwing my phone out the window every road trip. This…

The other side of the equation involves at least: 1) Video provider pays for bytes sent to the user that are not used. If the cache policy is "cache the whole thing", you would find yourself paying (a guestimate) 2x for bandwidth. This is because most people do not watch even nearly the entirety of every video that they start loading. 2) Using server bandwidth for bytes that are not used. This increases contention fo…

Very true, bandwidth is very expensive today. Some comments to your post:

- Actually, and quite surprisingly, the "cache everything" mode only adds around 25% of used bandwidth in practice. But even 25% is already a big difference if you pay 10 or 50K of CDN bills per month.

- Indeed useless bytes download can create overall congestion brings harm to the network in general, and should be avoided. It's especially true for websites that don't have the money to pay big CDNs and stream with dedicated server with limited capacity.

Re: How Modern Video Players Work

#9
post #3

Oh. Well that's disappointing. I was hoping this would be about a modern video/audio decode, synchronize, and display pipeline... not that knowing how video streamed on the web isn't interesting, but it's really about how modern video streaming works.

It talks about modern streaming indeed, but if you take a closer look, most of the video consumption today is done by streaming: on Desktop you still have a small portions of download then watch, but on mobile, Set Top Boxes like AppleTV and Roku, connected TVs, etc. You watch everything from the web.

Besides, the decoding/sync/rendering part didn't really change in the last 10 years, the innovations mostly arrived from the Web streaming use cases, with adaptive bitrate formats, that partly solved the multi-devices streaming problem we started to have with the rise of Mobile and OTT (over-the-top) video streaming.

Re: How Modern Video Players Work

#10
post #5

All this fancy software and yet watching videos on the web is just as painful as it was 15 years ago if you don't have a fast enough connection. The download won't keep up with the play speed and they don't accommodate that nearly as well as they could. In the early 2000's with dial-up, you could just press pause then come back a few minutes later to watch what had been buffered. Nowadays that trick often doesn't wor…

This! Related gripe: WTH is there no full-track buffering mode for any web players (looking at You, Tube!) and apps like Pandora or Spotify, for low- or sparse- bandwidth travel?! I don't care if you limit it geographically or only make it work with bandwidth throttling or whatever... ...just make it work. Then your apps would work and I would not be cursing and throwing my phone out the window every road trip. This…

most people probably don't have the patience anymore to just pause and wait 30 minutes until the download is finished.

And most of the new modern video players support adaptive bitrate streaming, that adapts the quality to your network conditions. Of course if you want to stream 4K video on 2G, you won't be able to do it today, but in that case it's probably easier to download the mp4 file directly

Post reply on HN