[Very Popular] myPlex: buffer content Youtube-style

@KarlDag said:

@Xen0sys said:
I think the hold up on a feature like this is that it’s dependent on how much memory the front-end device has which more often than not isn’t much. Certainly not enough to warrant above and beyond attention.

There’s syncing (still needs to hit more devices) which allows you to bypass RAM restrictions and just store it locally.

Yeah… But, if Youtube can do it…

Then Plex can’t

@anthonws said:

@KarlDag said:

@Xen0sys said:
I think the hold up on a feature like this is that it’s dependent on how much memory the front-end device has which more often than not isn’t much. Certainly not enough to warrant above and beyond attention.

There’s syncing (still needs to hit more devices) which allows you to bypass RAM restrictions and just store it locally.

Yeah… But, if Youtube can do it…

Then Plex can’t

Please explain? Why would a feature Youtube supports not be possible for Plex? Previous poster was talking about RAM… it’s obviously not a good answer.

He’s actually right. As mentioned before, Plex can’t buffer the video because the stream is being sent using HLS, which can’t be buffered ahead like it can when direct playing. Sorry guys, but this will probably never happen. It’s just not how HLS works.

@KarlDag said:

@anthonws said:

@KarlDag said:

@Xen0sys said:
I think the hold up on a feature like this is that it’s dependent on how much memory the front-end device has which more often than not isn’t much. Certainly not enough to warrant above and beyond attention.

There’s syncing (still needs to hit more devices) which allows you to bypass RAM restrictions and just store it locally.

Yeah… But, if Youtube can do it…

Then Plex can’t

Please explain? Why would a feature Youtube supports not be possible for Plex? Previous poster was talking about RAM… it’s obviously not a good answer.

My answer was clearly a rant, in case you didn’t noticed. My apologies, next time I will add a /i or /r.

@“MovieFan.Plex” , actually from what I researched it’s possible to have custom buffering for both HLS and DASH, although that takes the purpose of actually using an adaptive bitstream protocol. Right?

@KarlDag , ultimately, what you want can be achieved by download or sync. If you want to do a full read ahead buffer of the entire clip, then you would have to choose a fixed bitrate, have the free space to hold that data, etc. Furthermore, with so many different player engines, I’m sure this wouldn’t be something easy to achieve. Unless all of it would be under ffmpeg responsibility.

At least it seems that ExoPlayer can do it: How can I increase the buffersize ? The amount of stream that is fetched ahead of the current location ? · Issue #1010 · google/ExoPlayer · GitHub.

Hth,
anthonws.

@MovieFan.Plex said:
He’s actually right. As mentioned before, Plex can’t buffer the video because the stream is being sent using HLS, which can’t be buffered ahead like it can when direct playing. Sorry guys, but this will probably never happen. It’s just not how HLS works.

At this point I don’t even know why I’m arguing, since nothing will change, but I’ll bite: if HLS can’t achieve it, why not use another protocol, like whatever protocol YouTube uses, to achieve more flexibility?> @anthonws said:

@KarlDag , ultimately, what you want can be achieved by download or sync. If you want to do a full read ahead buffer of the entire clip, then you would have to choose a fixed bitrate, have the free space to hold that data, etc. Furthermore, with so many different player engines, I’m sure this wouldn’t be something easy to achieve. Unless all of it would be under ffmpeg responsibility.

At least it seems that ExoPlayer can do it: How can I increase the buffersize ? The amount of stream that is fetched ahead of the current location ? · Issue #1010 · google/ExoPlayer · GitHub.

Hth,
anthonws.
Yeah, well, we’ve been asking for desktop sync for years, haven’t we? I’d like a bone to be thrown at us once in a while…

@KarlDag said:
At this point I don’t even know why I’m arguing, since nothing will change, but I’ll bite: if HLS can’t achieve it, why not use another protocol, like whatever protocol YouTube uses, to achieve more flexibility?

YouTube does not transcode their videos like Plex does. They have multiple versions of the same file so when the bitrate needs to change, they just change and stream to a different file. So they are always direct playing (using Plex terminology). If you direct play from Plex, you will see that we also buffer the stream.

@MovieFan.Plex said:

@KarlDag said:
At this point I don’t even know why I’m arguing, since nothing will change, but I’ll bite: if HLS can’t achieve it, why not use another protocol, like whatever protocol YouTube uses, to achieve more flexibility?

YouTube does not transcode their videos like Plex does. They have multiple versions of the same file so when the bitrate needs to change, they just change and stream to a different file. So they are always direct playing (using Plex terminology). If you direct play from Plex, you will see that we also buffer the stream.

I see, did not know direct play used a different protocol. I stand corrected. What protocol is it that direct play uses?

Just to clarify. Plex does buffer a limited amount but not like Youtube does.

For example on Youtube you can pause a video and it will completely download while paused so you can technically watch any video regardless of your bandwidth given enough time. You can open multiple browser windows in a web client and allow all tabs to download. Plex does not buffer in the same way as it will stop downloading once it has “enough”.

Real life type example: If you had a 10Mb rate file you wanted to direct play with youtube over an 5Mb connection you could hit pause and have dinner then come back and watch it. Plex, not happening. Can’t take a bathroom or popcorn break to allow it to buffer enough ahead to avoid stopping/starting.

Now with that said some hardware based devices down’t have a big enough buffer to allow this (Plex or Youtube) but on software based devices it could be done just as with Youtube which is what this thread is asking for.

Carlo

@MovieFan.Plex said:

@KarlDag said:
At this point I don’t even know why I’m arguing, since nothing will change, but I’ll bite: if HLS can’t achieve it, why not use another protocol, like whatever protocol YouTube uses, to achieve more flexibility?

YouTube does not transcode their videos like Plex does. They have multiple versions of the same file so when the bitrate needs to change, they just change and stream to a different file. So they are always direct playing (using Plex terminology). ** If you direct play from Plex, you will see that we also buffer the stream.**

Do you though?. If i monitor my network when i start a direct play via plex/web, i see bandwidth usage for maybe 5-10 seconds, then it throttles to zero and starts again a little while after.

It seems some other plex clients do buffer, but some dont. Why not be consistent across all clients?

1 Like

+1 for this.

In writing my own thoughts about how useful Buffer control would be, I ended up engineering an entirely new feature: SmartSync

Please take a read and “Like” the post if you agree with me that controlling caching and buffering would be the best.

Also, like this feature thread so that Plex team sees we really want buffer control. :slight_smile:

@MovieFan.Plex said:

@KarlDag said:
At this point I don’t even know why I’m arguing, since nothing will change, but I’ll bite: if HLS can’t achieve it, why not use another protocol, like whatever protocol YouTube uses, to achieve more flexibility?

YouTube does not transcode their videos like Plex does. They have multiple versions of the same file so when the bitrate needs to change, they just change and stream to a different file. So they are always direct playing (using Plex terminology). If you direct play from Plex, you will see that we also buffer the stream.

In theory, could we not as a user:

  1. Select a video file
  2. Select Optimize
  3. Have a selection that says “Optimize for Adaptive Bitrate”
  4. Then the user is allowed to chose from the options already there, plus a “select all”.
  5. Watch a movie, it automatically switches between Mobile, TV, Original, and Custom optimized versions.

The user would be responsible for how much storage they are taking up and making sure they “optimize” videos they want to watch. Then at least it would be on the user to be proactive, rather than being unable to do anything and blaming Plex for the limitations in the streaming protocol.

No.

Adaptive Bitrate means the bitrate is adjusted as the file plays. It can change up or down as needed as well as change resolutions as needed.

Yes, in theory that could be done since that is what Youtube does. That is not the approach Plex has taken with the adaptive bitrate feature. That may be something that could be done in the future, but for this feature we wanted something users could take advantage of right away without the need to grow their storage or spend days/weeks/months optimizing their files.

an buffer for Direct Play wood be nice too…

1 Like

+1 like to give +1000
I cannot watch any movie during lunch time without stuttering, even with 20 MBIT Upload…
Cloud Sync to google does also not work at the moment.
While using Plex Cloud from Google server I also have stuttering… Even with 4MBit 720p setting.

I´d like to start the movie at 11:30 in my browser and watch at 12:00 the movie with a filled buffer.

Nothing but buffers here.

Oddly, I can play things just fine on my iPhone. But web, tv, etc all buffer every few seconds for like 10 seconds. But iPhone? no problem. I say there is definitely something wrong with the clients that they’re not buffering properly.

I have 1Gbps FiOS on both ends.

Better buffering is a great idea. I have friends who sometimes ask why their movie or show is stuttering or very low quality.

So… it’s been SIX YEARS and still no buffering? Seriously?

I get annoying stuttering and pauses even when listening to music with Plex (video is exponentially worse) and that’s over a distance of only about 5 miles using ethernet on both ends.

On desktop, at least, how about an option to use VLC as the player? It’s open source, and can buffer gigabytes of data if you want it to. It would also solve myriad other deficiencies and missing features in the Plex player, such as the inability to change the aspect ratio (for videos that have incorrect or no AR metadata).

This type of buffering would only apply to computers and not to devices which makes it’s use limited. You can’t buffer an amount larger than the fixed size available on devices so…

In some Plex clients the buffer size can be adjusted.

In other clients like mobile and web plex has gone a different direction to help with these types of issues and gave us ABR (adjustable bitrate).

So it’s highly unlikely we will ever see this type of functionality. On mobile clients we have the ability to sync files which in some ways is better since it allows the download and playback. Unfortunately there is not this ability in a web browser. Closest you can come if you’re the admin is to download the file.