FlashVideoReplacer - Use Native Video Playback Facilities On Sites Like Youtube

FlashVideoReplacer is a Firefox add-on that strips out the Flash video on sites such as YouTube, automatically replacing it with a standard video file that is re-embedded on the page. In a nutshell, this means that a native player is used instead of the embedded Flash player. This can offer a huge performance benefit for web-based video playback, particularly full-screen playback.

Flash video performance on Linux is quite poor compared with that of Windows. Even if the playback is acceptable for a given situation, it tends to be inconsistent, often slowing down periodically. Full-screen video playback is particularly poor, often becoming unacceptably choppy. This high CPU usage also slows down the rest of the system.

There is a solution, although it has some limitations, in the form of a Firefox add-on called FlashVideoReplacer. This add-on dynamically changes the website sourcecode in order to replace the Flash video with a format that can be played using a native video playback plugin. This means that sites should look much the same but the videos themselves playback smoothly and consistently while using very little CPU. Best of all, it makes high quality, full-screen playback viable on Linux.

The main limitation of the add-on is that it currently only supports three sites, YouTube, Blip.tv, Vimeo. Fortunately, these are three of the most popular sites and FlashVideoReplacer wont interfere with video playback on sites on which you are already using standard flash playback.

Another problem is that seeking doesn’t work on material that hasn’t yet entered the cache. This means that you sometimes have to wait a while before seeking forward, although, once the whole video has loaded things begin to work as expected.

The familiar YouTube display, yet not so familiar?

Installation

I installed the add-on from the Mozilla Firefox website in the usual way. Following the advice on the add-on page, I installed the MPlayer-based Gecko Media Player using the Ubuntu package manager. Upon restarting Firefox, YouTube videos weren't replaced as expected due to a conflict with the FlashBlock extension that I had installed. Not to worry though, I simply added YouTube to the whitelist inside the FlashBlock preferences. Following this, I reloaded the page, and sure enough, the YouTube video popped up inside an embedded, but native, video player. Right-clicking on the playback window allows the user to access the preferences for the video player itself, giving a lot of options for video and audio quality.

Video playback was excellent, and switching to full-screen playback resulted in almost no increase in CPU usage. One difference between this player and the Flash player is that it requires a somewhat longer run up in terms of caching video. I remedied this by lowering the default cache size inside the video player preferences, and I found that lowering it from 2000k to 500k provided the best balance. When playing videos, FlashVideoReplacer can automatically select the highest quality stream if there is a selection, and this is configurable in the preferences. There is also a option to automatically pause the video player until the user starts it.

Conclusion

I'm impressed with this add-on, even though it has room for improvement, as decent web-based video playback has long been near the top of my list of wished-for Linux improvements. The main shortcoming is, of course, that it only works on three video sites. According to the author of the plugin support for a greater range of sites is possible. I'm hoping that this won't be too difficult for him to add, as I presume that the method that he is using is comparable to the method that video downloader plug-ins use, and some of those work on almost any video site.

I’m also hoping that some sort of solution can be reached for seeking forward in videos without waiting for the whole video to load.

Hopefully, these limitations will be addressed if the author is properly supported via useful feedback, encouragement and paypal donations. I certainly hope so as it's already a fantastic add-on.

[update: see comments for remarks from the author of the add-on about how it works.]

The FlashVideoReplacer add-on page.
The author’s website.
FLASH-AID - another video related plugin by the same author.

______________________

UK based freelance writer Michael Reed writes about technology, retro computing, geek culture and gender politics.

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Wait.. Windows?

closedbsd's picture

This should be made available in Windows too. Adobloat Flash Player forces common PC users to waste gigawatts of electricity gloabally. It consumes more than twice as much of CPU resources to play a video than a native player, e.g. mplayer.

Plugin problem or problem with your distro?

Happy Gentoo User's picture

I have a couple comments about Flash on linux and the need for it's replacement. First, I dislike Flash-using sites as much as the next person. Adobe's neglect of the 64 bit Linux community for the entire 10.1 release was enough to irritate anyone. Besides, I'd much rather use *anything* opensource that works than a closed source binary, period.

Now on to needing to "replace" Flash. Is the average Linux user's Flash experience that bad? I personally do not have any of the above-mentioned problems with Flash sites. I get no more lag starting Youtube videos on Linux than I get with Windows; and, even in fullscreen, I don't see problems. I am using 64-bit 10.2.x Flash on Gentoo. In short, the only time I've ever seen plugin problems is while I was helping *buntu users or trying to use other distro's package mangers to get flash to even install.

Overall the lag and choppiness I see with *buntu was no different that the horrible KDE-4 performance I saw on kubuntu as well ... even when using openbox as a backend. The exact same system runs KDE-4 on gentoo with zero problems with the native kwin backend. Perhaps the issue is as much to blame on poorly configured kernels, least-common-denominator-built distro binaries, or general distro bloat (aka too much behind the scenes auto-magic cruft) as it is with the Flash plugin itself.

I am not attempting to fuel a distro flame war, I think perhaps it may be time to seriously consider that distros are not all equal, particularly when it comes to performance.

No problems with Flash here

iconoclast's picture

No problems with Flash here on a system based on "Linux from Scratch".

I agree with the happy Gentoo user, Ubuntu shouldn't be taken as the standard GNU/Linux performance (no "Distribution" should, but Ubuntu would be around the bottom of a hypothetical list, in my opinion).

F1

David Riley's picture

I laughed so hard when I saw the picture of the F1 game, because I used the play the super nintendo version of that game every day when I was around 8 or 9 years old. Thanks for bringing back the good memories!

PS
I believe that game was called something like Nigel Mansel's World Championship or something.

Developer reponse

lovinglinux's picture

Hi,

First of all, nice to see "FlashVideoReplacer" being featured here. Thanks a lot.

Indeed is "FlashVideoReplacer", not "FlashVideoReplacement". But as long as it works, who cares right? Besides, my English is not so good and I guess the name choices for my extensions is not something I should be proud of :)

Anyways, let me clarify some points from previous comments.

The extension get the videos from the original sites and replace the embedded flash object with x-mplayer or quicktime. Doing that is not so simple (at least for my programming skills), because I need to fetch the links using different authentication methods for each site, remove the correct element on the page by ID and append the new object. So although I would like to support all popular video sites, doing that is very time consuming and not always work due to DRM constrains. Additionally, once the site changes its code, I need to update the extension, otherwise it stops working. Nevertheless, I'm thinking about trying to implement a framework that would allow the user to create it's own rules for his favorite sites. This will take extra time, but would make more sense than implementing supports for the sites myself, as long as the framework is easy to use.

About the cache, sometimes depending on the plugin used you can simply pause the buffering and click play to see the video right away, if it is not showing.

About the quality of the video, depends on the source. YouTube has several different video quality formats, but not all are available to all videos. To simplify usage, I have coded the extension in a way that it will try the best quality among the chosen range in the preferences (High, Medium and Low). If it can't find a suitable source within the selected quality range, it will fallback to a low quality video. If the only available source is flv, then the result won't be as good as expected. Nevertheless, videos with HD sources should have excellent quality and will play in fullscreen without eating CPU cycles.

If you want to report a bug or is experiencing issues, please create a bug report at http://github.com/lovinglinux/flvideoreplacer/issues

Cheers

lovinglinux
FlashVideoReplacer developer

Oops

Michael Reed's picture

Sorry about that. Mistake corrected.

Thanks a lot for the great add-on and for commenting on the site. Here's hoping that you can continue to improve the add-on, as it has the potential to be quite a significant improvement for general web use on Linux.

Keep up the good work!

UK based freelance writer Michael Reed writes about technology, retro computing, geek culture and gender politics.

Thank you again.

lovinglinux's picture

Thank you again.

Arch has...

André's picture

"Arch" has an ingenious solution, check here https://bbs.archlinux.org/viewtopic.php?id=103432

Hey, I has that game

OtakuN3rd's picture

Formula One, never thought it have a youtube video...

re: Netflix Streaming

tracker1's picture

@SmokyJoe, unfortunately netflix is using (for the in-browser playback) either a windows media plugin, or the VC-1 streaming + DRM (via Silverlight). The DRM isn't part of the media codecs that MS is allowing Moonlight to use, so there's effectively no Netflix outside of what MS supports in Silverlight with DRM (windows and OSX). If MS would include the DRM portions of VC-1 for use with Moonlight, such a thing would be possible. Other non-windows playback devices (Roku, some TVs etc) seem to use a different API for playback of a supported video stream. It really is a shame here.

--
Michael J. Ryan - http://tracker1.info/

FlashVideoReplacement or FlashVideoReplacer?

TheWall's picture

Just a quibble, but I think it's actually called "FlashVideoReplacer" rather than "FlashVideoReplacement" ;) In any case, thanks for pointing me to this add-on!

"Flash video peformance on

Anonymous's picture

"Flash video peformance on linux is quite poor compared with that of Windows."

What version of Windows are you talking about? This statement is completely wrong.

I disagree

Michael Reed's picture

The high CPU usage of Flash video, particularly for full-screen video is a widely reported problem. For most users, full-screen playback is almost unusable.

Do you have a machine and a Linux setup that can match a similarly specified Windows machine?

UK based freelance writer Michael Reed writes about technology, retro computing, geek culture and gender politics.

Well there is one issue with

Anonymous's picture

Well there is one issue with Linux and hulu.com. To watch a video in fullscreen mode, you have to click on the 'pop-out player' icon on the website in order to get a smooth fullscreen experience. Youtube and whatever else however runs perfectly fine. My very recent understanding of Windows however is that it is not very good when it comes to anything to do with the internet (except maybe video games).

I don't get it

Jerry McBride's picture

I don't get it completely...

If this plugin modifies the youtube page code so as tro strip out the flash video, substituting either Quikctime or WMV video streams... Where do the new streams come from?

Also, the linux verision of the flash player is... a native app. Maybe not perfect, but a linux application none the less.

---- Jerry McBride

Youtube uses Flash as a

metalx2000's picture

Youtube uses Flash as a player for the videos. The videos are stored as FLV, 3GP, and MP4 formats on the youtube server. The plugin just streams these file to new media player.

If you watch a Youtube video and then go to your /tmp folder you will see the video file there.

http://filmsbykris.com/
Everything you ever need to know about Open-Source Software.

Thanks, but that I already

Jerry McBride's picture

Thanks, but that I already knew.

It still doesn't answer my original question... If this plugin modifies the webpage source code and mysteriously streams either quicktime or WMV... where the heck do those two streams come from?

---- Jerry McBride

I'm not sure I understand

Anonymous's picture

I'm not sure I understand your question, what streams are you talking about? The way I understand this is, all this add-on does is, it replaces the Flash Player window on the page with a native player from the Linux machine that it is running on. I believe the output is piped to a different player. Please correct me if I'm wrong.

Oh, I see. I misunderstood.

metalx2000's picture

Oh, I see. I misunderstood. I have no clue.

http://filmsbykris.com/
Everything you ever need to know about Open-Source Software.

Hmmm... I tried this with

Joe Bloggs's picture

Hmmm... I tried this with youtube but the video quality seemed to get worse not better. Also I had to wait some time before the video starts (even when I set the cache to just 32k), whereas with the flash plugin it is almost instantaneous.

I haven't tried this plugin

metalx2000's picture

I haven't tried this plugin yet, but I do use the "Easy-Youtube-Downloader" plugin for Firefox. With it I can choose to download from a few different formats. Two of which are FLV and MP4. FLV is the lower quality of the two. But I find that watching FLV files with something like Mplayer, they look worse then they do in the Youtube player. The MP4 still looks great.

I don't know which format this plugin defaults too, or if you can change it to use the MP4 instead of FLV by default. But, I'm guessing that is the issue. So, if you can, choose MP4.

http://filmsbykris.com/
Everything you ever need to know about Open-Source Software.

Netflix Streaming

SmokyJoe's picture

Get this plug-in to work with netflix streaming and I'll have no reason to have windows on my harddrive :)

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState