I'll add my 2¢ here too. Having just experienced this problem today myself. With Firefox now at version 33 (!), Firefox does "something" with webm, but it certainly doesn't do the RIGHT thing. (I started a thread about it here...Trouble getting HTML5 vidio to play, in Firefox 33
But the bottom line is that this is another case of a Firefox problem that will probably take years to solve. But I digress... it IS a Firefox problem, and since the preferred order for listing video source files is MP4, followed by webm and then ogg, the only sensible thing to do for now is detect the firefox browser, and act accordingly. The way I did this was to create a javascript function in my common "sitescripts.js file like this...
function browserComment(browser, comment)
{
if(navigator.userAgent.toLowerCase().indexOf(browser) < 0) return;
if (comment == true) document.write("<!--");
else document.write("-->");
}
Its purpose is to allow me to detect a particular browser, and either add an HTML comment start, or a comment end. So next, in my HTML5 video coding, I'll do something like the below. Note how I use the function above to detect firefox, and add an open or close comment as the page is rendered, by passing either true or false.
<video width="640" height ="480" controls poster="somePhoto.JPG">
<source src ="someVideo.mp4" type='video/mp4' > <!--cSafari / iOS 1st -->
<!-- firefox supports 'webm'... but doesn't work properly.
So I'll comment out the webm version -->
<script> browserComment('firefox', true ) </script>
<source src ="someVideo.webm" type='video/webm' > <!-- Firefox / Opera / Chrome -->
<script> browserComment('firefox', false ) </script>
<source src ="someVideo" type='video/ogg' > <!-- Firefox / Opera / Chrome -->
<!-- other code to invoke Flask player as a fallback -->
</video>
Its a little ugly, but at least it preserves the proper order of video sources for other browsers that work fine with the webm files, like Chrome. When Mozilla finally fixes the problem, maybe around version 623.2 in a galaxy far far away, I'll only have to alter my browserComment() function, to start taking the version into account.