A missing mime type should not cause a 404 page but the AddType needs to be wrapped in <IfModule mod_mime.c>
tags.
<IfModule mod_mime.c>
AddType video/mp4 .mp4 .m4v
AddType video/mpeg .mpeg .mpg .mpe
AddType video/asf .asf .asx .wax .wmv .wmx
AddType video/avi .avi
AddType video/quicktime .mov .qt
AddType audio/ogg .ogg
</IfModule>
I’m running jw player on a multisite and I had to use absolute urls to access the player and the file. I created a folder in my site root that contained the player and files then wrote a function to display the video and enqueued the swfobject using wp_enqueue_script.
add_action( 'template_redirect', 'load_swf_object' );
function load_swf_object() {
wp_enqueue_script('swf_object', '/jw/swfobject.js');
}
function c3m_play_the_video() {
echo "<div id='front-vid'>
<div id='videospace'>This text will be replaced</div>
<script type="text/javascript">
var so = new SWFObject('http://example.com/jw/player.swf','mpl','520','350','9');
so.addParam('allowfullscreen','true');
so.addParam('allowscriptaccess','always');
so.addParam('wmode','opaque');
so.addVariable('file','http://example.com/jw/video/video_name.mp4');
so.addVariable('image','http://example.com/jw/video/video-face.jpg');
so.addVariable('skin','http://example.com/jw/skins/glow.zip');
so.addVariable('bufferlength','3');
so.write('videospace');
</script>
</div>";
}