おはよー。週末はあゆみさんに嫌がられながらも「いかにしてリビングのテレビで快適にニコ動/ニコ生を見るか?」という課題にdeep diveしていました。惜しいところまで来ているので頭の整理がてら一旦まとめ。 (08:11 twiccaから)
まず、恐らく最も簡単で確実なソリューションは「HDMI出力の付いたリビング用PCをもう一台買う」なんですが、こないだiMac買ったばっかりなので無しで。あゆみさんには「だったらiMacじゃなく最初からTVに繋がるPC買えば良かったじゃない」とツッコミを受けました。ごもっとも…。 (08:16 twiccaから)
そうすると必然的に、手持ちのクアッドコア最強iMac(<…)とリビングのテレビに繋がったPS3で何とかするしかありません。ちなみにPS3のブラウザでもニコ動/ニコ生とも見られますが、処理能力が足りないのかコマ落ちが激しいです。これがスムースに再生できるものだったら楽だったのに…。 (08:20 twiccaから)
TV側がPS3となるととれる手段は極めて限られていて、この場合DLNA位しかありません。ご存じの通りPS3はDLNAクライアントとしてLAN内メディアサーバの動画などをストリーム再生することができます。この機能をうまく使えないか? (08:25 twiccaから)
ここで、この間初めて知った「Macでは付属のQuickTime Playerで画面をリアルタイム録画できる」機能が浮上してきます。iMacで再生→QT Playerで録画→それをDLNAでストリーム送信→PS3で再生、で行けんじゃね?これで勝つる!(ヲタクですみません) (08:30 twiccaから)
ちなみにLionさんになってから、「画面の指定した領域のみ録画」が出来るようになってますます便利になりました>QT Player。それはともかく、基本その方針で行くことに決め、Mac用のDLNAサーバを早速調査し始めました。 (08:35 twiccaから)
いくつか選択肢はあるようでしたが、ここは色々融通が利きそうでおうちサーバでも使い慣れたMediatombを選択。良さゲなバイナリパッケージは無さそうだったのでMacPortsで入れました。それにしてもうちのMacはほんとMacとは思えないくらいターミナルの稼働時間が長いな…。 (08:39 twiccaから)
単なるPS3向けDLNAサーバとして動かすだけならグーグル先生に聞けば山ほど情報出てくるので簡単です。さてその次のアクションとして、まずはMediatombに慣れる意味も含めて、先日も書いた「PS3はQuickTime(mov)形式に対応してない」問題をやっつけよう。 (08:43 twiccaから)
Mac上のQuickTime movie(.movなムービー)をPS3で再生するには、そのムービーをPS3で再生可能な形にtranscodeしてあげればヨロシ。Mediatombにはリアルタイムでトランスコードをかけられる機能があって、これまたG先生に聞けばいろいろ出てきます。 (08:47 twiccaから)
(技術面の詳しい情報はそのうちブログの方にまとめます。) 僕はトランスコーダとしてMacPortsの依存アイテムとして一緒に入ったffmpegを使い、ビデオストリームは基本copy(最近は何でもH.264になりつつありますので)、オーディオストリームはAC3 256Kbpsに、 (08:51 twiccaから)
コンテナ(フォーマット)はmpegtsを選択しました。これらはおうちサーバで快適にDNLA経由でPS3で再生できているXR500Vのはき出すAVCHD(m2ts)ファイルを参考にしました。リアルタイムトランスコードとはいえ音声しか変換していないので我が家の最強iMacの敵では(略 (08:56 twiccaから)
さて、無事にPS3からQuickTime形式のムービーが再生できるようになったところでいよいよ…とその前に、QT Playerの画面録画では音声はいわゆる音声入力系(ラインやマイク入力)からしか録れません。つまりそのままでは「PCで鳴っている音声をそのまま録画/録音」できません。 (09:08 twiccaから)
なので、何らかの手段でPCからの出力を入力へloopbackしてやる必要があるんですが、ここで物理ケーブルでライン出力→ライン入力接続せずとも、ソフト的にそれを行う著名なツール、「soundflower」がありました。ボリューム調整がなんだかちと難しいですがとりあえず使えてます。 (09:13 twiccaから)
さてようやく全ての準備が整った、ということでいよいよテストです。手順としては、1)soundflowerスタンバイ、2)とりあえずブラウザでニコ動の適当なページを開く、3)QT Player起動→画面収録開始(音声入力に注意)、4)Mediatombに録画ファイルを認識させる、 (09:18 twiccaから)
5)ムービーを正しいところから再生(ごちゃごちゃやっているところが写り込むので)、6)DNLA経由でPS3で再生、となります。全て正しく設定できていれば、スムースなニコ動がリビングで見られるはず。 (09:22 twiccaから)
この週末ここまでやっていたわけですが、実際にやってみると致命的な問題がひとつありました。書き込み中のmovファイルを読んで再生、は問題なくできたんですが、PS3での再生が「再生開始時に書き込み完了していた時点」で必ず停止してしまうのです。うーんこれではストリーム再生できない。 (09:27 twiccaから)
ただこれは考えてみると当たり前で、トランスコードに使っているffmpegはログによると通常のファイルとして元の書き込まれ続けているファイルをオープンしています。つまり「書き込まれ続けているので待つ」ような実装にはなっていないわけです。うむ。 (09:32 twiccaから)
そんなわけで残った課題はここ、「いかにしてffmpegに書き込み中のファイルを待たせるか?」ですな。パイプを使うかソースに手を入れるか、いろいろ方法は思い付きますが一番お手軽な方法を探ってみたいと思います。 (09:35 twiccaから)
一通り動くようになったらブログにまとめておきたいと思います。朝から濃いい連投すまんしたっ! (09:45 twiccaから)
どうしても月曜出社一発目はマウスホイールを逆に回してしまうなぁ…。いっそ会社PCも全部そうしちゃうか!(出来るのか?) (09:58 webから)
マウスホイールの反転について、Ubuntu worldは$HOME/.Xmodmapに「pointer = 1 2 3 5 4 6 7 8 9 10」と書いておくことで次回login時から無事反映されたんですが、なぜかターミナルサーバクライアント中のWindowsは元のまま…(涙 (13:08 webから)
Vectorにはマウスホイール動作をひっくり返すユーティリティがたくさんあるようなんですが、このうちどれがイケてるのかを調べるのが面倒…> http://t.co/HCImeSG (15:28 webから)
偉い人飲み会おしまい。お酒も料理もとても美味しかったけれど、やっぱり僕はワインよりビールの方が好きだなぁ。ちと悪酔いしそうな雰囲気…。 (22:32 twiccaから)
うは、「ねこみみスイッチ」の俺的癒し効果絶大。 (22:36 twiccaから)