最新 追記

ぱぱネット(仮)


2011-11-01 公開できない [長年日記]

_ [ワンセグ野郎][Linux] iPhoneとオンエア再生

昔からiPhoneやiPadやらの対応はしなきゃなーと考えていたのだが、 そもそも2万円以下の中華Pad(厳密にはAndroid2.2以降のフルFlash対応Android端末)でも再生できてしまってたので、あんまりやる気がでなかった。

私もいずれiPhoneもAndroidに買い替えるつもりだったし。

しかし....とあるツテで秘密のバイナリを入手したのでパパッとでっちあげることにした。オープンソースでないという理由で公開できないのが玉に傷ですがね。

ま、本当は工作1:iPhoneでワンセグのライブストリーミングといった ような仕掛けを自分で作ればいいのだがどうにもやる気が.....ね。

_ [ワンセグ野郎][Linux] 結局こんな感じになりました

家庭内のワンセグサーバーにアクセスするのに、 いちいちhttp://IPアドレスとか打ちたくなかったので、 avahi-daemonをいじってApple Bonjour対応にした。 無料iPhoneアプリに ZeroConfSpyというのがあるのでコレと連携するように。

オンエア再生は先に書いた通りHTTP Live Streamingです。ちょっとおかしくてTBSの音声が遅れたり東京MXのTS分離がうまくいっていないけど。

一方で、MP4再生はTSConvrterLinuxとffmpegで真面目にトランスコードするようにしました。最近のffmpegはvpreにipod320のプロファイルが予め入ってるので便利。

エンコードするので遅い反面、端末間のデコーダーの差異の影響を受けにくくなるので、例えばUbuntuのChromeでもそのまま再生できたりするメリットがあります。

_ [ワンセグ野郎][Linux] 送信可能化権の侵害?

いや、俺のはインターネットは介さないので許してください(Bonjour使うし実質LAN専用)。 そんなこと言ったら ガラポンTVなんて真っ黒だからな.... ぶっちゃけ何であれが大手を振って売られてるのか理解できない。 送信可能化権は暗号化とか1vs1紐付けとか全然関係ないみたいだから。


2011-11-02 字幕検索 [長年日記]

_ [ワンセグ野郎][Linux] 字幕検索

今度はiPhoneじゃなくてPC側の拡張をやろうと思って。 字幕検索を開発しました。 一応「ワンセグ野郎」でもできますよーということで。 まあ、全文検索エンジンとか使わないで、grepでチョイチョイと実装しただけですけども。

字幕検索

_ [ワンセグ野郎][Linux] 意外と便利

もちろんアプリの完成度はガラポンTVの方が高いのでしょうが....

一応こっちは、ローカルプレイヤー(perlrtmp氏のplayer.cgi)と、 ソーシャルサービスのTVRollのダイレクト再生プレイヤーを併用 できるところはメリットかなと。後者は、字幕で検索して、ついったらーの話題を確認、 みたいなことができます。意外と便利です。


2011-11-06 天気が悪かったなあ [長年日記]

_ [雑記] 吉祥寺で遊んでいた

雨がぽつぽつ降るあいにくの空。遠出するのもナンだなーということで、 吉祥寺をうろうろ。細い商店街と融合した城塞を思わせる店舗群で、服を買ったりお茶碗を買ったりしていた。

駅前

_ [夕食] 吉祥寺PEACH JASMINE

本当はクマさんの日記にあったカフェロシアに行く予定だったのだが... パルコ内に新しい店ができていたので、なりゆきでそこへ入る。 元々ケーキ屋さんらしいが、中華バイキングが併設されてて、 味もまあまあでした。

どーんとケーキ餃子うま
担々麺少なめ当然スイーツも

2011-11-07 太らないわけがない [長年日記]

_ [雑記] 当然月曜日なので会社でした

しかも....夕方から歯医者で非常にせわしなかった。

_ [夕食] 夢や京恋しずく

結局、夕食は作らずに、横浜ハンズの方の居酒屋で。 適当に飛び込んだ割に、完全個室かつリーズナブルでかなり良かった。 ちゃんと仕切られてて静かでよろしい。 しかし.....儲からなそうだなこの店('A`;)潰れる前にまたこよう。

画像の説明画像の説明
画像の説明画像の説明
画像の説明

2011-11-09 だいたいできてきたぞ [長年日記]

_ [ワンセグ野郎][Linux] 2号機

接続図
  • 2号機は小さい筐体にオールインワンを目指した
  • AMD E-350デュアルコア,4GB RAM, 1TB HDD
  • ワンセグ6チューナー内蔵
  • 簡易ブースター内蔵
  • Linux USBメモリブート
  • HDDは壊れても交換可能(勝手にフォーマットする)

_ [ワンセグ野郎][Linux][iPhone] オンエア再生

CH選択延々と再生できます
  • iPhoneのみ(残念)
  • HTTP Live Streamingなので延々再生できる
  • TBS,東京MXなどの可変フレームレート局はかなり乱れる
  • オンエアから1〜2分遅れて再生(バッファリング)

_ [ワンセグ野郎][Linux][iPhone] 番組検索とMP4変換予約

番組検索MP4変換予約
  • iPhoneは専用画面で検索して予約
  • PCはEPGページで一覧から予約
  • 単語指定でバッチ変換もできる(いわゆるキーワード予約)
  • MP4変換は実時間の1/2〜1/3くらい
  • NHK等の一部番組はうまく変換できないかも(無音になる)

_ [ワンセグ野郎][Linux][iPhone] MP4リストとプログレッシブ再生

MP4リストMP4ファイルを落としながら再生
  • 変換予約された番組はffmpeg/x264でトランスコードされる
  • iPhoneではMP4ファイルを選択すると直接再生
  • PCではMP4ファイルとしてダウンロード(日付_タイトル.mp4)
  • ファイル削除はPCページのみ可能

2011-11-11 AVCHDムービーのファイルをもらった [長年日記]

_ [Linux] AVCHDムービーの撮影情報を調べるには

調べた限り、Linuxだと良い管理ツールがないみたい。でもPerlにはモジュールがありました。 すごいぞPerl。名前は Image::ExifTool 。 え?Exifってデジカメ静止画用の規格じゃないの??のと思うんですが、 各社のAVCHDファイルにはExifが含まれているらしい。 動画なのに。

インストールはCPAN経由でサクッと入ります。

# perl -MCPAN -e shell
 > install Image::ExifTool

しかしモジュールなので少しだけコードを書かなきゃならない。以下をexif1とかいう名前で /usr/local/binなどに保存してchmod a+xすると吉。

-----exif1------
#!/usr/bin/perl

use Image::ExifTool;
use Data::Dumper;

foreach my $f (@ARGV) {
    next if (!-f $f);
    my $info = Image::ExifTool::ImageInfo($f);
    print Dumper($info);
}
-----exif1------

AVCHDムービーをUSBマスストレージでマウントすると、 avchd/bdmv/streamディレクトリに*.mtsという拡張子のファイル があるはず。これがMPEG-TSコンテナの動画ファイルなのね。先ほどのexif1コマンドの 引数にファイル名を指定すると解析できる。

$ exif1 00000.mts [ENTER]
$VAR1 = {
          'AudioSampleRate' => '48000',
          'FileModifyDate' => '2011:11:10 18:06:36+09:00',
          'ImageWidth' => 1440,
          'AudioBitrate' => '448 kbps',
          'ExposureProgram' => 'Program AE',
          'ExposureTime' => '1/60',
          'VideoStreamType' => 'H.264 Video',
          'ShutterSpeed' => '1/60',
          'FileSize' => '2024 MB',
          'AudioChannels' => '3/2',
          'Duration' => '0:17:26',
          'Aperture' => '2.8',
          'MIMEType' => 'video/m2ts',
          'Focus' => 'Auto (0.065)',
          'FileType' => 'M2TS',
          'ApertureSetting' => 'Auto',
          'AudioStreamType' => 'A52/AC-3 Audio',
          'FilePermissions' => 'rwxr-xr-x',
          'ExifToolVersion' => '8.65',
          'Gain' => '15 dB',
          'Directory' => '.',
          'FNumber' => '2.8',
          'ImageHeight' => 1080,
          'FileName' => '00000.mts',
          'DateTimeOriginal' => '2011:11:10 17:49:11+09:00',
          'Make' => 'Sony',
          'ImageStabilization' => 'On (0x1f)',
          'WhiteBalance' => 'Auto',
          'SurroundMode' => 'Not indicated',
          'ImageSize' => '1440x1080'
        };

解像度だけでなく、フォーカスやゲインアップの情報も採れるからけっこう便利かなと思います。

しかし.....いったいこの情報どこに入ってるんだ(?_?)放送TSにはこんな情報はない。 多重化の規格書探したけどISO/IECの範囲にはないようだ。AVCHD独自拡張かな?


2011-11-15 糞が [長年日記]

_ [開発] tDiaryのamazon.rbが腐っておる

昔の商品タグを含むページを表示させようとすると漏れなく腐るね。 友人から俺の「2009年3月の日記一覧が丸ごとでない」と言われて 発覚した。調べてみると、amazon_get内でREXML::Document に食わせるデータになんらチェックをかけていないことが原因だった。 もちろん自分で直しましたけど.......

これは以前もauth proxyが腐ったときに顕在化した仕様。 外部から取り込むデータの正当性チェックを考慮していない。 要するにエラーチェックが足りないわけです。 別にamazon.rbに限ったことじゃなくtDiary全体がそういう感じ。

例外処理というシステムは....確かにコード量を減らしてエレガントに 記述できるかもしれないけど、プログラマの怠慢を加速させる悪パターン であるかもしれないなーと最近思いますね。


2011-11-19 少しだけ進展した [長年日記]

_ [ワンセグ野郎][Linux][iPhone] iPhoneの番組検索とワンセグTS再生

HTML5(JQuery Mobile + HTTP Live Streaming)部分の開発はほぼ完了。 番組検索してサムネもでるし、そのままHLSでTS再生もできます。

しかし....某スレがキチガイの巣窟みたいになってて、 アップロードする気力が全くわかない件。 なんでああなっちゃったんだ?数人で開発が回ってた頃は、 本当に良い雰囲気だったんだけどなあ。

そもそも今やり玉にあがってるRTMP対応も、RubyIZUMIを作って くれた人、perlrtmpを作ってくれた人、CygwinやActivePerlで 動かした人、紆余曲折みんなの努力があって、 やっとの思いでワンセグ野郎の形になったのに、 それを老害とか一蹴されたら何も貢献したくなくなる。

外様が、オープンソースに関わる穏当な方法は、 相手の誇りを傷つけないことですね。金儲けでやってるわけじゃ ないんだから。


2011-11-20 年末近いといろいろ物入り [長年日記]

_ [雑記] NSビル

正確には19日(土曜)。何故か東京都庁の真下あたりにいました。 昼間は暑かったので長袖シャツ1枚だったのだが....夜になると 雨が本降りになり急激に寒くなり....へっくしょい。

待ち人が2時間以上遅れたので、NSビルのタリーズで時間を潰したり、 ヤマダ電機新宿西口店でBluetoothキーボードを買ったりしていた。

機械式? ツリー

_ [雑記] ニトリ新横浜

20日はニトリ新横浜へ行って家具をみる。確かに安い...安いのだがそれなり.....お値段也のニトリ。でもクリスマスのリースを買う。499円はお値段以上だろ。

リース

_ [雑記] IKEA港北へ

ニトリが案外肩すかしだったので、引き続き家具を物色しにIKEA港北へ。 や、クリスマスムードですね。

もみの木?お菓子の家

_ [夕食] IKEAレストラン

アンチョビのパイみたいなのがうまかった。が、看板メニューであるはずのミートボールはそんなでもない。ペンネは不味くないが想像できる味だった。なんとかのシチューが一番うまかったかな。チーズがはいった野菜シチューって感じ。

ペンネとオードブルプレートとサラダパイとデザート、あとなんとかシチュー

_ [雑記] 腹ごなし

その後は引き続き家具などを物色。テレビ台で安いものがあったのだが、やはり自分で組み立ては気が引けるねえ。

画像の説明画像の説明 画像の説明 というわけで、なぜか風呂椅子だけ買って帰宅。

本日のツッコミ(全2件) [ツッコミを入れる]

_ クマ三郎 [家具を買う…だと?]

_  [もう今のマンション10年目だし、そろそろね]


2011-11-30 Debian squeezeのブートドライブの複製 [長年日記]

_ [開発][Linux] ディスクのミラーイメージを作ったとき

同一サイズのディスク間なら、

# dd if=/dev/sda of=/dev/sdb bs=1M [ENTER]

で完全なコピーができる.....そう思っていた時期が私にもありました。

いや正確にはできてはいるらしいのだが、Debian squeezeはある時点で(多分次回ブート時?) 同じUUIDのパーティションを発見すると勝手に書き換えるようなんだ。 これでミラーした方ならともかく、なぜか ブートドライブを書き換えられてしまい 二度とブートせずに鼻血吹くくらい焦った。

勘違いかもしれんけど。なので、UUIDを少し真面目に管理しましょうという話。

_ [開発][Linux] 手順

コピー前

マスターHDDのブートパーティションのuuidを控えておく。 コマンドはblkidを使う(vol_idというのもある)。

# blkid /dev/sda1
/dev/sda1: LABEL="system" UUID="faca9b62-b828-32a7-abf6-1500bc4bf56a" TYPE="ext4"

コピー

普通にディスクごとコピーする。sdaがコピー元、sdbがコピー先とする。当然これを間違えると、 一発でパーティションごと葬ることが可能なので間違えないように。責任とれないし。

# dd if=/dev/sda of=/dev/sdb bs=1M [ENTER]

終わってもコピー先をマウントしないように。

新しいUUIDを作る

uuidgenコマンドを使う。ない場合はapt-get install uuid-runtimeを実行しておく。 これもメモっておくなりエディタで保存しておくこと。

# uuidgen [ENTER]
2008a515-dfab-416f-bb14-82f598342936

ファイルを書き換える

コピー先を適当なマウントポイントにマウントする。例えば/mnt/root2。

# mkdir -p /mnt/root2 [ENTER]
# mount /dev/sdb1 /mnt/root2 [ENTER]

/mnt/root2/etc/fstabをエディタで開き、該当個所を旧UUIDから上記の新UUIDへ変更。 間違えてコピー元の方を変更しないように。

-------/mnt/root2/etc/fstab------
UUID=2008a515-dfab-416f-bb14-82f598342936 / ext4 noatime,errors=remount-ro 0 1
-------/mnt/root2/etc/fstab------

次に/mnt/root2/boot/grub/grub.cfgをエディタで開き、同じ変更を行う。 今度は6個所くらいあるので間違えないように。

-------/mnt/root2/boot/grub/grub.cfg------
search --no-floppy --fs-uuid --set 2008a515-dfab-416f-bb14-82f598342936
(省略)
linux   /boot/vmlinuz-2.6.32-5-amd64 root=UUID=2008a515-dfab-416f-bb14-82f598342936 ro  quiet
(省略その他)
-------/mnt/root2/boot/grub/grub.cfg------

パーティションのUUIDの変更

tune2fsを使う。コピー先のデバイス、かつ、新UUIDを指定。

# tune2fs /dev/sdb1 -U 2008a515-dfab-416f-bb14-82f598342936 [ENTER]

/dev/sd*のコピー

もし/mnt/root2/dev直下にsdb, sdb1などのブロックデバイス用のスペシャルファイルがない場合は、 コピーしておきます。ある場合はやらないでください。

# cp -dpR /dev/sdb* /mnt/root2/dev/ [ENTER]

chroot

/mnt/root2に移動して新システムにchrootしておきます。

# cd /mnt/root2 [ENTER]
# chroot . [ENTER]

initramfsの更新(chroot内)

unameでカーネルバージョンを調べて、initramfsを更新します。 この作業は絶対にchrootした状態で実行してください (下手をするとシステム壊します)

# uname -a [ENTER]
Linux oneseg2 2.6.32-5-amd64 #1 SMP Mon Oct 3 03:59:20 UTC 2011 x86_64 GNU/Linux
# update-initramfs -k 2.6.32-5-amd64 -u [ENTER]

grubの更新(chroot内)

コピー先のシステムに対して、今回変更したgrubを書き込みます。 実際にはgrub.cfgを読み込むのはStage2のはずで、わざわざgrubを書き込む処理は必要ないはずですが、 私が試した限りは実行しないとブートしませんでした。 この作業は絶対にchrootした状態で実行してください (しつこいですが)

# grub-install /dev/sdb [ENTER]

デバイス名が/dev/sdbなのは、chrootしていても現在ブートしているカーネル基準ではコピー先が /dev/sdbだからです。

アンマウント

chrootを抜けて、ディスクをアンマウントして終了です。

# exit [ENTER] (※chroot)
# cd / [ENTER]
# umount /mnt/root2 [ENTER]

_ [開発][Linux] 疲れた

ここらへんの知識は、仮想マシンのインスタンスやディスクイメージを作る際にも応用が可能なので、 覚えておくと良いかもしれません。すごーくニッチな需要しかないと思いますが.....


2001|04|
2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|05|10|

[BANNER]
このサーバーをもう12年も維持しているかと思うとめまいがしますよ。
ツッコミ機能は、ハンドル名が完全日本語じゃないと登録できません。
また、本文にURLが含まれていても登録できません。
いずれもSPAM対策です。
[Panda Papanda]
2011年
11月
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

[Papanda]  [Kuma]  [Tomorin]  [Iron]  [Eiza]  [Dokkin]  [Honya]  [Zyou]  [Tsuyo]  [Bike]  [KoeBBS]  [Chukei]  [portal]  [tvmatome]  [KaoPaku] 

訪問者数:(+2560143)