Firefoxでニコニコ動画のFlashのフレームレートが落ちる現象をfixするグリモン

※(更に追記)新プレーヤーの実装により、カクカクは改善された模様です。このスクリプトの導入の必要はありません。
※この設定でフレームレートは改善されますが、コメント入力欄に日本語入力すると文字化けします。(コピペなら入力可能)


Firefoxでのみ確認しているので、他のブラウザでもあるかもしれません。
ニコニコ動画などを見ていて「ちょいカクカクだなぁ・・・」*1と思っていたら、「すげぇヌルヌル!」なんてコメントが付いていたりして、落として外部プレーヤーで見てみると滑らかに動くことがこれまで多々ありました。


CPUもメモリも50%以上空いてるのでスペック不足ということは考えにくく、ブラウザとFlashの親和性が悪いんだろうなーと半ば諦めていたところ、少し調べてみたらこのページ→http://3ping.org/2004/05/15/1441を発見。
どうやらFlashのattrで'wmode'を'opaque'に設定すればフレームレートが落ちなくなるようです。transparentでも改善しますが、心なしか重かったのでopaqueにしました。
既知のバグとしてwmodeを指定すると入力が文字化けする現象があるので、コメント入力を快適にするか、フレームレートを取るか、といったところでしょうか。


ニコニコ用にグリモン書いたら快調なので公開します。是非試してみてください。
http://userscripts.org/scripts/show/77884
他のサイトでもこういう現象があるかも。出来ればFlash再生側の設定で強制的に一括変更出来ればいいんですけどね。
Flashとブラウザって結構密接な関係にあるんだから、お互い仕様をすり合わせるなりしたらいいんじゃないかと思いました。


文字入力の不具合に関しては、簡易的な外部コメント入力フォームを追加するようにしてあります。邪魔なら、下記の指定箇所をコメントアウトすればいいです。代わりにコメント入力支援のグリモン(ex.ニコニコ動画ダウンロードスクリプト)を入れるなどしてもいいかも。

// ==UserScript==
// @name           NicoNico Framerate Fix
// @namespace      http://htn.shak.jp
// @description    sets Flash attribute: 'wmode'='opaque' and add alternative comment input area for multibyte garble problem.
// @include        http://www.nicovideo.jp/watch/*
// ==/UserScript==


(function(){
	var b = document.getElementById('PAGETOP');
	document.getElementById('flvplayer').setAttribute('wmode', 'opaque');
	b.innerHTML = b.innerHTML
	
	var c = document.createElement('input');
	c.setAttribute('size','40');
	c.setAttribute('id', 'altComm');
	c.setAttribute('onKeyUp', "document.getElementById('flvplayer').ext_setInputMessage(document.getElementById('altComm').value, '')");
	var f = document.getElementById("WATCHFOOTER");
	f.insertBefore(c, f.firstChild); //Comment out this line if you don't need alternative comment input area.
})();

*1:見れるレベルではあるんだけど、少しフレームレートが足りない