Flash is a platform, H.264 is a codec. One cannot kill the other. http://bit.ly/98Y588 Dan Raburn explains the difference.
As I tried to do with my “What’s the difference between a codec, and a container or wrapper” article from mid 2009, it’s not a question of H.264 vs Flash because since November 2007 Flash has played H.264 MP4 files – the same files used in Apple’s mobile devices (although Flash can play more variations on H.264 than Apple’s devices, btw).
Dan explains that Flash brings a lot more to the table – DRM, interactivity, etc – that is not available with a plain HTML5 video tag playback. This is provided at the CSS/Javascript level outside of Flash.
So the real debate with H.264 has nothing to do with Flash, but rather with the browsers that support and play back video. Microsoft has said they will only support H.264 in IE9, but we have to remember that IE6 still has close to 10% market share and the browser is nine years old. Looking at my own traffic stats for my blog, nearly 15% of my traffic each month comes from viewers using IE6. Like it or not, that’s reality. So the idea that H.264 video playback in a browser that supports HTML5 is somehow going to work for all viewers overnight is simply not the case. How many Internet viewers will have an HTML5 compatible browser in the next two years? Not as many as some seem to think.
The article is definitely worth a detailed read.