Hacker News new | past | comments | ask | show | jobs | submit login
Flash-Free Video in 2016 (open.blogs.nytimes.com)
358 points by flavioribeiro on Feb 8, 2016 | hide | past | favorite | 197 comments

I was at a primarily Flash based company during the glory days of Flash and then through the transition to HTML5/JS. While I understand perfectly (and even support) why the shift happened (thanks Steve!), its still frustrating sometimes to know that now, years later we still aren't able to provide the quality of games that we were in Flash 3-4 years ago. We can do a lot, and things have come a ways, but right before the major shift happened, when Flash gained GPU support, the effects and performance possible in most major desktop browsers was pretty awesome. I realize that HTML5 is now capable of utilizing the GPU, but its browser support is still not where it needs to be for us to offer it as a mass consumer option for most of our clients.

I look forward to the day when we can say HTML5 is so much better (than Flash) for interactive/media content on the web, but sadly we still aren't there. I have hope that we will get there eventually. Until then, we will continue providing slightly dumbed-down games and content with the benefit of it working on mobile, tablet and desktop browsers.

> I look forward to the day when we can say HTML5 is so much better (than Flash) for interactive/media content on the web

That depends on the kind of media we're talking about about: HTML5 video was noticeably faster and higher quality on day 1 and Flash never caught up on performance, which is a big deal for laptop users. Even if you're plugged in, having the fans running constantly and still seeing dropped frames is a terrible experience.

I suspect the story is still different for WebGL but the only benchmarks I've seen are fairly old by now.

> HTML5 video was noticeably faster and higher quality on day 1 and Flash never caught up on performance..

Flash video was never perceptibly slower than html per se. The only thing that really affects video performance is whether or not it's hardware accelerated, and in cases where flash used HW it performed the same as html. The reason it seemed slower is that AFAIK there's never been an HTML video implementation that falls back to software, whereas flash would do so if HW wasn't supported.

Hardware acceleration is a broad term used to describe different things and implementation quality still matters (i.e. does it do everything from format decoding to color conversion, scaling, compositing, etc. and are any individual steps combined?).

Every time I've done that comparison, Flash has used significantly more CPU for the same file. It's possible that they've finally managed to get close on the right combination of hardware, OS, and driver versions but given how regularly I still see people talking about huge improvements after uninstalling Flash, I'm skeptical that this is the most common experience.

Similarly, hardware acceleration was not a given in the past and since there's still plenty of buggy hardware and drivers out there, both Flash and all major browsers have software playback paths and there's even more room for variation there. It's not as bad as when people were comparing Flash's scalar code to Apple's well-optimized SIMD but if you disable hardware acceleration you can still see major deltas because Adobe was never willing to invest the same amount of effort in optimization. This hit Flash more because there were design constraints which caused it to silently disable HW acceleration and developers using fast desktops often didn't notice that happening.

Flash was never better than the native AV frameworks on Windows or OS X. What it offered was convenience during the period when you couldn't rely on everyone having support for a modern video codec and, of course, being able to do things other than simply play back a video file.

To clarify I was mainly talking about the days when HTML video was newish and flash was still a big priority to Adobe, and there was uncertainty which would win. I agree with what you're saying over the long run and certainly today.

But I'd have to quibble with saying flash was never better than native playback - presumably so for raw performance, but that wasn't the goal. Flash video was never great for being technically superior, it was great for cutting the Gordian knot that was the codec problem (and indeed one presumes technical tradeoffs had to be made to that end).

The codec problem was real but portability didn't make the performance (or reliability & security) problems inevitable. That was due to Adobe's management seeing the period of browser stagnation & the lack of widely available high-quality codecs as the natural order of things rather than an unlikely opportunity which they'd lucked into.

It's interesting to speculate about what might have happened had they chosen to cultivate a culture of software quality rather than putting everything on customer-milking mode. If Flash had performed well and been well-supported with a non-joke update strategy, Steve Jobs wouldn't have had so many enthusiastic supporters in the war on Flash and the second round of browser wars might never have heated up.

I count myself in that camp in part because I've always preferred the web's openness but also because I used Flash for a few projects and saw how horrible the experience was – technical debt at record levels, clumsy development tools and lousy documentation, and the $800 price didn't even buy reading comprehension on support requests. Fortunately, WebKit was getting serious traction by then so it became increasingly easy to avoid it. If I had any doubts about that call, it was confirmed when the next Flash release came out a year or so later and all of my bug reports were closed with a generic “please pay $900 to see if this was fixed” message after I'd gone to the trouble of including reproducible test cases for each one.

That seems like a pretty facile view to take. Fixing the video delivery problem isn't something Flash randomly lucked into - other technologies (Real, QT, etc) existed for no other reason but couldn't do it, because it was hard. Flash became the de facto global standard for delivering interactive content because it solved that problem, and a bunch of others, for a huge number of people, better than the alternatives, for years. If you didn't like the IDE that's fair enough but it's no grounds to claim the team behind it were money-gougers with no regard for software quality.

I base the claim that they were focused on short-term returns on the way bugs went unfixed and performance was neglected for most of that period until it was too late.

They beat Real/QT thanks to marketshare from the bundling deal they'd signed with Microsoft and I really think they thought that would last forever because nobody else would catch up. When the iPhone came out, the public statements made it clear that they didn't seriously expect the no-plugin policy to last or that it'd drive users away – and it certainly never looked like anyone took the ton of problems experienced by Android users seriously enough to take the product out of maintenance mode.

It took years of them being derided as the leading source of browser crashes and exploits before they even started to offer automatic updates in 2012! – and naturally they rolled their own so it didn't work reliably for years.

Similarly, performance was obviously not a priority until it started being heavily mentioned as a reason to prefer the HTML5 stack, at which point they were hopelessly behind and unwilling to invest enough to catch up.

I mentioned my poor support experience because that also fits with the general pattern. The bugs I reported were mostly in the runtime, although the IDE definitely had problems (stability, unreliable debugger, etc.), and all of this was well-known in the community along with the belief that the only way to get attention was if you worked somewhere large enough to buy millions of dollars worth of licenses.

All of that is consistent with my theory that the product management was focused on the short-term and loathe to spend money on anything which wasn't critical, which left them in the unenviable cycle of reacting late to threats from a year or two ago rather than leading anything. If they'd invested in quality during the early 2000s the last decade might have gone very differently.

The biggest problem with flash video, to me, is the slow networking and buffering. Native browsers are optimal for such work, ActionScript not so much. Things improved but it was too little too late and Flash video deteriorated its quality further as its use in an automatic fallback to HLS streaming video -- native implementations are simply faster and smoother at playing back video than AS through Flash's convoluted APIs.

I totally agree. I've worked with AS3 up until a few months ago but have also been moving to HTML5 for a few years besides. The amount of brainpower that is wasted on quirky legacy browser behaviour and the lack of consistency between them makes me long for the days where I could position and measure and control with ease and speed as in Flash.

> The amount of brainpower that is wasted on quirky legacy browser behaviour and the lack of consistency between them makes me long for the days where I could position and measure and control with ease and speed as in Flash.

Big AS3 fan here, it is less true today. I accept the fact that, while AS3 and Flash IDEs were exciting technologies to work with ( I worked with cool artists, musicians, video producers on crazy futuristic projects...), The underlying tech was bad, for 2 reasons

- security. this one is obvious.

- closed source tech. Flash is now almost dead since Adobe basically pulled the plug on the IDE and there is nothing AS3 devs can do about it. Yes the compiler is open source, but the player is not.

I made me appreciate the how important open technologies are. They do not solve everything. But they are important.

Frankly, as someone said somewhere else in the thread, Adobe killed Flash, by not opening the plugin's source code, by not trying to make it unnecessary. A lot can be done now with WebGL, C++ compilation can be done with Emscripten , Web APIs now cover a lot of what Flash used to do, and where was Adobe on that ? Edge Animate ? what a joke.

With the fall of Flash there are opportunities though, so that's a good thing. I'm thinking hard about it.

I might say much the same things about web development in general. Twenty, years later I still think its easier to create a desktop application with a remote SQL back-end than a web app for any moderately complex application. Data aware visual components and the like have only pale imitations in html/javascript/css. Things like crystal reports have been ported to the web environment but along the way seem to have lost the convenience they had, where it was possible to add them 3/4 of the way through a project. Now you have to rework 1/2 the back-end code (it not the entire project) to add a package like into the mix.

>Flash is now almost dead since Adobe basically pulled the plug on the IDE and there is nothing AS3 devs can do about it.

Adobe did not "pull the plug on the IDE". It has been renamed to Adobe Animate to reflect its ability to output to multiple platforms (such at HTML5, video AND Flash).

You can still use it to create Flash content, and will continue to be able to do so in the future.

More info here: http://blogs.adobe.com/flashpro/welcome-adobe-animate-cc-a-n...

And we will have a lot of information this week on our twitch channel:


mike (I work for Adobe).

One of the tools has been renamed. The IDE is still alive and growing monthly. I have never used the Adobe tool, since it was time-line oriented and I have never used it in that fashion. Instead I use FlashDevelop, and Intellij. Both great tools for developing in AS3.

>Adobe did not "pull the plug on the IDE".

Flash Builder hasn't had an update in ages.

Totally agree. Rather than getting more enjoyable to work with, things just keep getting more and more fragmented. In some ways that's great, but for developers it means a hodgepodge of frameworks and tools. And things keep fragmenting more and more, new languages, more devices, more types of experience. I was a C++ game developer for many years, and last couple of years I have been using Flash for development. Other than memory management it's a great language. Been developing mobile applications on it as well as 60 fps 3D apps. Come on Adobe, we need you to promote Flash!

Not only that, but the GPU exposure to HTML5 creates a massive stability and security risk.

Flash failed not just because it was a browser plug-in, but also because it was terrible - Adobe no longer knew how to tame the beast they'd created and the result was terrible performance and bad user-experience. I'm sad a more sane platform for game/video content didn't win. The browser doesn't need to do everything.

HTML5 for this kind of work is the ultimate square-peg-round-hole solution. HTML is still fundamentally a document platform, and Javascript was never designed for games or video.

We'll get there, but only by the most roundabout fashion possible.

Disagree, Adobe's problem was they made it too easy to create crappy content which could give the browser bad performance. And by make it too easy to deploy that bad content to the web. Now that the majority of bad flash developers are gone, and it's being used less for ads and more for mobile, maybe it can make a come back.

What do you think Adobe should have done to hinder people from creating (or perhaps publishing) low quality content?

Require developer accounts with authorization tokens to consume more than a set amount of CPU before the framework terminated your animation? Call it "Flash Pro" or something.

Then at least you've got an account on Joe frameloop ad.

So I would need a developer token to put up a flash animation on my website? I'm sure that would have killed adoption, and my hunch says that the ad agencies that were churning out the 100% CPU ads who dropped $799 on Flash could pay for the developer account anyways.

WebGL is not a massive security or stability risk. That security stuff was mostly paid FUD from fraudulent demos that faked data leaks. The stability issues have mainly been avoided by not including WebGL content on non-graphics pages.

> we still aren't able to provide the quality of games that we were in Flash 3-4 years ago

What's an example of this? The HTML5 and WebGL games I've seen match anything I've seen in Flash. It's true that you need an up to date and capable browser, but that's true of any platform.

10 years ago there were a dozen sites dedicated to flash games that raked in millions of views per month. I couldn't name you a single WebGL site dedicated to games.

Where is the modern day Newgrounds? There isn't one. It doesn't exist. And that's a damn shame.

I'd say Newgrounds is the modern day Newgrounds. I don't have Flash installed, I went to Newgrounds, and the first couple of games I clicked on worked without Flash while others still required it. If there's new or old content that still requires Flash, then it can be emulated. Here's an example of a large collection of games playable in an HTML5-based emulator: https://archive.org/details/softwarelibrary_msdos_games

As for other HTML5\WebGL focused sites, here's an example of a site making HTML5 games: https://ga.me/

And here are a couple of sites indexing WebGL games:



So don't worry. There's lots of HTML5 game development going on.

I've not seen a single WebGL game on Twitter, Facebook, or Reddit ever. I used to see and play Flash games all the time.

It's not even remotely what it used to be.

TagPro is a pretty popular browser game on reddit, doesn't use flash as far I know.


WebGL browser support is terrible.

I'm not saying it's not possible. I've seen some incredible HTML5 and WebGL games/tests with limited modern browser support. Unfortunately our clients (large children's entertainment companies) require their games can be played on every device in every browser. Sadly, it costs us more to do less in so many environments.

But that's not really a Flash versus HTML5 issue, that's a device support issue. Adobe failed to get their Flash platform on all the devices you want to support so you're using an alternative platform, which is fair enough. If you limited the comparison to the places Flash runs you could be making the same games with HTML5, couldn't you?

You are right, it is probably more of an issue with supporting mobile browsers and desktop browsers with the same game, but web game budgets not having really moved any since the Flash days to support two very different form factors. A project budget went quite a bit further towards making an awesome game, when we only had to support desktop browsers which for the most part, all had good Flash support.

I agree that HTML5 can't do 3D stuff very well across the board yet. But if we're honest here niether could Flash.

I remember trying Flashes Unreal demo and though it ran it was barely playable.

Most of the games I've played in Flash could definitely be done in HTML5 using the 2D Canvas.

I know everybody here hates flash (for excellent reasons!) and is happy to see it die. But, as a user who doesn't work in tech, I really miss the ability to enforce click-to-play loading of videos. From my pseudo-outsider perspective, the switch to HTML5 has been really frustrating.

I happen to hang out around these parts so I understand the reasons for it, but if I didn't it would probably make me mad. It would feel like websites were just trying to get around my flash blocker and shove their autoplaying media in my face. Just goes to show how different things can look from the developer side of things.

Firefox has the setting "media.autoplay.enabled" for this. It mostly works, although some websites (notably Youtube) assume that autoplay succeeded and so the player acts slightly wonky, e.g. the played/paused state is backwards.

I would be interested to know of any extensions that do similar and work better.

Believe me I've looked. As far as I can tell, there's no way to make one that works for everything because the HTML5 standard* doesn't have a clear distinction between things that autoplay and things that don't, the way there was between "flash content" and "everything else".

*I'm not a tech guy so I may be using the wrong terminology here.

Yes, it's a tricky problem because "what does autoplay mean?" If you load up a page containing an HTML5 game, presumably you want the background music and SFX to work. But how do we differentiate those from an unwanted autoplaying audio ad?

I believe the Firefox devs settled on anything during/after a user interaction is allowed to autoplay. More at this bug (which I've been following for years, if you couldn't tell :)


I have autoplay disabled in FF. The trick in Youtube is to double click the play button the first time. After that all works normally. (For some reason double clicking the video area doesn't produce the same result.)

Double clicking the video area is a shortcut for fullscreen view.

It doesn't quite work "normally," the play/pause button state is backwards, but yeah, it works good enough.

Ha, it may very well be, I never noticed.

I find a general difficulty with processing the meaning of "modal" buttons. If it's showing the "Pause" symbol, does it mean it's paused now, or that it will pause when I click it? I had the same problem with the stupid slider buttons that have become fashionable to use in place of checkboxes.

We're only happy to see it die because it was never well cared for. Flash was much heavier and much, much more insecure than it needed to be with Adobe-level money behind it. They were terribly poor stewards of the technology. I mean no offense to anyone that was on the Flash team, I am making a (flawed?) presumption that it probably didn't feel great inside the company either.

Others may tell you I'm wrong - it's about standards and open technologies and whatnot. But personally (and for people I work with that I can speak for) Flash failed because Abode failed Flash.

I agree - was definitely poor stewardship, but also there was a perceptual problem for developers. Flash was created for designers and artists, the coding part was secondary and thus traditional developers found it extremely frustrating.

The internal team became obsessed with changing it to something more focused towards developers with AS3, Flex, Flash Builder, and Flash Catalyst. Instead of improving something successful, they tried to twist it into something it wasn't.

The final straw was Jobs, not because Flash was bad but because iOS was extremely locked down. There was no way he was going to share his new platform:

"We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform."

Without iOS, there was no future for Flash (Android was still in it's infancy) so Adobe pulled the plug. Just a few years later Apple will go on to hire Kevin Lynch, former CTO of Adobe, to be VP of Technology at Apple focusing on the Apple Watch.

The real reason Flash died was not technical, it was because Steve Jobs didn't want a whole platform he didn't control running on the iPhone.

well.... both really. Flash was a mess by then, but your point is also true. It would have made the app-store worthless

Yes. Jobs did it for control, but the fact that Flash was a bloated dumpster-fire of a platform made everybody else agree with him.

Would you say thatvthey were terribly poor stewards due to it being a product of macromedia which adobe bought and then a ton of the core group at macromedia cashed out and left after the purchase leaving tech debt vacuum at adobe wrt flash...?

What do you mean? There are extensions for blocking autoplay HTML5 media same as flash...

They don't work reliably (some things still autoplay), and sometimes they break the media entirely or don't discriminate between things you actually want to autoplay. For example, the one I currently have installed also blocks "gifv" files from autoplaying in the browser, even though there's no play button to click on. Every time I click on a reddit link that turns out to be a gifv file on imgur, it stays frozen on the first frame and I have to click on "view image", manually change the url to "gif", and reload it. As others here have mentioned, they also tend to break youtube in odd ways. It feels like there are a million little annoyances like that. Back in the "flash era", click-to-play was effortless.

When you right click on the gifv, there should be an option to "Show Controls", which allows you to start/pause/etc it.

Holy crap, that's really helpful. Thank you!

But from the user perspective... how was I ever supposed to guess that?

FYI the exact wording depends on the browser, but all HTML5 video elements will have that context menu option. And other options like "Copy URL", "Loop", etc. depending on the browser.

Of course some websites like youtube override the context menu event to prevent that from showing.

While it is hardly a discoverable feature, you can override custom context menus (at least in Firefox) by holding SHIFT and clicking.

Many thanks. I wonder how many other features I'm missing out on..

There is actually no such thing as a gifv "file format". gifv is just a html page with an embedded webm or mp4 file that hides the standard controls and loops automatically.

Yeah that does sound annoying. Have you tried contacting the extension maker? Perhaps they can add that to the list of fixes/features on their next update?

Autoplay video on mobile makes me really angry. Both Chrome and Firefox on Android always autoplay videos on CNN, BBC, and other sites that mix video and text. All I care about 9 times out of 10 is the article, just to skim it, watching video is completely annoying and inefficient.

At first I'd yell profanities out loud. Now I stop going to those sites.

I may have to switch to Chrome (from Firefox) and see if actually works as described.

Firefox might have similar extensions.

It does indeed work. However, you might find that some videos don't load as they should. And, for example, gifs on facebook stop after one loop for one reason (since they are not really gifs, but videos).

But I remember similar issues with various flash-blocking extensions too.

It should be noted that the native browser decoders for h264 still produce worse color presentation than flash players. Also, the flash runtime's pseudo-streaming is faster than Chrome's http pseudo-streaming (it takes longer for the same h264 file to start playing back).

I love HTML5 video, but there are still huge areas for improvement that show up frequently.

YouTube in Chrome starts playing video practically instantly, before the page is even finished loading. It's faster than Flash ever was.

parent is referring to pseudo-streaming (aka downloading a video over http), not proper streaming (aka YouTube, etc)

> native browser decoders for h264 still produce worse color presentation than flash players

which browsers? Which platforms?

Last I checked Chrome's h264 had less accurate color presentation than most off the shelf flash decoders. I can't seem to recall how Firefox's webm decoding stood up when the file was comparatively accurate to the h264 the flash player was using.

Show us the evidence of that claim.

No reason to be hostile. We investigated months back when we got reports from our users, who are professional videographers, that videos were showing up much worse in some browser situations than others. They sent us screen shots, and upon investigating found that on almost every clip we were getting better results using two different flash players we had access to than the native decoder.

I don't have some big official report because, well, that's not my job and I have better things to do. You're welcome to investigate yourself if you're concerned about it.

Here is an example of a Firefox bug report about H.264 color spaces looking different in Firefox compared to another video player. So these are real problems. :)


Pseudo-streaming is (and should be) less and less used, and actually loads a lot slower than the new HTTP adaptive streaming formats like HLS and DASH.

Has anyone here that is excited about HTML5 video (and Flash being dead) ever written an enterprise video player? It's a total nightmare in HTML5. You have little control over playback and insight into video events. Meeting business requirements (that Flash fulfilled) with HTML5 video ranges from hard to not possible.

> You have little control over playback

This sounds user-friendly.

> insight into video events

If "insight" means "tracking", this sounds very user-friendly.

> If "insight" means "tracking", this sounds very user-friendly.

What about a slideshow which has a video of the speaker, and changes the slides for particular timestamps.

At the moment you'll have to detect the playback event and just hope that the video is playing back at the "correct" speed, and change the slides based on a JavaScript clock.

While that works most of the time, it isn't what I'd describe as reliable.

Alternatives exist, like making the slides part of the video too, but now text cannot be copied out, links cannot be clicked, and so on...

I am by no means experienced in this area, but a quick search of MDN showed the 'timeupdate' event[1]. Is that not sufficient for the usecase you gave? The timestamp itself is available through the 'currentTime' property[2] so you can always have that value as well.

[1] https://developer.mozilla.org/en-US/docs/Web/Events/timeupda...

[2] https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaEl...

Edit: Added links for quick reference.

In theory, yes, that’s how you’re supposed to do it. Unfortunately, part of the real world problem with switching to HTML5 media elements is that browsers have an awful track record in terms of quality of implementation. At various points, even quite basic events simply haven’t been firing properly in one browser or another. And with browsers updating every six weeks and frequently changing things like the default controls you get on a video element, you’re constantly aiming at unnecessarily moving targets as a developer.

Yep, here's an example - if you mouse down on the video thumb, and don't move the mouse nor release the mouse button (so basically you've held the thumb in place):

- Does the pause event fire?

- Does the seeking event fire? Or does it only fire when you move the mouse to drag the thumb to a new time?

- Does the seekend event fire? Does it fire every time you move the thumb to a new position without releasing the mouse button? Or does it only fire when you release the mouse button?

- Does the timeupdate event fire? Does it fire once? Or repeatedly for the same position where the thumb is?

Every browser has different answers.

As for the timeupdate event, it only fires once every 250ms, which is painfully slow for applications that need to synchronize something with the video (slides, subtitles, etc.)

And even if you decided to ignore all the events and write a requestAnimationFrame-powered loop to query only the changes in the currentTime property, there's a bug in Chrome on Android where the video.currentTime property becomes out-of-sync with the video if any long-running JS or complicated animation blocks the event loop for a few seconds - https://code.google.com/p/chromium/issues/detail?id=509010

Or you can have a javascript loop check the video's current time.

> If "insight" means "tracking", this sounds very user-friendly.

I personally would like advertisers and content producers to know at which point it is that users tend to bail on watching their video, or will click through to the content. That might allow business users to receive useful feedback and actually optimize their funnel, instead of wasting my time with a shotgun, best guess approach.

It would be interesting to see Youtube's statistics on this, because for almost every case personally on my mobile devices and every case I've seen others deal with, that bail-out point is "as soon as possible" if the ad can be skipped.

It wouldn't be so bad, if they would show you more than one or two different ads. I remember Hulu being especially egregious about that. I'd watch a couple hours of the back catalog of some show, and see maybe 20-30 ads in their "commercial breaks", except it was always the same ad.

There are many cases where it’s much more user-friendly to have proper control over audio/video players and proper event handling: custom controls to change resolution/quality settings, synchronization of the audio or video with accompanying material, integration of video with other content, having interactions elsewhere on a page adjust audio or video to match, remembering which tutorials a user has finished so you can start with the next one ready to go next time, and that’s just what I came up with in a few seconds.

Sure, if you just want to play your free videos from a site where each page is basically just a wrapper around the video element, and you don’t need any configuration for quality settings and the like, then custom control and events might not be particularly interesting. However, HTML5 media elements should let us do much more than that.

Yeah keeping track of where you stopped watching a video so they can continue the video at that time automaticially is indeed user-friendly.

Are you going to tell me view counters are evil too?

Obviously user friendly but businesses don't care when they can't get their metrics.

I'd recommend one of the open source players, like video.js[1]. Unless you are doing some really advanced things it should cover your needs.

[1] http://videojs.com/

It's terribly primitive and altogether broken from some features (unfinished). Just an fyi

Can you elaborate on this? At work we have a HTML video player that works with files, YouTube, and Vimeo all with the same skin, and we're easily able to do things like save state across sessions. I will say that the transcoding aspect can be complicated. What limitations have you hit?

Listening for video events (cross-browser) reliably. When is a video loading, buffering, paused, what time is it? etc

Is there any technical or legal reason why it's not as easy to handle playing video as it is to show an image, from a site developer point of view? Why can't the browser do it natively? Why does it have to be handled via JavaScript and whatever else?

Today playing a video more complex than just decode a .mp4 file: most broadcasters use Adaptive Bitrate streaming formats like HLS and MPEG-DASH, that add a lot of complexity: How do you get the qualities and languages list? how and when do you switch the video quality? etc

In case of hls.js used by the NYT, you actually need to transmux the mpeg-ts content used in HLS into fMP4 to make it playable by the Media Source Extensions API used by the browsers.

yea, the transmuxing is unfortunately buggy though. i had to recently switch my site back to flash because so many browsers have issues with it. it loads way faster though

HLS.js is doing great on Chrome, FF, Edge and Opera. For Safari it's better to use the native HLS player for now. The best option is to have HLS.js first on compatible latest browsers and Flashls as a fallback on older ones

When did you try doing it? Things evolved a lot in the last 3 years in terms of video streaming support in HTML5, and today everything that was doable in Flash is doable in HTML5 with MSN and EME. You have control over the playback almost up to the keyframe today. Do you have any specific features in mind?

FWIW, I'm pretty sure Popcorn has been abandoned, which is a shame.

there is also http://clappr.io

I find that landing page truly frustrating. I can't do anything besides watch the background video and "Star" them on Github.

I don't know if it was because I'm not signed in to github but by clicking star I ended up in their repo. Still, while it's laudable that you might have just one clear button a la google so there's focus, this can be somewhat confusing.

an enterprise video player wasn't exactly a picnic on Flash. How do I know? Because even the "enterprise" players would crash browsers constantly.

So, basically Flash lives on because advertisers are still looking for a way to track us without our permission.

Gee thanks.

All closed technology, on some level, exists to perpetuate coercion. This is the thesis of the free software movement.

> All closed technology, on some level, may be used to perpetuate coercion.

Maybe this way?

There are surely many examples of closed technology that isn't phoning home. The problem is that you don't get many garanties.

I don't think coercion is necessarily limited to phoning home.

I think that's a rather extremist view.

It's also true. Even at the most benign level, non-free software exists to coerce you into running unverifiable code on a machine you own. Less benign non-free software coerces you into paying for a license, signing an EULA, participating in a botnet, etc.

have you read his profile?

You can still track users just fine without Flash - the VPAID spec calls for allowing cross-domain "Friendly" scripting access, which is horrible for users.[1]

The only problem with Javascript adoption was the availability of Javascript based ads and support for this VPAID style tracking.

[1] http://www.iab.com/wp-content/uploads/2015/06/VPAID_2_0_Fina... - VPAID 2.0 spec, section 8.1.3: "The VPAID ad unit is rendered within a friendly IFRAME (FIF) and can access the DOM of the page in which the player is rendered."

They don't need Flash to track us. Google does it just fine without it.

The difference is whether or not you can detect it effectively.

It's much easier to author and publish an animated ad using Flash than HTML/JS.

>> It's much easier to author and publish an animated ad using Flash than HTML/JS.

I thought you just put a video tag and point it at the URL of a video file. What else is missing? ;-)

100% Browser support. And if you consider the only people that click ads are probably running IE 4, then browser support is pretty important.

Let's see when Facebook converts. For some reason they love to serve Flash based SOLELY on user agent. So you have a chrome fork without flash? Here, watch this flash. Oh, and this gif is now flash as well.

I can't quite figure out why.. but I would vote for incompetence. Can't see any business motivation for doing that.

They probably just have a whitelist of user agents that they have verified HTML5 video to work well on... If it's anything they don't recognize they serve flash.

I'm not sure if this is what you're referring to, but they also don't allow you to embed a custom HTML5 player, just Flash. So, if you're a content producer or platform that wants to use your own player, your only option is to embed a SWF.

The irony is that I'm pretty sure the reasoning has security in there somewhere.

Yes, Facebook, full of incompetent engineers.

I'll never understand why HN is so desperate to believe something that clearly isn't true.

Because the alternative is some kind of conspiracy theory.


One advantage of Flash over HTML5 video (in Firefox, at least) is that Flash has its own H.264 decoder for platforms that don't include one (like Windows XP or the "N/KN editions" of Windows for Europe and Korea). Flash can also use the GPU for decoding or compositing of video on XP, providing better performance than Firefox playing VP9 using a software decoder.

YouTube recently relegated Flash to the bottom of its list of preferred video formats. Firefox users on XP who used to get hardware-accelerated 1080p video using Flash now get VP9. Many older XP machines can't keep up decoding VP9 in software. I recommend Firefox users on XP install the "YouTube Flash Video Player" add-on, which will force YouTube to use Flash again:


Youtube also serves VP9 in preference to H.264 in general. I had to install a browser extension to trick it that my browser doesn't support it so I'd get hardware acceleration. I don't know if the decision is based on ideology or bandwidth savings, but it certainly isn't nice on my CPU.

XP machines? In 2016? That's solving the wrong problem.

XP is still a big problem. About 14% of Firefox users are running XP, about the same share as running Windows 10. Google says they will drop support for Chrome on XP and Vista in April 2016. They already extended their XP EOL twice before (from December 2015 and April 2015), so there's a good chance they will need to do it again.

I had an old Xp-based laptop running as a file-and-print server. It was behind a router, so not even fully public. Nothing was even running on it besides SMB shares, VNC, and a media server.

Some kind of botnet must have hit it, because one day I got a bandwidth-consumption notice from my ISP and found that an SSH server and a torrent system had been installed.

Now if they could make Firefox play those videos on Android all would be good.

Are NYT videos DRM enabled or use a codec that FF doesn't support on Android? FF should be just using the platform provided codecs and if it works in Chrome it should work in FF - but I just get a Video/Mime Type unsupported error on FF when browsing NYT.

There are no DRMs on the NYT streams (hls.js supports AES encryption, but it's not exactly a DRM liek Widewine or Playready).

Firefox Android doesn't have Media source Extensions, that allow HLS support in HTML5 : http://www.jwplayer.com/html5/mediasource/

Firefox on Android is supposed support MSE (for MP4/H.264, but not WebM/VP9). For example, YouTube MSE works in Firefox. Is it broken for you? That JW Player page is out of date. It also says MSE doesn't work on Firefox desktop. :)

I recall reading somewhere that there's a whitelist for MSE and only a few sites are enabled on FF right now?

Yes. There was a temporary whitelist while Firefox MSE was still in development (to workaround some API incompatibilities on some video sites), but the MSE whitelist was removed in Firefox 42 (November 2015) allow all websites to access the MSE APIs:


I don't think MSE is yet enabled on Firefox mobile, it was not working the last time I tested.

It says unsupported here, I guess this one is up to date: https://developer.mozilla.org/en-US/docs/Web/API/MediaSource

MSE has been available on Android since Firefox 41 (bug 1084456). That MDN page was out of date. Thanks for pointing out the error! I just updated it. :)


Live streaming is still a pain-point in HTML5. I can play a live HLS stream on my Android or iOS phone, or I can play a live RTMP stream through Flash on the desktop; but everything else on the desktop is flaky, or experimental and flaky (MPEG-DASH), or just nonexistent (in the browser, that is -- not including video clients like VLC). I would love to see 2016 be the year where this gap is closed!

Sometimes I think Steve Jobs' greatest contribution may have been killing flash. Today is a glorious day.

But he did give us iTunes on Windows, so in my opinion, that about balances things out.

and also iTunes on Mac. And WiFi on Mac. and XCode on Mac. and App Store on Mac.

Can you elaborate on the issues with iTunes, Wifi, and Xcode? I know the app store is just a wrapper (which makes it pretty bad) but Xcode is a wonderful (but buggy) IDE, I don't understand how you can make WiFi bad, and I really have no idea where they went wrong with iTunes.

iTunes is a slow, bloated mess with UI that gets worse with every release. Classic dumbness: Adding 1 song or photo to a phone requires erasing the entire phone because it's synced from another computer? Or trying to sync a folder of photos from computer -> brand new iPhone with brand new iTunes doesn't work. Just stalled progress bar forever.

WiFi: There are constantly WiFI problems with OSX and iOS. From plain-ol' reliability to straight up bugs. This isn't including boring DNS stupidity from OSX.


Xcode: Absurdly slugish and crashing constantly.

And don't forget QuickTime!! The all time worst media player.

To be fair, in the time of RealPlayer and such, QuickTime was the least bloated and best performing video player around. There really isn't a use for it in 2016, though.

Have we forgotten RealPlayer so quickly?

I am not sure if replacing Flash with Javascript is glorious...

Please, tell us more about how JavaScript is worse than Flash.

You can't as easily block adverts based on it.

There is a certain irony that after all the arguments about how plugins are bad and we must kill Flash, actually video on iOS devices typically still plays via a plugin today, just a different one. Moreover, because of Apple’s policy about browsers all having to use the same engine on those devices, no-one can provide an alternative browser that does better.

This situation breaks everything from basic cookie mechanics to possibilities for caching short videos for offline use, which should have been letting us do all kinds of interesting and useful things now that the videos are supposed to be part of the normal content on a page.

This really wasn't a Steve Jobs contribution in the least, it was Adobe.

Flash on mobile was terrible, Steve Jobs may have been the messenger for that but he wasn't the decision maker.

Apple not supporting Flash was a crucial part of it's demise, though. Without that, we might be running Flash on mobile today, even though it was terrible.

They did actually support it for a while on Android, but Apple never wanted to support third party browser plugins on iOS, and since the Android port was horribly slow even on the most basic swfs and was a huge hack, Adobe decided to drop it. AIR is still supported on both platforms, though (and I hear it's quite good).

Flash wasn't even supported on iOS. I'd argue that was huge in killing off Flash, since anybody who wanted to make their site work on mobile could no longer use Flash.

Being terrible didn't stop them from putting it on Android. I'm sure Adobe would have loved to be on iOS if they'd been allowed into the browser.

If they still serve video via Brightcove, seems like a big win for the Zencoder acquisition, which included the video.js player. I do see video.js in the source.

there's no Brightcove neither videojs, VHS was built from scratch and we have plans to open source it.

Brightcove is following the lead though, they just released the HTML5 first HLS player: https://blog.brightcove.com/en/2016/02/say-goodbye-flash-bri...

btw, what does "VHS" stand for? It's an awesome name. :)

hey! VHS is actually a tribute to the old "Video Home System" :) We also name our releases with 80s movies, here are some examples of the latest versions:

- 2.63.0 Coming to America - 2.60.0 The Terminator - 2.59.0 Full Metal Jacket

Perhaps a little off-topic but it would be nice if NPR could HTML5-up their web radio player also.

This is excellent, and sounds like the result of hard work and harder cajoling of the ad-men. Thanks, NYT, for doing your part.

What I found most heartening about the article was that it spent several paragraphs describing why they initially had to use Flash, and how they managed to get rid of it, but not a single sentence saying _why_ they decided to get rid of Flash. We've come a long way! (Also, thanks Steve Jobs!!!)

> Throughout the second half of 2015, Chrome, Firefox and Safari also began blocking the Flash plugin from automatically loading content unless users gave their permission. In order to continue providing a quality video experience for our viewers, switching exclusively to HTML5 video became necessary.

Hah missed that. In that case, thanks are due to Chrome+Firefox+Safari!

Good! Now move to https!!!

Secure the damn web.

Only slightly related but even Amazon isn't on HTTPS, which I find to be a much bigger issue since they deal with credit cards

Both https://amazon.com and https://amazon.de work for me.

Was hoping someone would say this. This should be the only thing they focus on this year until it's done. I see that they POST to a secure endpoint when logging in but that doesn't make a difference once the session cookies are transmitted in the clear.

yep, this is on our roadmap

And yet it still doesn't use HTTPS. Wasn't it supposed to get it by the end of last year?

We had to shift a few priorities last year, but we are working to get HTTPS support on our video player. So, stay tuned!

HTTPS is a challenge for video players because a player on an HTTPS web page must also stream video over HTTPS (to avoid HTTP/HTTPS mixed content errors or warnings), which can be costly. Flash doesn't enforce mixed content checks.

Fantastic news and congrats to the NY Times team.

Does anyone know, who at this point still continues to use Flash?

Pretty much every music streaming service I know of. There were a few that used HTML5, but all of them shut down (most recently rdio).

For Spotify, there's a years old request on the forums [0] their support keeps linking people to, but it doesn't seem like they're doing anything about it.

Deezer uses Flash for "security reasons" [1] and they don't plan to use HTML5.

Someone mentioned Google Play might work, but I haven't tried that yet.

0: https://community.spotify.com/t5/Live-Ideas/Integrate-HTML5-...

1: https://twitter.com/Deezer/status/539344616580194304

Google Play Music does work without flash but it's a "Labs" feature.

Thanks for the tip...apparently it doesn't work on Firefox, or doesn't work on Linux, or something. I found the switch to enable it, but it's grayed out.

I was painfully annoyed when Songza shut down and redirected to Google Play Music. Songza worked happily without Flash, but Play Music requires it (so far). Also, Play Music has more intrusive ads than Songza.

Most of the German public broadcasters still use Flash (arte, ZDFMediathek, 3sat is one giant flash-blob etc.)

The most infuriating one is NDR, because they allow you to switch between Flash and HTML5 video. However, if you don't have Flash installed, it doesn't give you that option or falls back to HTML5 (which would be reasonable) but instead throws an error telling you to get Flash. Yup, you need to install Flash so you can disable Flash.

Some of those sites use an open source player (I forgot the name). They actually changed the default priority order and put Flash first, so if Flash is installed (not necessarily enabled!) it will use Flash in favor of HTML5.

Firefox used to have an option that overwrites the list of plugins reported to JavaScript. Sadly it was disabled a few versions back.

Edit: The player is Projekktor [0], the FF setting was plugins.enumerable_names [1]. There's a new option coming that hides plugins when set to click-to-play [2]

0: https://github.com/frankyghost/projekktor

1: https://bugzilla.mozilla.org/show_bug.cgi?id=1169945

2: https://bugzilla.mozilla.org/show_bug.cgi?id=1186948

The BBC still do which I find infuriating...

I think it you tell your browser to claim its an iPad there is magically much more HTML 5 video content on the BBC.

Indeed. Frustrates the HELL out of me even more because all their videos are available in web-friendly MP4 for the mobile services and you can get to them if you spoof the user agent. I wish they would just let me toggle a "beta" feature or something.

I'm 99% sure they introduced a non-flash service in beta recently.

Edit: Yeah, you can opt-in with a button on the right column here: http://www.bbc.co.uk/html5

Only for iPlayer, not for example on BBC News video clips, and not even 100% of iPlayer content yet. Still progress I suppose.

True. Hopefully this is a test and once they get it working they'll roll it out across the BBC sites.

Yes I was aware of the iPlayer HTML5 opt-in which is what I was hoping to see for the rest of the site. Given that they have all the content in HTML5-friendly video anyway it shouldn't be all that painful.

Twitch.tv, sadly.

There's Beam [0], it's quite new but I've been quite amazed by their work. They invented some sort of own protocol built on web standards [1]. Also, their streams are actually live (i.e. minimal delay), it's all HTTPS and a lot of their work is open source. [2]

I hope this is going to be a thing.

0: https://beam.pro

1: http://forums.beam.pro/topic/168/where-we-re-at-with-html5-v...

2: https://github.com/watchbeam

Thanks for the link. Looks neat, but sadly doesn't seem to be working in Firefox for Linux. Don't have time to dig into why right now (missing MSE? some codec I don't have?)

It wasn't working for me when I `had media.fragmented-mp4.*.enabled` turned on. Started working again after turning it off.

Other than that, I think they're A/B testing some experimental features. Perhaps try a few different streams and see if those work?

We're working on the switch (I announced at TwitchCon). It's particularly hard for live video, but that's just an excuse. Clearly the time has come.

Jerry Seinfeld on comediansincarsgettingcoffee.com

Only on desktop, on mobile it must be showing an MP4 file since it works on the iPhone.

The superbowl website requested flash to be installed.

ESPN does and it's dreadful.


:-/ tinychat.com

Yet NYT does not bother with subtitling their videos. Feels like I'm back to the early 80's when less than 20% of tv shows including news were captioned.

Two steps forward, then three steps backwards. Great.

> Chrome, Firefox and Safari also began blocking the Flash plugin from automatically loading content unless users gave their permission.

Fuck auto-play websites, made possible by HTML5. Even LOADING content unless the user explicity consented is horrible behavior.

Not everyone has an unlimited tethering plan or WiFi, fuck you very much.

I hope DASH will remain patent free. There was some attempt to attack it. It's quite important for Web video.

My bank introduced a flash-based internet banking half a year ago. Really. (only the login requires flash)

I hope you don't have to deal with ActiveX/SEED (South Korea), too.

Ref: https://en.wikipedia.org/wiki/SEED

You should probably get rid of them ;-)

I know. Don't even know what they were thinking.

Turn off Flash for YouTube https://www.youtube.com/html5


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact