Xbox360かPS3か、はたまたApple TVか
genre:AV,diary
高解像度TVを買ったので、こいつでDVDとかPC内の動画とか音楽を視聴したいわけですよ。しかし、Macをいちいち繋げるのは面倒だし動画ファイルは外付けストレージに保存されているしリモコンも使いたいしということで、いわゆるセットトップボックスがあると便利じゃね?とか思ってきた。
とりあえずMac信者(笑)としてはまずApple TVを検討したいところなんだけど、残念なことにこいつはDVDドライブを搭載していない。DVDを見る場合、わざわざリッピングしなきゃならなくて面倒っぽい。iTunesとの連携とかは楽そうだけど、対応フォーマットが少ないのも難点だなぁ……、来年DVDドライブ付きApple TVが出るとかいう噂もあるしそれ待ちかな、とか思っていたわけですが、良く考えたらXbox 360もPS3もApple TVとたいして値段が変わらないことに気付く。
さぁどうしよう。残念ながら自宅にはWindowsマシンはなく、MacとLinuxだけだ(MacBookのデュアルブート用に1ライセンス買ってはいるがインストールしてない)。Apple TVならハマる心配はないし、ユーザーインターフェイスも使いやすそうだ。ただ、再生できるフォーマットの制限が厳しい。動画は基本的にH.264ベースになりそうだし、なんといってもDVDを直で再生できない。
一方、Xbox 360やPS3ならOSSのサーバが利用できるので、ハマる可能性はあるが多分動画・音楽の再生はできる。ただ、我が家でもっとも消費電力が大きいLinuxサーバを稼働させておく必要がある。あと、Mac内のiTunesライブラリを便利に利用できるかは微妙だ。
Xbox 360とPS3で比べると、現時点ではXbox 360のほうがほしいゲームが多いけど、PS3はPSPとの連携機能があるし、BDドライブの存在もデカイ。ただ、廉価モデルではPS2のゲームができないんだよね……。
Xbox 360でPS2のゲームができて、BDも読めれば最強なんだけどそうは問屋がおろさないだろうしw、非常に悩みどころではありますなぁ・・・。とかいってXbox 360を多分買ってしまうのだが。
何とかして安価に地デジを録画したい件について
genre:hack,digitalAV
いくら見たいテレビ番組があるといっても、その時間に家でゆっくり見られる可能性はかなり低いわけで、地デジを楽しもうとするとなんらかのタイムシフト機能は(自分としては)必須。
ところが、Amazonとかヤフオクとかでデジタル対応のHDDレコーダを探すと最低でも3万とかしやがるんですよ。VHSデッキだったら、1万円で買えたのにナニこのインフレ。
ということで、できるだけ低価格に地デジを高画質で録画するための方法を考えてみる。
【案1】I・O DATAの「 Rec-Pot 」を中古で買う
HDD容量にもよるけど、1万円台中ごろくらいから入手できそう。つなぎで買って、将来的にBDレコーダーとかにムーブするということもできる。ただ、HDDが換装できないっぽいのでHDDがへたってる可能性があるのが危険。HDDをなんとか換装できればかなりコストパフォーマンスは高い。
【案2】D-VHSデッキを中古で買う。こちらも1万円台中ごろくらいから入手できそう。こっちならとりあえず記録メディアの劣化は(数年なら)考慮しなくてよさそうだし、将来低にほかのデバイスへのムーブも可。しかし、いまさらテープメディアはちょっとしんどいかな・・・
【案3】Friioを買う。いろいろとアレゲですが、(B-CASの差し替えが面倒ということ以外は)すべての問題が解決。でもアレゲすぎ。
【案4】デジタル録画をあきらめる(汗)。現在使ってるアナログのビデオキャプチャにSビデオ出力して録画。画質以外のすべての問題が解決(笑)。
【案5】おとなしくハイビジョン対応HDDレコーダーを買う。絶対たまにしか使わないのでコストパフォーマンスは極悪・・・
【案6】死に物狂いでDTCPをクラックするw。できれば苦労しないってorz。まだRec PotのHDD換装のほうがハードル低そうだ。
ほんと不毛だなー、地デジ。
地デジ録画とコピー制限
genre:digitalAV,opinion
最近、地デジが見られるテレビを買ったんですよ。そんでもって、よく見たら「iLink(TS)」という端子がついているのね。で、とりあえずMacと繋いで「VirtualDVHS」という、FireWire経由でデジタル放送データをやり取りできるソフトを立ち上げて録画できるか試してみたんだけど、当然ダメなわけですよ。
もしこれで録画できれば、別に高価なHDDレコーダーとか買わずにずっと高機能で大容量のストレージを持つパソコンで簡単に動画を管理できて幸せだったのに、とか思いましたとさ。
しょうがないので地デジ対応のHDDレコーダー買っちゃおうかなーとか一瞬思ったんだけど、それで録画したところでできるのは内蔵HDDへの保存と光学メディアへのムーブだけなんだよね。
結局そのままではレコーダーと繋いだテレビでしか再生できないし、ほかの機器で再生するためには光学メディアにムーブしなきゃならない。
PCユーザー的には、ネットワークに置いたHDDにデータをため込んで、こっちの部屋のテレビでもあっちの部屋のテレビでも、ノートパソコンでもPSPでも自由に見たいわけですよ。HDDで通常のファイルとして管理できればバックアップも簡単だし、形式変換も簡単に行える。
テレビは普段あまり見ないので実のところ別にHDDレコーダーはいらないのだけど、たまにとても見たい番組、保存しておきたい番組があったりする。好きなバンドのライブとか、好きな監督や作家のインタビューとか。こういうのってセルメディアでは発売されないことも多いんだけど、現行の方式では録画しておいて趣味の合う友達の家に持って行って皆で見たり、録画機器何代にも渡って便利な形(=HDDに録画された形)で保存しておいて好きなときに簡単に探し出せて見られる、というのは難しい。
今度気になっている監督やその関連スタッフのインタビュー番組が放送されると聞いたので、「これはぜひ録画して保存しておかなければ!」とか思ったんだけど、実は地デジでは保存したところで半永久的に手元に残すことはできないと気付いて見る気まで低下しちゃいましたよ。HDDなんていつクラッシュするか分からないし、かといってDVD-RやBD-Rに書き出したら今度は場所もとるし不便になる。
確かに、「コンテンツをタダで見せてやってるんだから我慢しろ」というのは正論なんだけど、じゃあ金払うから自由に見させてくれ、管理させてくれ、とも言いたい。テレビの全番組を自由にコピー制限なしに管理できるのなら、そこそこの対価、携帯電話代程度なら払ってもいいくらいだ。「ダビング10」の議論で、「EPN形式にしろ」とか「いや、コピーワンス+ダビング9回だ」とか、制限を前提に話は進んでいるけど、少なくとも自分が望むのは「コピーフリー」だ。別にコンテンツを好き勝手にばらまきたいワケじゃないし、タダでほしいわけでもない。コンテンツを自由に「所有したい」だけなんだ。
続・テンプレートエンジンの仕様
genre:programming
ループ、条件分岐のあたりを再考。
・「[% foreach $var in @配列名 %]」?「[% end foreach %]」でループ。$varに@配列名の要素を次々と代入して繰り返す
・「[% if $var %]」?「[% else %]」?「[% end if %]」でif?else?型条件分岐。$varがtrueならelseまでを適用、flaseならelse以降を適用
コメント関係を追加。
・「<–$」「$–>」は無視。テンプレート実行時には除去される
・「[% #ほげほげ %]」はコメント。テンプレート実行時には除去される
最低限の組み込み関数。
・「[% include ファイル名 %]」で指定したファイルをinclude。includeされたファイルはParseされてその場所に挿入される
・「[% insert ファイル名 %]」で指定したファイルを挿入。insertでは指定したファイルはParseされない
コメント関係は、例えばHTMLエディタでTemplateを作成する場合の便宜を考えたもの。例えば
<b>[% if $var1 %]OK![% else %]NG![% end if %]</b>
というHTMLの場合、HTMLエディタでは
[% if $var1 %]OK![% else %]NG![% end if %]
と表示されてしまう。この場合、
<b><!--$ [% if $var1 %] $-->OK!<!--$ [% else %]NG![% end if %] $--></b>
や
<b>[% if $var1 %]OK!<!--$[% else %]NG![% end if %]$--></b>
と書けば、
OK!
とか
[% if $var1 %]OK!
となって分かりやすい、かも。
簡易テンプレートエンジンの仕様を考えるメモ
genre:memo,programming,perl
Perlで簡易的な、でも実用に耐えるHTML用のテンプレートエンジンを作るための仕様を適当に考えてみる。
●Parserエンジン仕様
# パーサーオブジェクト生成
$p = new TinyHTMLParser();
#テンプレートと変数を渡してParseする。
#変数($vars)は参照の形で渡す。
#テンプレート($template)はファイル名かfopenで開いたファイルのグラブか生テキストデータ。
#戻り値はテンプレートに変数を適用した結果。
$html = TinyHTMLParser()\%vars, $template);
・変数は%varsの要素として渡す。スカラーと配列を渡せる
●テンプレート仕様
・「$変数名」は引数に与えた変数(スカラー)で展開される
・「$$」は「$」に展開される
・「$変数名」がハッシュへの参照の場合、「$変数名->要素」で「要素」という名前を持つ要素にアクセスできる。ただし、「$変数名->要素->要素」という表現は禁止。
・「<!–foreach $var in @配列名–>」?「<!–end foreach–>」でループ。$varに@配列名の要素を次々と代入して繰り返す
・「<!–if $var–>」?「<!–else–>」?「<!–end if–>」でif?else?式条件分岐。$varがexistならelseまでを適用、not existならelse以降を適用
以上。TemplateToolkitのサブセット版みたいな感じだね。原則として、内部データを直でテンプレートに適用するのではなく、表示用のデータに変換してからテンプレートに適用することを想定。
分岐を「<!– –>」で囲むのは、HTMLとして見たときに解釈しやすくするため。開始/終了タグは変更可能。