MacでのWMV埋め込み

MacでWMVを扱うにはFlip4MacもしくはSilverlightを利用する形になります。
前からの繰り返しとなりますが、ベストはSilverlightのプレイヤーで再生することです。そうすればWindowsとの共有化も計れます。
以前、Macでも時短再生したいと要望があったので調べたときの経験を書いておきます。この時は結局あきらめました。
Silverlightでは無理なのでFlip4Macを利用する事となります。
一応、Flip4Macで音声を伴う早送り再生ができます。しかし、WindowsWMPに比べると音声補正が良くなく二倍速くらいが聞き取りの限界だと思います。それ以上だと音声が重なったり音が高すぎて聞き取れません。
Flip4MacをインストールするとWMPがFlip4MacのPlug-inで再生ができます。これだとHTMLへの組み込みやJavascriptの制御ができません。
Flip4MacはQuickTimeの追加デコーダーとして動作するのでQuickTimeを埋め込んでWMS上のURLを指定すればHTMLの組み込みおよびJavaScriptによる制御は可能です。
当然QuickTimeなのでWMPとはjavascriptの文法は変わります。
検証したときのHTMLは以下みたいな感じです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>MAC WMVテスト</title>
</head>
    <script language="JavaScript">
 <!--		
function play()
{
    document.movie1.Play();
}
function stop()
{
    document.movie1.Stop();
}
function pause()
{
    document.movie1.pause();
}
function speed(rate)
{
    document.movie1.SetRate(rate);
}
function currentPosition()
{
    alert(document.movie1.GetTime() / document.movie1.GetTimeScale());
}
function SetPosition(min)
{
    document.movie1.SetTime(min*60*document.movie1.GetTimeScale());
}
function volume(num)
{
    document.movie1.SetVolume(num);
}
function display1()
{
    document.movie1.width=480;
    document.movie1.height=400;
}
function display2()
{
    document.movie1.width=480*2;
    document.movie1.height=400*2;
}
function inPoint()
{
    document.movie1.SetStartTime(document.movie1.GetTime());
    document.movie1.Play();
}
function outPoint()
{
    document.movie1.SetEndTime(document.movie1.GetTime());
    document.movie1.SetIsLooping(true);
    document.movie1.Play();
}
		
 //-->
 
 </script>
<body>
QuickTime+Flip4MacによるWMSからのストリーミング再生テスト<br>
<div>
<embed src="WMVファイル名" type="video/quicktime" pluginspage="www.apple.com/quicktime/download"
 name="movie1" enablejavascript="true" height="200" width="480" scale="aspect">                           
<param name='SCALE' value='aspect' />
</div>
<p>JavaScript Controls:<br> 
    <a href="javascript:play();">Play</a> 
    <a href="javascript:pause();">Pause(QTではSTOP=pause)</a> 
    <a href="javascript:stop();">Stop</a><br> 
<br> 
    <a href="javascript:speed(1);">x1.0 speed</a> 
    <a href="javascript:speed(1.5);">x1.5 speed</a>    <a href="javascript:speed(2);">x2.0 speed</a><br> 
<br> 
    <a href="javascript:display1();">x1 size</a> 
    <a href="javascript:display2();">x2 size</a> 
    <a href="javascript:fullscreen();">最大化</a><br><br> 
    <a href="javascript:currentPosition();">位置取得(秒)</a> 
    <a href="javascript:SetPosition(5);">5分にジャンプ</a><BR>   
    <a href="javascript:volume(10);">volume 10</a>   
    <a href="javascript:volume(50);">volume 255</a>   
    <a href="javascript:volume(100);">volume 1000</a><BR>   
</p> 
</body>
</html>

動くことは動くのですが、以下の制限があります。

  1. ストリーミングというよりはプログレッシブダウンロードのような動きをするため、シークが読み込まれているところまでしかできない。
  2. WMPに比べて時短再生時の音声が悪い。

1-5分程度の映像であれば使えるかもしれませんが、FireFoxWMPプラグイン同様に商用レベルではちょっと厳しいですね・・・
ちなみに検証はSnow Lepardで行いました。