We got a report from one of the FV Player users that playing a video on his Android phone for 15 minutes causes it to really get hot. He didn’t run into such issue when watching a long video on YouTube or a movie on Netflix.
Mistakes do happen, but we really felt ashamed to let this one through. But we quickly discovered it’s a core Flowplayer issue. FV Player is built on top of the amazing Flowplayer technology which gives us a lot of benefits, but occasionally it causes issues too. So it was clear we got to fix this and submit our fix back to Flowplayer like we always do.
In Flowplayer 7 the loading animation consists of 4 animated SVG graphics which are appended to the HTML as the player initializes. As you click the player these animations become visible thanks to CSS. So the animations are happening in background even if they are not needed at all, even before you click to play any video.
The issue is less visible on a desktop computer. You need something like 40 instances of FV Player to really notice this. You can see if when you record a performance profile in Google Chrome. Here’s the performance of a test page with 40 players:
Chrome Performance profiling for 40 FV Players. The top graph gray area extending past 6000 ms is a problem.
Removing these graphics reduced the CPU usage of an idle Flowplayer on my phone almost down to zero. So indeed – hidden animated SVG loads the CPU a lot. I was noticing this issue in both Chrome and Safari.
So we submitted a fix to Flowplayer (and already included it in FV Player 7.2.8.727 ) which removes these SVGs on player initialization and puts them back on load. Then removes them again on unload. It could be even better, we would prefer to put them in only when the player is in loading state or seeking via some event hook, but that can’t be reliably determined as sometimes only the CSS class is-loading or is-seeking is added.
Or even better – just use a CSS animation like Flowplayer 6 did. But then it would have to match the different Flowplayer 7 skins in (sharp outline, round outline, etc.).
However that’s not all – Flowplayer also keeps checking the player size using the requestAnimationFrame() call. Perhaps it’s the recommended way of doing such things these days, but the fact is that it causes some small pieces of JavaScript to execute even if the web page is completely idle with no video playing. So in FV Player we avoided this and use window resize event instead.
After our fix the CPU is idle after all 40 FV Players are initialized. The top graph is much cleaner now
Martin graduated as an engineer in Computer Science from Slovak Technical University in Bratislava. He grew up in Liptovský Mikuláš in northern Slovakia next to the beautiful Tatra mountains. He is the developer behind our FV Player.
This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.
Necessary Cookies
Strictly Necessary Cookie allow you to log in and download your software or post to forums.
We use the WordPress login cookie and the session cookie.
If you disable this cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again.
Support Cookies
Foliovision.com uses self-hosted Rocket.chat and self-hosted Freescout support desk to provide support for FV Player users. These cookies allow our visitors to chat with us and/or submit support tickets.
We are delighted to recommend self-hosted Rocket.chat and especially Freescout to other privacy-conscious independent publishers who would prefer to self-host support.
Please enable Strictly Necessary Cookies first so that we can save your preferences!
3rd Party Cookies
This website uses Google Analytics and Statcounter to collect anonymous information such as the number of visitors to the site, and the most popular pages.
Keeping this cookie enabled helps us to improve our website.
We reluctantly use Google Analytics as it helps us to test FV Player against popular Google Analytics features. Feel free to turn off these cookies if they make you feel uncomfortable.
Statcounter is an independent Irish stats service which we have been using since the beginning of recorded time, sixteen years ago.
Please enable Strictly Necessary Cookies first so that we can save your preferences!
Leave a Reply