2008/01/24 ■ 再生キタ! Xでつぶやくこのエントリーをブックマークに追加このエントリーを含むはてなブックマーク


仕様書みながらちょっと真面目にMPEG/TSのdemuxをしてみました。とりあえずPESを取り出すところまでは思ったより難しくはなく、なんとか再生できるデータを生成することに成功!
いまはまだGUI(やWebインタフェース)を作ってないのでコマンドラインで起動する必要がありますが、「○月○日○時○分○秒から○時○分○秒、○チャンネル」と指定するだけで普通に再生できるMP4ファイルを生成するところまでこぎつけました。

で、最初に変換したのが…

リメイク版ヤッターマン(笑)
本腰入れてこのシステム作り始めたきっかけが「ヤッターマン見逃した」ことだったwので、無事(?)雪辱を果たしましたよw
…って実際、さっきテストを始めるまで第二回放送をまた「撮り逃していた」ことに気づいてませんでした。あぶないあぶない。あってよかった24時間全局録画。

んで、この30分番組を(全録画データベースから切り出して)MP4ファイルに変換するのにかかる時間は15秒。再エンコ要らないってのは本当に便利。
そしてPC(VLC)やPSP・PS3などでそのままコピーするだけで再生可能…のはず。
…って、とりあえずPCで再生できて喜んでたらPSPでは音と絵がずれまくるわPS3では再生始まってくれないわでズタボロでした(><)


映像ストリームと音声ストリームのそれぞれ開始時の音ズレは自動補正するようにしたんだけど、どうも映像のフレームレートの処理が何かまだ変みたいです。日テレやフジテレビなんかは素直に行くのに東京MXはずれまくるとか。
でもここまでキタらさすがに先が見えてきた感じするなー。はやいとこネット越しに過去の番組ストリーミングしたい!

2008/01/23 ■ 24時間全局録画 Xでつぶやくこのエントリーをブックマークに追加このエントリーを含むはてなブックマーク


というわけでここ2日ほど、ほぼ24時間(開発時の停止除く)東京キー局全部(+おまけ東京MX)のワンセグ放送をノンスクランブルで録画しております。だいたい1日30GBほどになるみたいというかそのまんま計算通りですな。

さっそくいろいろと周囲に話を振ってみると
「○○でコストコ(会員制スーパー)が紹介されてたよ」
と言われればその番組を再生できるし
「今日の番組で面白かったの?○○かなぁ」
と言われればその番組を引っ張り出せる。うーん、これはすごい。想像はしていたがやはり凄い。「見逃す」とか「見てないので話題に乗れない」という概念が根本から無くなる。そこまでテレビに依存しているつもりはないんだけど、それでもこれはグっとくる。

4年以上前からいまだに現役でコクーン(CSV-EX11)を愛用してますが、それを超える「チャンネルサーバー」感がいままさにここに。
高すぎて手が出なかったXビデオステーションが我が手の中にw

…って、まだ録画だけしかできてないんだってば。喜ぶのはまだはやいー('A`)
○月○日○時○分○秒から○時○分○秒まで、と指定するだけでその部分のデータを切り出すプログラムは既に完成。
あとは切り出された生データ(TS)から再生可能なデータを作り出せば終わり…なんだけどなー。

今はまだElecard XMuxerなどを使ってちまちま手作業でやっています。
そろそろ(今まで逃げてたけど)MPEG/TSのデコードを自前で「ちゃんと」やらなきゃいかんみたいです…。

2008/01/22 ■ 「24時間ワンセグ野郎」(仮) Xでつぶやくこのエントリーをブックマークに追加このエントリーを含むはてなブックマーク

録画側アプリを少しブラッシュアップ。
テスト用アプリ(単局録画)をチューナーの数だけ起動してたのを改め、少しマトモに作り直しましたw
あと、CPUパワー食いそうな部分を手直ししてみたりもしてみたけど…。シングルスレッドで回すように変更した結果、見てのとおりの偏りっぷり(´・ω・`)になってしまった。そのわりには平均CPU利用率はあまり落ちてない。。。やっぱ8局録画ともなるとこれくらいは覚悟しないといかんのかー。くそー。
(テストマシンはDualCore Opteron 1.8GHz×2 )

それとチューナー制御の安定性も少し向上して、だいぶ安定して録画できるようになってきました。
…って、いやだから録画は順調なんだよ録画は(´・ω・`) 再生どうすんだって話ですな。


最後に。相変わらずのベタベタなネーミングについては見なかったことにしといてください(´・ω・`)

2008/01/21 ■ 格安チューナ UOT-100まとめ Xでつぶやくこのエントリーをブックマークに追加このエントリーを含むはてなブックマーク

と、ちまちま解析したりしていたのを公開するぞと決めたので
とりあえず現状わかっていることを簡単にまとめてみる。

【格安チューナUOT-100現状まとめ】

・韓国製格安チューナ。最安値はたぶんあきばお~通販(2780円。店頭だと2800円)。他のショップでも3800円くらいで超安いチューナーといえよう。
倒産してしまったSEAGRAND製。数ヶ月前に膨大な数の倒産処分?があったようで一気に格安で流通した。…という経緯のシロモノなので、2008年1月現在流通在庫を残すのみだと思われる。ただ結構な量流通はしている。
・感度はぶっちゃけ悪い。付属ソフトもあまり使い勝手は良くはない。(でも付属ソフトは使う気Nothingなので無問題)


【技術的な話・チューナ編】

・マイコンはSilicon LaboratoriesのC8051F342。チューナはAnalog DevicesのMTV211
SnoopyProでUSBの通信を覗いてみたら、単にPCからは生のチューナ制御コマンドを投げて、チューナからは生のTSデータを受け取っているだけ風
・どれどれと思ってドライバ見たら、なんてこった!付属CD-ROMのUSBドライバ、USBXpressの標準ドライバそのものじゃんか!(笑)
・ためしにUSBXPressのSDK使って、USBXpressのAPIをそのまま素で叩いてみたら、なんてこった!あっさり生TSデータがそのまま取れたぞ!(笑)標準添付のドライバを生かしたまま(標準アプリ起動すればすぐテレビは見られる)生TSデータ録画アプリが作れるじゃんかw
・他社ワンセグチューナではさすがにそこまでの手抜きは無いようで、どこも独自のUSBドライバ作ってるみたい。ある意味UOT-100はFriio並の神チューナーの予感w
・しかし「多局同時全時間録画」を実現するためには、「複数端末の同時使用」が必須。これがどうにもうまくいかない。チューナ2本差してもSI_GetNumDevicesで1って言われちゃう。なんで?
・→どうやらSerial Numberが全部「1234」固定になっているのがいかん模様(どんな手抜きだよ!)。→しょうがない、じゃあ書き換えよう。
・UOT-100の基板上に、C8051の書き換えに必要なC2 Interfaceがパッドで出てるみたい。とりあえずGND/C2D/C2CKの3本繋げばフラッシュの読み書き可能だった。パッドとピンの関係は基板見れば一目でわかる(上記写真参考)
・Serial Numberを端末ごとに変えてみたら、案の定SI_GetNumDevicesで2以上の値を返すようになった。けど、複数端末を同時にSI_Openしようとすると2台目以降がエラーになる。
・→PIDも変更して「別のデバイス」だと認識させると複数端末同時Openできるみたいなので、PIDも端末ごとに変更することにする。行儀悪いけど。
・Serial Number/PIDともにC8051の0x1000~0x11FFのブロックにあります。Serial Numberが0x111F~0x1124(Unicodeテキスト)、VIDが0x10DD~0x10DE、PIDが0x10DF~0x10E0。

【技術的な話・放送編】

・だいたいどの放送局もTOT(Time Offset Table)パケットという時刻情報を5秒ごとに送信しているみたいなので、その時刻情報をベースに番組の切り出しとかをやればよさそう
・でも電波の状態が悪いと結構化ける ^^; CRCチェックは忘れずに
・ワンセグには(通常の放送では必須の)PAT(Program Association Table)やPMT(Program Map Table)が無い??(よくわかってない)
・↑そのため既存のffmpegやMP4BoxといったDemuxerが使えなくて困ってたりする。XMuxerではDemuxできる
・ワンセグのTSからDemuxしたH.264とAAC(HE-AAC)を、そのままMP4BoxでMP4ファイルにMuxしたファイルは…
 →Flash9のH.264ストリーミング再生→できた!
 →PS3で再生→できた!
 →PSPで再生→一瞬できたけど止まってしまった(´・ω・`)要研究

■ 再起動 Xでつぶやくこのエントリーをブックマークに追加このエントリーを含むはてなブックマーク

すっかり放置気味のサイトMobileHackerzですが(ごめんなさい!)
ぼちぼち再起動…できるかな?

2005年の窓の杜大賞をいただいたあたりから個人的にもいろいろと激動がありました。引越しするわ子供が生まれるわでもうえらいことに。
いままではあえて個人のプロフィールはなるべく表に出さない方向でやってましたが、今後はちょっとスタンスをかえて(身の回りのことも含めてテキトーに書きつつ)気軽にやっていこうかなと。あんまり生真面目にやってても続かないし。
最近手がけはじめたオバカな新プロジェクトの記録から再開していこーかと思います。

■ 究極のテレビ録画ソリューション(3) Xでつぶやくこのエントリーをブックマークに追加このエントリーを含むはてなブックマーク




録画側はだいぶできてきました。
前回「複数チューナを同時に認識しない」と言っていたのは、チューナに振られているシリアル番号が全部「1234」固定 ^^; なのが原因でした。シリアル番号の意味ねぇよw
そこでチューナ内蔵マイコンのファームウェアをいじって解決。シリアル番号だけ変更すれば複数チューナは認識することは認識するんだけど、PCドライバ側の問題も含め個体ごとにPIDも変えてしまったほうがよさそうなので(←これはあんまり褒められたことじゃないけど)、シリアル番号とPID を端末ごとに書き換えてます。
一応「カンタン書き換えツール」のようなものも作ったけど、この作業が必要になったことでちょっと(一般利用者の)ハードルが上がったのが残念といえば残念。


で、8局(NHK,教育,日テレ,TBS,フジ,テレ朝,テレ東,おまけで東京MX)同時録画。動いてます!
でも予想していたよりCPU利用率高い。メインマシンで8局録画時17%~20%くらい。1局だと0%なんだけどねぇ。なんかソフト側が悪いような気もするので要検討。

あとは、アンテナの接続が悪くて非常に感度がよろしくない(とりあえず繋ぎゃ映るだろと思ったらさすがにダメだ(笑))のとか、エラーチェックを全然してなくてヘンなデータになることがあるのとか、そもそも再生側がまだぜんぜん手付かず(これも予想外にめんどくさい…。日時指定すると該当部分の生TSデータを切り出す、ってとこまではできてるんだけど)だったりとか

まだまだ問題山積('A`)だけど着々とすすんでますよー。

2008/01/17 ■ 究極のテレビ録画ソリューション(2) Xでつぶやくこのエントリーをブックマークに追加このエントリーを含むはてなブックマーク


「ワンセグの生データっぽいものが吸えた」→「再生できねー!ちゃんと吸えてるかどうかすらわかんねー!」
という状態でちょっと萎えて放置状態だったこのプロジェクト


 う あ

 新 作 ヤ ッ タ ー マ ン 今 日 だ っ た っ け !

 見 逃 し た !


という事件(笑)が一昨日あり、「やっぱり全時間全チャンネル録画しとくべきだよなw」と
あらためて思い直して再起動(ぉ

とりあえずあらためてごにょごにょやってみたところ
先日のプログラムでどうやらokな様子。
吸ったデータを無事再生できました!

まだ再生手順の中にプロプライエタリなソフトがあるので道半ばもいいとこだけど
「正しく生データを吸えている」ということが確認できたというのは大きな一歩。

垂れ流し録画そのものは結構簡単なのであとは再生ソリューションを作りこむだけですな。

ただ今んとこUSBチューナ2本以上を同時に認識してくんないのが難点
ドライバ的には対応しているはずなんだけどなー。