あいかわらず超実験版ですが(´・ω・`)→OneSeg24_002.zip
・安定性をちょっと改善。特に高負荷時に落ちにくくなった…かな?
・OneSeg_ExtractとOneSeg_Jumperでtvtlファイル(Xvideo形式)に対応
テレビブログで配信されているtbfのほかにtvtl(Xvideo形式)にも対応しました。
通常はtbfクリックで番組全体、tvtlの"Play"クリックでトピックのみの抽出になります。.iniでTVTLtopic=0とするとtvtlでも番組全体を抽出します
ワンセグサーバ専用機は結局Pen3/650Mhzでは耐えられなかったので(バックグラウンドで抽出プロセスが動くと放送のパケットを取りこぼしてしまう!)別のジャンク機(Pen3M/1.13GHz)に移しました。さすがに録画は安定してます。
それと、懸案の「UOT-100を複数認識させるためのファームウェア書き換え」ですが、いちおう「ダイヤルでID決めて繋ぐだけで勝手に書き換えてくれる機械」(Modチップと言えばいいんだろうか…)というのを作ればちょっとは楽になるかなとか思って作り始めています。(もともと自分で自分のUOT-100書き換え用に作ったツールもこんな感じだったんですが、他の人が使うことも考えて安いマイコンに載せかえてるところです(笑))
ただなかなかUOT-100の書き換え用パッド部分にカンタンに挟めるいいクリップが見つからない ^^; と、なんだか妙なところで進捗が引っかかってたりします。
2008/01/27 ■ 大阪府知事に橋下氏当選
大阪府知事に橋下氏当選。…ということそのものに対しては特にコメントすることはないしコメントするつもりも全くないんですが(技術マニアなのでw)、ワンセグサーバのテストもかねて各局の速報タイミングなど並べてニヤニヤしてみました。上からNHK(20:45)、日テレ(20:00)、TBS(20:00)、テレ朝(20:01)。フジテレビは速報打たなかったのかな?ざっと流し見では見つからなかった。
「このとき他の局はどうだったんだろう」とか、同時多発的なことを見るのにもいいですなぁ。
ただ、現状はライブを見ることができない(最新録画データを追えない)という欠点もあるので、そのうちなんとかしたいですな。
…それと、さっきあげた「現状版」の中でplayer.plがIEで動かなかったことが判明 ^^;
まさか使う人もいないとは思いますが修正しておきました。
■ ストリーミング再生もデキタヨー
というわけでWebからのストリーミング再生もデキタヨー
VLCで再生するより、Flashのビデオプレイヤーで再生したほうがヘンなデータへの耐性が高いのはなんでだ(笑)(※途中で音声のフォーマットが変わるとVLCでは音が出なくなっちゃう)
安定性にまだ課題があるのと、相変わらず一部の局(というかTBSと東京MX)では音と絵がずれちゃうけど、とりあえずここまででいったんのマイルストーン。
USBチューナの接続も、開発機からついに暫定ワンセグサーバ専用機(Pen3 650MHz, HDD 160GBノート)に移しちゃいました。しかしPen3 650MHzではさすがに厳しい(><)録画だけでCPU 30~50%常時回ってます。(でもUSB1.0で帯域足りてる(笑))
荒削りもいいとこだけれども、ここから進捗が遅くなると思われるので現状版置いておきますねー
2008/01/25 ■ そして録画の未来像キタ
コメントでご教授いただいたテレビブログ、こりゃいいですな!本当にありがとう!
おかげで現状まだローカルPCでのみの動作なれど(ネットワーク越しの操作はできないけれど)なかなかいい感じになってまいりました!
過去数日分の24時間全局のワンセグ放送を常にバックグラウンドで録画
(録画アプリはタスクトレイに収まっているので電源だけ入れておけば存在は気にならない。ある程度以上古いデータは自動削除)
で、「あ!あの番組見逃した!」という事態になったら…
このページから見たい(見たかった)放送済番組を選んで
ログのページに「tbf download」のリンクがあるのでクリックする(※ブラウザで事前に関連付けを設定済)
クリックした瞬間に自動的に変換が始まって…(見た目が不細工なのは勘弁(笑) 録画アプリ側はだいぶ見た目も整えたんだけど ^^;)
10秒~1分ほどでデスクトップにMP4ファイルが!
…で、ダブルクリックで再生、と。
ようやく理想とする環境に近づいてきたー。まだ録画マシンローカルでしか使えないけど。(次はネットワーク越しに同じことができるようにしないと…)
現在の課題:
・局によって生成MP4ファイルを再生すると音ズレする。どうも動画部分の尺がバラついているようなので、ひょっとするとフレームレートが場面によって変動しているか何かしているのかも。
・PSPやPS3での再生にまだ難がある。うまくいくときはうまくいくんだけどなー。
・受信状態が悪い番組を生成しようとすると落ちる。上記問題も含めて、H.264の互換性向上どーしよ…。
・まだ局によって音声・映像ストリームのきれいな抽出が仕切れないことがある。CMと本編で音声ストリームが変わるとか反則でしょ(><)
・録画アプリ、生成アプリともにまだでっちあげ状態なので未実装の機能が多い。まだ公開するにはちょっと恥ずかしいレベルかなぁ…。
・これはしょうがないかもしれないけれど、多数のUSB機器(8台のUSBワンセグチューナ)をぶらさげて一気に初期化を行うため、録画アプリ起動時に初期化に失敗したりして受信できないチューナが出てきたりすることがある(USB差しなおさないと復活しなかったりする)。一回動き出せば安定するんだけど。
・PS3でワンセグ生TSが再生できた。(気がつかなかった!)うまくDLNAサーバ組んでやれば、PS3からちょいっと選択するだけで再生という夢の環境になるかも。ただ大画面で見るワンセグはかなりきつい(><)
おかげで現状まだローカルPCでのみの動作なれど(ネットワーク越しの操作はできないけれど)なかなかいい感じになってまいりました!
過去数日分の24時間全局のワンセグ放送を常にバックグラウンドで録画
(録画アプリはタスクトレイに収まっているので電源だけ入れておけば存在は気にならない。ある程度以上古いデータは自動削除)
で、「あ!あの番組見逃した!」という事態になったら…
このページから見たい(見たかった)放送済番組を選んで
ログのページに「tbf download」のリンクがあるのでクリックする(※ブラウザで事前に関連付けを設定済)
クリックした瞬間に自動的に変換が始まって…(見た目が不細工なのは勘弁(笑) 録画アプリ側はだいぶ見た目も整えたんだけど ^^;)
10秒~1分ほどでデスクトップにMP4ファイルが!
…で、ダブルクリックで再生、と。
ようやく理想とする環境に近づいてきたー。まだ録画マシンローカルでしか使えないけど。(次はネットワーク越しに同じことができるようにしないと…)
現在の課題:
・局によって生成MP4ファイルを再生すると音ズレする。どうも動画部分の尺がバラついているようなので、ひょっとするとフレームレートが場面によって変動しているか何かしているのかも。
・PSPやPS3での再生にまだ難がある。うまくいくときはうまくいくんだけどなー。
・受信状態が悪い番組を生成しようとすると落ちる。上記問題も含めて、H.264の互換性向上どーしよ…。
・まだ局によって音声・映像ストリームのきれいな抽出が仕切れないことがある。CMと本編で音声ストリームが変わるとか反則でしょ(><)
・録画アプリ、生成アプリともにまだでっちあげ状態なので未実装の機能が多い。まだ公開するにはちょっと恥ずかしいレベルかなぁ…。
・これはしょうがないかもしれないけれど、多数のUSB機器(8台のUSBワンセグチューナ)をぶらさげて一気に初期化を行うため、録画アプリ起動時に初期化に失敗したりして受信できないチューナが出てきたりすることがある(USB差しなおさないと復活しなかったりする)。一回動き出せば安定するんだけど。
・PS3でワンセグ生TSが再生できた。(気がつかなかった!)うまくDLNAサーバ組んでやれば、PS3からちょいっと選択するだけで再生という夢の環境になるかも。ただ大画面で見るワンセグはかなりきつい(><)
2008/01/24 ■ 再生キタ!
仕様書みながらちょっと真面目に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時間全局録画
というわけでここ2日ほど、ほぼ24時間(開発時の停止除く)東京キー局全部(+おまけ東京MX)のワンセグ放送をノンスクランブルで録画しております。だいたい1日30GBほどになるみたいというかそのまんま計算通りですな。
さっそくいろいろと周囲に話を振ってみると
「○○でコストコ(会員制スーパー)が紹介されてたよ」
と言われればその番組を再生できるし
「今日の番組で面白かったの?○○かなぁ」
と言われればその番組を引っ張り出せる。うーん、これはすごい。想像はしていたがやはり凄い。「見逃す」とか「見てないので話題に乗れない」という概念が根本から無くなる。そこまでテレビに依存しているつもりはないんだけど、それでもこれはグっとくる。
4年以上前からいまだに現役でコクーン(CSV-EX11)を愛用してますが、それを超える「チャンネルサーバー」感がいままさにここに。
高すぎて手が出なかったXビデオステーションが我が手の中にw
…って、まだ録画だけしかできてないんだってば。喜ぶのはまだはやいー('A`)
○月○日○時○分○秒から○時○分○秒まで、と指定するだけでその部分のデータを切り出すプログラムは既に完成。
あとは切り出された生データ(TS)から再生可能なデータを作り出せば終わり…なんだけどなー。
今はまだElecard XMuxerなどを使ってちまちま手作業でやっています。
そろそろ(今まで逃げてたけど)MPEG/TSのデコードを自前で「ちゃんと」やらなきゃいかんみたいです…。
2008/01/22 ■ 「24時間ワンセグ野郎」(仮)
録画側アプリを少しブラッシュアップ。
テスト用アプリ(単局録画)をチューナーの数だけ起動してたのを改め、少しマトモに作り直しましたw
あと、CPUパワー食いそうな部分を手直ししてみたりもしてみたけど…。シングルスレッドで回すように変更した結果、見てのとおりの偏りっぷり(´・ω・`)になってしまった。そのわりには平均CPU利用率はあまり落ちてない。。。やっぱ8局録画ともなるとこれくらいは覚悟しないといかんのかー。くそー。
(テストマシンはDualCore Opteron 1.8GHz×2 )
それとチューナー制御の安定性も少し向上して、だいぶ安定して録画できるようになってきました。
…って、いやだから録画は順調なんだよ録画は(´・ω・`) 再生どうすんだって話ですな。
最後に。相変わらずのベタベタなネーミングについては見なかったことにしといてください(´・ω・`)
テスト用アプリ(単局録画)をチューナーの数だけ起動してたのを改め、少しマトモに作り直しましたw
あと、CPUパワー食いそうな部分を手直ししてみたりもしてみたけど…。シングルスレッドで回すように変更した結果、見てのとおりの偏りっぷり(´・ω・`)になってしまった。そのわりには平均CPU利用率はあまり落ちてない。。。やっぱ8局録画ともなるとこれくらいは覚悟しないといかんのかー。くそー。
(テストマシンはDualCore Opteron 1.8GHz×2 )
それとチューナー制御の安定性も少し向上して、だいぶ安定して録画できるようになってきました。
…って、いやだから録画は順調なんだよ録画は(´・ω・`) 再生どうすんだって話ですな。
最後に。相変わらずのベタベタなネーミングについては見なかったことにしといてください(´・ω・`)
2008/01/21 ■ 格安チューナ UOT-100まとめ
と、ちまちま解析したりしていたのを公開するぞと決めたので
とりあえず現状わかっていることを簡単にまとめてみる。
【格安チューナ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で再生→一瞬できたけど止まってしまった(´・ω・`)要研究
とりあえず現状わかっていることを簡単にまとめてみる。
【格安チューナ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で再生→一瞬できたけど止まってしまった(´・ω・`)要研究
■ 再起動
すっかり放置気味のサイトMobileHackerzですが(ごめんなさい!)
ぼちぼち再起動…できるかな?
2005年の窓の杜大賞をいただいたあたりから個人的にもいろいろと激動がありました。引越しするわ子供が生まれるわでもうえらいことに。
いままではあえて個人のプロフィールはなるべく表に出さない方向でやってましたが、今後はちょっとスタンスをかえて(身の回りのことも含めてテキトーに書きつつ)気軽にやっていこうかなと。あんまり生真面目にやってても続かないし。
最近手がけはじめたオバカな新プロジェクトの記録から再開していこーかと思います。
ぼちぼち再起動…できるかな?
2005年の窓の杜大賞をいただいたあたりから個人的にもいろいろと激動がありました。引越しするわ子供が生まれるわでもうえらいことに。
いままではあえて個人のプロフィールはなるべく表に出さない方向でやってましたが、今後はちょっとスタンスをかえて(身の回りのことも含めてテキトーに書きつつ)気軽にやっていこうかなと。あんまり生真面目にやってても続かないし。
最近手がけはじめたオバカな新プロジェクトの記録から再開していこーかと思います。
■ 究極のテレビ録画ソリューション(3)
録画側はだいぶできてきました。
前回「複数チューナを同時に認識しない」と言っていたのは、チューナに振られているシリアル番号が全部「1234」固定 ^^; なのが原因でした。シリアル番号の意味ねぇよw
そこでチューナ内蔵マイコンのファームウェアをいじって解決。シリアル番号だけ変更すれば複数チューナは認識することは認識するんだけど、PCドライバ側の問題も含め個体ごとにPIDも変えてしまったほうがよさそうなので(←これはあんまり褒められたことじゃないけど)、シリアル番号とPID を端末ごとに書き換えてます。
一応「カンタン書き換えツール」のようなものも作ったけど、この作業が必要になったことでちょっと(一般利用者の)ハードルが上がったのが残念といえば残念。
で、8局(NHK,教育,日テレ,TBS,フジ,テレ朝,テレ東,おまけで東京MX)同時録画。動いてます!
でも予想していたよりCPU利用率高い。メインマシンで8局録画時17%~20%くらい。1局だと0%なんだけどねぇ。なんかソフト側が悪いような気もするので要検討。
あとは、アンテナの接続が悪くて非常に感度がよろしくない(とりあえず繋ぎゃ映るだろと思ったらさすがにダメだ(笑))のとか、エラーチェックを全然してなくてヘンなデータになることがあるのとか、そもそも再生側がまだぜんぜん手付かず(これも予想外にめんどくさい…。日時指定すると該当部分の生TSデータを切り出す、ってとこまではできてるんだけど)だったりとか
まだまだ問題山積('A`)だけど着々とすすんでますよー。
2008/01/17 ■ 究極のテレビ録画ソリューション(2)
「ワンセグの生データっぽいものが吸えた」→「再生できねー!ちゃんと吸えてるかどうかすらわかんねー!」
という状態でちょっと萎えて放置状態だったこのプロジェクト
う あ
新 作 ヤ ッ タ ー マ ン 今 日 だ っ た っ け !
見 逃 し た !
という事件(笑)が一昨日あり、「やっぱり全時間全チャンネル録画しとくべきだよなw」と
あらためて思い直して再起動(ぉ
とりあえずあらためてごにょごにょやってみたところ
先日のプログラムでどうやらokな様子。
吸ったデータを無事再生できました!
まだ再生手順の中にプロプライエタリなソフトがあるので道半ばもいいとこだけど
「正しく生データを吸えている」ということが確認できたというのは大きな一歩。
垂れ流し録画そのものは結構簡単なのであとは再生ソリューションを作りこむだけですな。
ただ今んとこUSBチューナ2本以上を同時に認識してくんないのが難点
ドライバ的には対応しているはずなんだけどなー。