This is a document written using ReMarkable, a shorthand syntax for generating HTML.

{	"date"		:	201002071356,
	"updated"	:	201002071356,
	"licence"	:	"cc-by",
	"tags"		:	["web-dev", "code-is-art", "annoyances"]

# The End of Video for Everybody! #

*Video for Everybody*—<the ugly kludge that it is (/code/video_for_everybody)>—has seen more success than anything else I’ve made. The whole spat over Flash and the iPad really raised awareness of the need to get video out of Flash and into HTML5 where possible. Everybody has <already (//> said it <better (//> than I could.
	What I have noticed is that VfE has taken on its own kind of momentum. I’m seeing anything up to 50 tweets a day mentioning it, and almost every blog post and news article discussing Flash and the iPad includes someone posting a link in the comments, if the <article itself (//> is not already linking to it.

	Anyway, getting to the point, VfE is a fall-back mechanism and as such as time goes by and browsers fall out of use, it doesn’t have to fall back so far any more and we can drop fall-backs—_Video for Everybody *is a <vanishing mediator (//>*_. It exists to bridge the gap between the disparity of Flash and HTML5 and will fade away as legacy browsers are no longer needed.

	Personally, I’m ready to kill VfE now with the next version, but I think in reality it still needs another two years for it to reach developers everywhere and for HTML5 video (without requiring JavaScript sniffing) goes mainstream—and it will, because Flash will never reach as many and as diverse as platforms as we will have in many years time when—<as it is in Japan (/quote/japan_web_usage)> _right now_—more people browse from mobile devices than desktop browsers.

	VfE is just an empty template that creative developers <who “get it” (//> can take and adapt to something more polished and practical for the mainstream. <SublimeVideo (//> is not based on VfE but does demonstrate what’s possible with JavaScript controls and that other than legacy browsers Flash is not _required_ for playing videos any more. Sublime makes the huge mistake of not falling back gracefully (no video download links), yet, and not being free [for commercial use].

	VfE needs something that I am not able to provide it: a clever developer who can wrap VfE up in a developer friendly and _especially_, consumer friendly interface with beautiful, JavaScript-added ({i.e.|that is,} hidden if JS disabled) controls that are mirrored in the Flash player (I can’t write Flash software). <UniversVideo (//> kind of does this, but it needs to be more like SublimeVideo, use minimal JS and provide control compatibility between HTML5, QuickTime and Flash.

	I wrote VfE for two reasons. The first was developers were (and still are) doing HTML5 video _wrong_—no fallback message / download-links, non-free, _lots_ of <bad examples (/blog/letter_to_mozilla_re_video)> of JS-only insertion and generally botched code and a complete lack of <testing (/code/video_for_everybody/test.html)>. It’s infuriating to think that so many developers—_especially_ Mozilla, the very people who should “get it” the most—don’t seem to “get it”; that `<video>` is no more sophisticated than <``<img>`` (//> (which supports multiple ‘codecs’) and should never require any JS to insert into the page. This is _simple_. You people who are so beset with avoiding change are making this complicated—this is _nothing_ like the days where every user had to install QuickTime, Real Player and Windows Media Player to view content online. VfE was therefore invented to shock developers into doing the right thing with its stunning obviousness and simplicity (No JavaScript, imagine that! `:|`).

	The second reason I wrote VfE was that because I <don’t have Flash installed (/blog/flash-week)> I discovered just how far developers have slipped into a comfort zone where nobody does accessible fall-backs of any kind, for anything.

fig.	<"Adobe’s “open” government website. A big, blank Flash square."
	: Adobe’s “open” government website. Image courtesy of <Ars Technica (//>

It’s shocking to think that so many websites already have H.264 video files that they want to show you, yet insist on wrapping it in a crashy, unreliable and slow Flash shell without any kind of fallback, not least allowing users to actually download the video in question so that—I don’t know—they can _view it_. This is absolute madness and indicative of a closed web lead by a company that blinds developers into being locked into a single-vendor solution.

And this maddening scenario (being needlessly locked out of the videos I want to watch all for the lack of *_THIS_ insanely difficult bit of code to grasp*: “``<video src="abc.mp4" />``”) is <still happening (//>.
I include this e-mail I sent here, in the hopes that it helps get things moving.

|	Dear <{{LRR|LoadingReadyRun}} (//> Crew /
|	Staff of <The Escapist (//>
|	You’ve needlessly stopped me from being able to view your videos. This is not good. I don’t have Flash installed
|	(something… bad… happened, in the past) and I relied upon your QuickTime uploads and hacking YouTube to use HTML5
|	video.
|	The massive shitestorm surrounding Flash / the iPad should be a clear indicator that wrapping Flash around
|	videos is not the way we get things done on the Internet in this day and age, no sirree. If the iPad ends up
|	successful as the iPhone, then that’s a lot of people who can’t view your videos for the sake of what… branding?
|	Adobe, a gun, and Stockholm syndrome?
|	There are better ways—ways that involve me, actually being able to watch your videos! And nobody even gets hurt!
|	It’s called <Video for Everybody (/code/video_for_everybody)>, and I made it so that website authors could easily
|	provide a means for everybody to view their videos; yes, even those people who don’t watch {{LRR|LoadingReadyRun}}.
|	It works by using HTML5 video where available (Firefox 3.5+, Chrome 3+, Safari 3+, Opera 10.5), falling
|	back to QuickTime if not available, and falling back to Flash if that’s not available. All without JavaScript
|	or browser sniffing.
|	Frankly, I’m disappointed {{LRR|LoadingReadyRun}} / Escapist, and that makes me want to commit violent acts of
|	violent video game violence. Violently. Please provide access to your videos in a more non-Flash way so that I
|	may once again see them. I would even be willing to offer my programming skills—for free—to help the Escapist
|	develop a custom HTML5 video player with all the bells and whistles.
|	There’s a similar video player <here: (//> that shows that HTML5 is perfectly capable of
|	anything Flash is, without the crashing.
|	Kind regards,
| Kroc Camen.

The last thing to note is that I _am_ well aware of the <issues (//> with H.264 patents and costs, and others have called me out for being a hypocrite when it comes to me proselytising an open web when I’m supporting the H.264 patent trap with VfE. Video for Everybody was not written _for_ me. It’s not something I will use on my own website for videos, I don’t have the bandwidth anyway. Video for Everybody was written so that website owners who are already using H.264 (inside Flash) can _let me see their content_. They already made the decision to use H.264, I haven’t changed that one bit, I’ve merely offered them some different HTML to show videos. I’m trying to be pragmatic because I know the mainstream web will simply not hold to my ideals of <HTML purism (/hello)> and creating a solution that nobody will use is useless.

The H.264 thing will sort itself out in due time, Video for Everybody makes _no difference_ to that as all it does is swap one H.264 decoder (Flash) for another, *as well as guiding users to begin to provide Ogg as well*. Just as Video for Everybody is a vanishing mediator between Flash and HTML5, so it is a vanishing mediator between H.264 and Ogg. Patience.