次のhtmlにファイルシステムから直接アクセスすると、正しい期間が得られます。
<video src="multimedia/bbb400p.ogv" id="v"></video>
<button onclick="alert(document.getElementById('v').duration);
document.getElementById('v').play()">Play</button>
ただし、mongrel Webサーバー(私のマシン上およびherokuクラウドサービス)を介してアクセスすると、NaNが得られます。
また、「canplay」イベントのリスナーを追加し、サーバーを使用してNaNの期間を取得するテストコードも作成しました。
これはFireFoxとChromeで発生します。
どんな助けでもいただければ幸いです。