Copy link to clipboard
Copied
Using macbook pro 2008 el Capitan Chrome and Safari
Watching videos online using Flash uses upwards of 100% of CPU according to Activity Monitor. Makes fans come on full and drowns out the audio.
Is there any way to stop it happening? Have tried re-installing flash, chrome, safari and also deleting all caches. No difference
I know it's an old machine but it handles indesign and photoshop perfectly so I'm surprised it can't handle videos.
Copy link to clipboard
Copied
today videos on the web are not only managed by Flash, but also html5.
So first of all, right click on the video you are watching and tell if you can see "about Adobe Flash..." or something else
Copy link to clipboard
Copied
First things first, Flash Player isn't a video player. Flash Player is a language runtime, much like Java.
You can *write* a video player, in ActionScript, which Flash Player will then execute on your computer. Moreover, Flash Player pre-dates all of the modern video codecs and the widespread availability of hardware video acceleration. This means that there's an old-school CPU-only way to publish video, and more modern H.264 video support, which allows us to leverage the dedicated hardware video decoder on your computer.
We publish documentation and guidelines for content providers on how to write a video player that leverages the dedicated graphics hardware on your computer for efficiently decoding and rendering video streams.
In the instance you're describing, we're clearly not leveraging hardware acceleration. This means that the video is being decoded on the general-purpose CPU, which is less power-efficient, and consumes resources that might otherwise be used by other processes on the system.
It's also possible to do super inefficient things, like streaming video from a source that's a different size than what you're showing on the screen. When you do that, your computer has to then scale the video to fit the new size, which requires additional operations for every pixel of the video, on every frame. We discourage developers from doing that for obvious reasons, and we even provide server-side solutions to make it easy to target multiple output sizes and devices.
So, it's one of those things where we provide good documentation to developers, but if you don't read it, it's pretty easy to shoot yourself in the foot.
Since you're on Mac, it's probably one of the following things:
As an aside, if the video is encrypted (i.e. it's a DRM-controlled video), like streaming movies or cable shows, then your computer has to decrypt each video frame, which adds a significant amount of overhead (but shouldn't necessarily peg your CPU to 100%).
My guess is that the content provider isn't leveraging the available APIs for hardware accelerated video, and/or they're doing something grossly inefficient (like scaling).
In that vein, silicon codec implementations are picky, and you can't just throw "video" at it. The hardware codec implementations have very specific guidelines about what they will and won't decode, and there are literally millions of possible encoding combinations, even with just H.264 video.
The set of recommended encoding combinations is much, much smaller, and those are all well-documented in our video publishing guides. If the content provider isn't publishing the video in an encoding that allows us to use hardware acceleration, we're going to fall back to our software codec.
There are also a lot of legacy video formats besides H.264 that we're able to play, but require decoding in software. As you've probably guessed, this means that there's CPU overhead; however, those encoding formats tend to be older, and existed in the early 2000s when computers were way slower.
Long story short, this is probably something the content provider could significantly optimize with a little effort (or outsourcing to one of the many video streaming services that cater to this niche). There's not really much that you personally can do. It's not something that you're going to fix at the client. You can also probably find that plenty of video content *does* leverage hardware acceleration, although Flash video on large commercial sites has already largely transitioned to HTML5 video.
You can tell if a video that you're watching is actually Flash Player by right-clicking on it. If it says About Flash Player at the bottom, it's Flash. If not, it's probably the browser.
It's also possible that actually powering the computer down (not just doing a quick reboot), letting it sit for a few seconds to fully discharge, and powering it back on might actually help. A lot of Macbooks swap between a high-end GPU and a low-power, less-capable GPU for maximal battery life. Sometimes the switching back and forth ends up with things in a freaked out state. Rebooting would eliminate that possibility, and is a pretty easy experiment.
Sorry that there isn't a magic bullet here. Video is complicated.
Copy link to clipboard
Copied
Yes, and I never understood why Adobe just kept the name Flash Player rather than Flash Runtime Environment which would give much more respect and less confusion from the user lambda....
Copy link to clipboard
Copied
Flash started out as Smart Sketch, and then evolved into a plugin that played simple vector-based web animations. Flash Player didn't originally have a scripting engine, and was very much just a "player". By the time that Flash got AS1, the branding was already well established.
Personally, I don't think that the majority of people outside of software engineering circles understand the difference between a "player" and a "language runtime". In general, I think it's a helpful simplification. It doesn't really matter until you need to understand what's going on under the hood.
Copy link to clipboard
Copied
Agree, I just reported the 90% of talks with everyday internet users since the last 20 years
who ignorantly mixed a movie player with Flash player as Flash was the most famous (and still is for my taste) and useful environment to develop a movie player on the web