Youtube videos are compressed in a way that makes it really efficient if not much changes. If the video is a person talking in front of a white background, that white background doesn’t change, so the actual data that makes up the information to display the white background doesn’t need to be streamed in constantly for the entire video.
When the video is made up of a bunch of small, differently colored spots (like you would see with trees and other greenery), especially if they are moving around, or the camera is moving around, then you need to load all the information for each spot/pixel in the video each time it changes.
Loading all that information takes more bandwidth, and if your network or computer struggles to keep up, you’ll experience that lag you’re talking about. Youtube will typically drop the video to a lower resolution to make up for this.
[Obligatory Tom Scott video.](https://www.youtube.com/watch?v=r6Rp-uo6HmI)
Basically when YouTube sends the video to you they compress it. Compression involves finding the patterns in the video and then encoding these patterns instead of the raw video itself. When there is a lot of foliage in the video there is not much patterns to this foliage for the compression algorithms to pick up on. It will try as best it can but essentially it will fail.
There are a few tricks you can do to make video easier to stream – different ways of compressing video. One way is to only save changes to the pixels. Turn this pixel green, and then until you get new instructions, it stays that color green. Instead of sending data for that pixel for every frame, you only have to send the data for the new color when it changes.
You can also use data about surrounding pixels. It loses quality, but you can save every other pixel and then average them. If one pixel is this shade of green, and the pixel one over is a slightly different shade of green, then the pixel between them is *probably* a shade of green between the two.
Lots of foliage in a video breaks both of those techniques. There are a *lot* of very subtle but different colors that change a lot with even a little bit of wind or movement. There’s a lot of detail that needs to be preserved, so pixels can’t be averaged and because they change often, you have to send data with every frame. Other methods of compression fail similarly.
The bandwidth from the server is designed for compressed video. When the compression doesn’t work anymore, there isn’t enough bandwidth to keep up with the demand, and the video lags or the quality drops. Tom Scott has an [excellent video](https://www.youtube.com/watch?v=r6Rp-uo6HmI) about bitrate and how different things can negatively impact it.
The cause is not the greenery per se. Rather it is the small rapidly moving details of the leaves.
The reason is how video compression works. Video compression works by noticing how blocks of pixels stay constant or move predictably from frame to frame. If you have a lot of quickly moving details like leaves, confetti, sparks, etc. this detection system breaks down or gets overwhelmed and you either have to reduce the video quality or significantly increase the amount of data being processed per frame.
To add another example of the same effect just watch videos with rippling water.
As others comment, the many small hard to predict movements are hard to compress. Static images or images with small panning movements are easy to predict and as such carry less information than images that change rapidly.
Video compression helps remove irrelevancy from the data stream. So big slabs of one colour, for instance, compress well. But a tree blowing in the wind has lots and lots of detail so … no irrelevancy to remove. This makes it use up more internet bandwidth and, if the link is a bit shaky, causes buffering.
Great question, btw.
Latest Answers