logo
 2003年   2004年   2005年   2006年   2007年   2008年   2009年   2010年   2011年 
 9月 
 10月 
 11月 
 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月
アイコンの説明
code:Haemophilus influenzae
ここに書かれていることは無保証です。同じことを行って問題が発生しても、 龍義は責任をとりません。

 12/1
Network Other
隣の部屋にある VH-7PC から USB ケーブルを接続して音を出そうかと思い、5m
の USB ケーブルを入手した。さっそく接続してみたが、VH-7PC が置いてある
ラックにガラスの扉が付いているのだけど、ケーブルが出っ張っているので、
VH-7PC を収めると前面がガラスの扉にあたってしまう。ケーブルのコネクタを
測ってみたら40mmは出っ張るみたい。
うまい解決方法が見つからないので、USB の B オス側がL型になったケーブル
がないものか調べてみたけど、そもそも 5m のケーブルがそんなにないし。じゃ、
L型のコネクタは無いかと探したら、L型じゃないけどサンワサプライが出して
いた。
http://www.sanwa.co.jp/product/syohin.asp?code=AD-3DUSB10
微妙に後ろが出るような感じもするけど、よくわからないな。こういう商品は
狭かったり何かに当たるために使うものだから、商品の詳しい寸法を書くべき
だと思うのだけど、書いてないんだよね。もったいない。今度店で見かけたら
見てみることにしようかな。

 12/2
Other
LCD-DTV223XBE のファームウェアアップデート放送の件。先月27日の続きかな。
ちょっとアップデートのことを忘れていて、思い出したようにお知らせを見て
みると、3件あった。一番古いのは。

送信日時:2011年11月28日(月) 06:46
送信機:本機
件名:ダウンロードできませんでした
次の原因が考えられます
・B-CASカードが正しくセットされていない
・気象条件による受信信号のレベルの劣化
・停電

同様のお知らせが11月29日(火) 15:38にもあった。これはアンテナ線を外して
いたので起きたことだけど、わかったことが2つ。多分、予告放送があったので
このメッセージが来たのだろうということ。アンテナは27日から外していたので
前日以前にすでに予告があったのでしょう。もう1つは、B-CAS カードがないと
アップデートができないこと。以前調べたとき、テレビ局のアイコン等の情報は
スクランブル化されてなかったので、ファームウェアのアップデート放送のよう
なデータ放送もスクランブル化されていないと思っていたのだけど、予想が外れ
た。
そして、11月30日にアンテナ線を接続したので、1日のアップデートでは成功
したみたいである。以下のお知らせとなっていた。

送信日時:2011年12月 1日(木) 00:32
送信機:本機
件名:ダウンロード成功のお知らせ
お客様の受信機を最新バージョンのソフトウェアに更新しました。

詳しく弊社ホームページをご覧下さい。
http://www.iodata.jp/

アップデート後のファームウェアバージョンは 6.003.186.1320921721 になって
いた。これで少しは安定して動いてくれるかな。

 12/3
Other
Blu-ray プレイヤーを設置した場所に収まってた壊れている DVD プレイヤー、
KEIAN の KDVD850 HDMI を分解してみた。と思ったが、前に分解したようで、
ネジは既に外されていた。これは、DVD というか円盤メディアの読み込み不良に
より使えない状態で、USB や SD からの入力は問題なく使えていた。
中を開けるとスカスカで、メインの基盤にはプロセッサと思われる大きな石が
載っていた。ZORAN と言う会社の Vaddis888 というプロセッサで、書かれていた
型番は ZR36888HLCG というもの。プロセッサのスペックシートを見ると、DVD
プレイヤー専用のプロセッサで、ネットワークの機能はついてないみたい。他に
電源があり、入力が100~240V なので使えると言えば使えるけど、自分で作った
ものを海外で使うことなんかなんだろうな。
カラオケ機能用のマイク端子が2本ついていて、コネクタの近くに PT2399 と
いう小さな石が載っていた。オペアンプかと思ったけど、調べるとディレイと
いうかエコー用のものみたい。そのままギターを接続できるので、遊べそうと
言えば遊べそうなのだけど、単体で石を買ってもそんな高いものじゃないので、
わざわざ足を外して利用するものでもないし、そもそも使わないし。やっぱり
完全に廃棄かな。ギター好きで電気できる人がいたら、基板あげるんだけどね。

 12/4
Other
昨日の夜、I-O DATA の LCD-DTV223XBE のファームウェア放送を受信してみた
ときの話。
http://www.iodata.jp/support/info/2011/lcd-dtv223x_2/
今回はデータをキャプチャせずに TVTest + TSDataExtractor で受信してみた。
実はすっかり時間を忘れていて、放送開始から5分後ぐらいからの受信になって
しまったのだけど。しばらく様子を見ていたら。

■ダウンロードブロックが多すぎます PID=0X1C76 ComponentTag=0X76 Size=12091392

となって、受信が止まってしまった。どうなってしまったのかソースを確認して
みる。TsDataMgr.cpp には。

if(stDLData.wNumberOfModules>TSDOWNLOAD_MODULE_MAX)
{
    // モジュール数が想定最大数を超えている

となっていた。TsDataMgr.h でモジュール数の最大値を見てみた。

#define TSDOWNLOAD_MODULE_MAX   128     // モジュール数

となっていた。時刻に遅れてしまうし、途中で止まってしまうし、最後の放送
だったけど失敗してしまった。キャプチャしたデータを解析するしかないかな。
先は長そうだ。

 12/5
Other
先月28日の続き。TS ファイルを自分で作ったプログラムで解析しているのだけど
continuity counter の値が結構頻繁に飛ぶ。

(1193) continuity counter(0x01ff) is jumpped (1->0)
(1844) continuity counter(0x01ff) is jumpped (1->0)
(2494) continuity counter(0x01ff) is jumpped (1->0)
(3012) continuity counter(0x05ff) is jumpped (1->0)
(3148) continuity counter(0x01ff) is jumpped (1->0)
(3796) continuity counter(0x01ff) is jumpped (1->0)
(4452) continuity counter(0x01ff) is jumpped (1->0)
(5102) continuity counter(0x01ff) is jumpped (1->0)
(5542) continuity counter(0x05ff) is jumpped (1->0)
(5754) continuity counter(0x01ff) is jumpped (1->0)
(6401) continuity counter(0x01ff) is jumpped (1->0)

上記の数字は、頭がパケットカウント、0x01ff や 0x05ff は PID で、最後の
数字が予想されるカウンタ数と、実際の値。何で飛ぶのかと不思議に思って、
iso13818-1 を見てみた。

continuity_counter – The continuity_counter is a 4-bit field incrementing
with each Transport Stream packet with the same PID. The continuity_counter
wraps around to 0 after its maximum value. The continuity_counter shall
not be incremented when the adaptation_field_control of the packet equals
'00' or '10'

あー、adaptation_field_control の値で増やさないことがあるのか。とりあえず
この処理を入れたら問題なくなった。この continuity_counter の説明には続きが
あって、discontinuity_indicator が1のときは連続しないのと、null packet
のときは動作不定なんだそうな。なんか、先に Adaptation field を読まないと
いけないのが、処理的に面倒だな。とりあえず、discontinuity_indicator の
例外は無視して実装しよう。

 12/6
Other
昨日の続き。PID が 0x0000 の PAT の読み方について。なんか、データが変な
気がしてならないんだよね。受信した PAT のバイナリは以下のようなもの。

47 60 00 1d 00 00 b0 1d 7f e0 cb 00 00 00 00 e0 
10 04 00 e1 f0 04 01 e3 f0 05 80 ff c8 ff f0 fc 
f0 36 9f eb 12 ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff 

1Byte づつ見ていく。

47 sync byte
60 transport error indicator = 0
   payload unit start indicator = 1
   transport priority = 1
00 PID = 0x0000(Program Association Table)
1d transport scrambling control = 0
   adaptation field control = 1
   continuity counter = 13

Adaptation field が無いので、ここから Payload というか Program association
section となる。

00 table id = 0(program association section)
00 section syntax indicator = 0
b0 section length = 176
1d
7f transport stream id = 127
e0 version number = 16
   current next indicator = 0
cb section number = 203
00 last section number = 0

この後、4Byte ごとの連続で

for (i = 0; i < N; i++) {
  program_number
  reserved
  if (program_number = = '0') {
    network_PID
  }
  else {
    program_map_PID
  }
}
CRC_32

な感じなんだけど、残りは。

00 00 00 e0
10 04 00 e1
f0 04 01 e3
f0 05 80 ff
c8 ff f0 fc
f0 36 9f eb
12 ff ff ff
以下略

となっている。この後も continuity counter は増えるものの全く同じパケットが
出現して。見る限り、CRC32 が出てないというか、おかしい感じがして、何か私の
理解ができてないのか、特別な形式なのか。もう少し調べる必要があるみたい。

 12/7
Other
昨日の続き。該当するパケット部分を切り出して、vlc で読ませてみた。この
ときのログを出してみた。

ts debug: new PAT ts_id=32736 version=5 current_next=1
ts debug:   * number=0 pid=16
ts debug:   * number=1024 pid=496
ts debug:   * number=1025 pid=1008
ts debug:   * number=1408 pid=8136
ts debug:   * number=65520 pid=7408

昨日のバイナリ列と比較すると、1バイトずれている。iso13818-1 で確認して
みると、この Program association Table の前項に、Pointer の項があって、
1バイトのようである。この Pointer の発生は payload unit start indicator
によって示されるみたい。つまり payload unit start indicator が1の場合、
このフィールドが発生するみたい。昨日の payload 以降は、以下のようになる。

00 pointer field = 0

00 table id = 0(program association section)
b0 section syntax indicator = 1
1d section length = 29
7f
e0 transport stream id = 32736(0x7fe0)
cb version number = 5
   current next indicator = 1
00 section number = 0
00 last section number = 0

ここから4バイトごとの繰り返しで。

00 00 e0 10 program number = 0     network PID = 16
04 00 e1 f0 program number = 1024  program map PID = 496
04 01 e3 f0 program number = 1025  program map PID = 1008
05 80 ff c8 program number = 1408  program map PID = 8136
ff f0 fc f0 program number = 65520 program map PID = 7408
36 9f eb 12 CRC_32

vlc の結果と一致した。CRC32 を計算してみたけど、どこからどこまでの計算
なのかと、計算方法が良くわからないというか、計算しても 0x369feb12 には
ならない。なんだか、躓いてばかりだな。

 12/8
Other
昨日の続きで、CRC32 の計算。iso13818-1 のファイルなんかを読むと、どうも
Program association section のうち CRC_32 前までのデータを CRC32 で計算
するみたい。188バイトのパケットで。

47 60 00 1d 00 00 b0 1d 7f e0 cb 00 00 00 00 e0 
10 04 00 e1 f0 04 01 e3 f0 05 80 ff c8 ff f0 fc 
f0 36 9f eb 12 ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff ff ff ff ff ff ff ff ff 

のうちの28バイト。

00 b0 1d 7f e0 cb 00 00 00 00 e0 10 04 00 e1 f0
04 01 e3 f0 05 80 ff c8 ff f0 fc f0

が該当する。この CRC32 を出してみる。手元の cygwin で crc の文字で始まる
コマンドを確認すると、/usr/bin/crc32 を見つけた。拡張子が exe じゃないし、
サイズが小さいので file コマンドに聞くと、perl スクリプトみたい。パイプで

[toyota@utapau]% echo -n "1234567890" | cat /usr/bin/crc32

としたけど、応答なく終了したので、中を見てみた。

[toyota@utapau]% cat /usr/bin/crc32
#!/usr/bin/perl

eval 'exec /usr/bin/perl  -S $0 ${1+"$@"}'
    if 0; # not running under some shell

# Computes and prints to stdout the CRC-32 values of the given files

use strict;
use lib qw( blib/lib lib );
use Archive::Zip;
use FileHandle;

my $totalFiles = scalar(@ARGV);
foreach my $file (@ARGV) {
    if ( -d $file ) {
        warn "$0: ${file}: Is a directory\n";
        next;
    }
    my $fh = FileHandle->new();
    if ( !$fh->open( $file, 'r' ) ) {
        warn "$0: $!\n";
        next;
    }
    binmode($fh);
    my $buffer;
    my $bytesRead;
    my $crc = 0;
    while ( $bytesRead = $fh->read( $buffer, 32768 ) ) {
        $crc = Archive::Zip::computeCRC32( $buffer, $crc );
    }
    printf( "%08x", $crc );
    print("\t$file") if ( $totalFiles > 1 );
    print("\n");
}

Archive::Zip の computeCRC32 関数を使っているみたい。ファイルの指定をする
必要があるみたいなので、やってみた。

[toyota@utapau]% echo -n "1234567890" > 1234567890
[toyota@utapau]% /usr/bin/crc32 1234567890
261daee5

出てきた。件の Program association section の28バイトを出してみた。

[toyota@utapau]% /usr/bin/crc32 pas
8ba1d6d4

0x8ba1d6d4 になって 0x369feb12 にならない。wikipedia で巡回冗長検査から
リンク先から web での CRC32 の計算をさせてみると、1234567890 は 261daee5
になるので、間違っていない感じ。libpng の web ページにある Sample CRC Code
を使って、コンパイルして使ってみた。
PNG Specification, Version 1.2 - 15. Appendix: Sample CRC Code
やっぱり cygwin での /usr/bin/crc32 の結果は間違っていなかった。さらに
rfc1952 のサンプルコードを確認してみたら、libpng のコードとほぼ同じで、
一応確認のため実行してみると、やっぱり 0x8ba1d6d4 になる。
困ったときの iso13818-1 文章。Annex A に CRC Decoder Model というのが出て
いた。

x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1

初めて <sup> タグを使った気がする。そんな話は良くて、この値が他の CRC32
のアルゴリズムと合っているのか。ITU-T V.42 で確認してみた。
http://www.itu.int/rec/T-REC-V.42/
初版が1988年だって。モデム時代の MNP4 規格に相当するらしい。久しぶりに
MNP4 とか聞いたな。2002年3月版で確認すると、上記 polynomial と一緒なのは
確認ができた。
CRC の原理を調べるだけで、頭がいっぱいに。「ITU-T V.42 8.1.1.6.2」で検索
すると、7年前のこのページがでてきたりして、軽くショックだったりして。
明日はソースコードから解析しよう。

 12/9
Other
昨日の続きで、だらだらやってる感じ。TS ファイルの CRC32 を計算している
ソフトを探す。茂木さんという方が ARIB STD-B25 仕様確認テストプログラム
というのを書かれているので、中を確認してみた。arib_std_b25.c 

static uint32_t crc32(uint8_t *head, uint8_t *tail)
{    uint32_t crc;
    uint8_t *p;
    static const uint32_t table[256] = {
        0x00000000, 0x04C11DB7, 0x09823B6E, 0x0D4326D9,
        0x130476DC, 0x17C56B6B, 0x1A864DB2, 0x1E475005,
        0x2608EDB8, 0x22C9F00F, 0x2F8AD6D6, 0x2B4BCB61,
~snip~
        0xAFB010B1, 0xAB710D06, 0xA6322BDF, 0xA2F33668,
        0xBCB4666D, 0xB8757BDA, 0xB5365D03, 0xB1F740B4,
    };
    crc = 0xffffffff;

    p = head;
    while(p < tail){
        crc = (crc << 8) ^ table[ ((crc >> 24) ^ p[0]) & 0xff ];
        p += 1;
    }

    return crc;
}

昨日もいくつかコードを見たけど、こんな感じで先に table を作って計算する
方法と、繰り返し文で計算する方法と2種類あった。この関数で CRC32 を計算
してみたら、確かにパケットでの CRC32 値と一致した。当たり前と言えば当たり
前だけど。これだけじゃ他との違いが良く分からなかったので vlc / tsselect
なんかのソースを見たけど CRC32 の計算をしてなかった。仕組みを読んだり、
割り算の計算を見てみたけど、ピンと来ない。わかったことが、normial で出て
くる 0x04C11DB7 / 0xEDB88320 / 0x82608EDB の3つは。
x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1
の右肩の数字をビット位置として並べると。
10000010 01100000 10001110 11011011 = 0x82608EDB
になり、この2進数を左に1ビットシフトさせると、
00000100 11000001 00011101 10110111 = 0x04C11DB7
さらにこの 0x04C11DB7 の2進数を逆から並べると。
11101101 10111000 10000011 00100000 = 0xEDB88320
となっていることがわかった。計算方法について、ソースを見ながら考えてみた
けど、頭がまわらない。もう少し頭がすっきりした状態じゃないとなかなか進ま
ない気がしたので、この部分はそのまま使わせてもらうことにした。

 12/10
Other
布団が置いてあるスノコの下に除湿シートを引いている。干して何度でも使える
もので、もう5年近く使っている気がする。果たしてこの製品はまだ使えている
のか疑問に思って、重さを測ってみることにした。まず、干す前に重さを測る。
275g
だった。前回干してから2週間ぐらい経っているので、それなりに水分を含んで
いると予想している。これを晴れの天気の中、10時から15時まで干して、また
重さを測ってみた。
247g
28g も軽くなっているので、それだけ水分を吸っていたのでしょう。除湿能力は
まだあるということになる。
そもそもどのぐらいの能力をもっているのか、商品を調べてみることにした。
これは私が買ったものじゃないので確定ではないのだけど、商品は多分、白元の
湿気とり大判シートというものみたい。標準除湿量は1シートあたり約110g と
書かれており、使用期間の目安は約6か月なんだと。どちらの値を考慮しても、
既に使用限界に来ている気がする。今度また同じのを買ってくることにしよう。

 12/11
Other
ある installer のファイルの中身を見てみようと、cab ファイルを Explzh で
開いてみたが、認識してくれない。本当に cab ファイルなのか file コマンドで
調べてみた。

[toyota@utapau]% file *
ISSetup.dll: PE32 executable (DLL) (GUI) Intel 80386, for MS Windows, PECompact2
 compressed
_Setup.dll:  PE32 executable (DLL) (GUI) Intel 80386, for MS Windows
data1.cab:   InstallShield Cabinet archive data version 4/5, 1686182656 files
data1.hdr:   InstallShield Cabinet archive data version 4/5, 7254 files
data2.cab:   InstallShield Cabinet archive data version 4/5, 311501505 files
layout.bin:  data
setup.exe:   PE32 executable (GUI) Intel 80386, for MS Windows
setup.ini:   Non-ISO extended-ASCII text, with CRLF line terminators
setup.inx:   data

cab 拡張子のファイルは cab ファイルで合っている気がするんだけどね。別に
setup コマンドを叩いても良いんだけど、変なものが勝手に install されたり
レジストリが増えたりするのが嫌なだけなんだよね。で、Explzh の cab32.dll
のバージョンを確認すると
CAB32.DLL 0.98 2002/07/22
になっていた。えらい古いなと思って最新版を探したけど、どうもこれが最新版
みたいである。file コマンドで出てきた version 4/5 に対応できていないの
かもしれない、なんて思ったので、file コマンドのソースを見てみることに。

[toyota@utapau]% wget ftp://ftp.astron.com/pub/file/file-5.09.tar.gz
[toyota@utapau]% tar xvfz file-5.09.tar.gz
[toyota@utapau]% cd file-5.09
[toyota@utapau]% grep -r "InstallShield Cabinet archive" *
magic/Magdir/msdos:0    string  ISc(    InstallShield Cabinet archive data

grep で出てきた場所を見ていてわかったのだけど、Microsoft の cab ファイルと
InstallShield の cab ファイルがあるみたい。

# Microsoft Cabinet files
0       string          MSCF\0\0\0\0    Microsoft Cabinet archive data
!:mime application/vnd.ms-cab-compressed
>8      lelong          x               \b, %u bytes
>28     leshort         1               \b, 1 file
>28     leshort         >1              \b, %u files

# InstallShield Cabinet files
0       string          ISc(            InstallShield Cabinet archive data
>5      byte&0xf0       =0x60           version 6,
>5      byte&0xf0       !0x60           version 4/5,
>(12.l+40)      lelong  x               %u files

Explzh のページを見ると、展開可能な形式に
InstallShield (v.3.0, v.5.xx, v.6.xx)
が含まれているのにな。何でだろう。
wikipedia (英語) の cab ファイルの説明に、InstallShield の説明があり、
Unshield というコマンドを使えば解凍できるっぽいので、cygwin 上でやって
みた。

[toyota@utapau]% tar xvfz unshield-0.6.tar.gz
[toyota@utapau]% cd unshield-0.6
[toyota@utapau]% ./configure
[toyota@utapau]% make

エラーの1つぐらい出ると思ったのに、あっさり完了。実行してみた。

[toyota@utapau]% src/unshield.exe
No file name provided on command line.

Syntax:

        /tmp/unshield-0.6/src/.libs/unshield [-c COMPONENT] [-d DIRECTORY]
[-D LEVEL] [-g GROUP] [-GhlOrV] c|g|l|t|x CABFILE

Options:
        -c COMPONENT  Only list/extract this component
        -d DIRECTORY  Extract files to DIRECTORY
        -D LEVEL      Set debug log level
                        0 - No logging (default)
                        1 - Errors only
                        2 - Errors and warnings
                        3 - Errors, warnings and debug messages
        -g GROUP      Only list/extract this file group
        -h            Show this help message
        -j            Junk paths (do not make directories)
        -L            Make file and directory names lowercase
        -O            Use old compression
        -r            Save raw data (do not decompress)
        -V            Print copyright and version information

Commands:
        c             List components
        g             List file groups
        l             List files
        t             Test files
        x             Extract files

Other:
        CABFILE       The file to list or extract contents of

[toyota@utapau]% src/unshield.exe l /cygdrive/c/tmp/data1.cab
Aborted (core dumped)

[toyota@utapau]% src/unshield.exe l /cygdrive/c/tmp/data2.cab
Aborted (core dumped)

[toyota@utapau]% src/unshield.exe l /cygdrive/c/tmp/data1.hdr
Aborted (core dumped)

腐ってやがる。早すぎたんだ。他にも Vector なんかを見ながら cab32.dll を
使ってなくて、InstallShield の cab ファイルが解凍できそうなソフトを3種類
ぐらい試したけど、駄目だった。cab ファイル形式のバージョンを確認しようと
cab ファイルと一緒に入っている setup.exe の確認をしてみると、Version が
14.0.0.162 で Copyright の表示は 2007 だった。多分、「InstallShield 2008」
でしょうね。Unshield の README には。

The goals of this implementation are:
~省略~
- Support InstallShield versions 5 and later

なんてあるので駄目なんでしょう。Explzh のページに書かれている。

InstallShield cabinet の解凍ルーチンは、i5comp.exe, i6comp.exe のソースを
参考にさせていただきました。fOSSiL & Morlac 両氏に感謝いたします。

この i5comp.exe / i6comp.exe を探してみたけど、公式(?)らしきものはないし、
見つかった一番新しい i6comp.exe は2002年の 1.03b という10年前のもの。これ
じゃ、新しい InstallShield の cab ファイルはバラせないな。そもそも、対応
してるのは v.6.xx までで、やっぱり10年前ののものだし。
対応を謳っている解凍ソフトをいくつか見てみたが、Universal Extractor も
i5comp / i6comp 由来だし、XacRett は、unshield と同じ SynCE からの Orange
を使っているみたいだし、WinPack も古すぎて InstallShield v6.x までの対応
みたいだし(さらに同名のTrojan があるし)。分解はあきらめて、setup.exe を
叩いた方が早そうだ。

 12/12
WWW
久しぶりに Google Analytics を見たら、デザインが変わっていた。ページに
よっては表示がずれていたりして、まだ完成度は低い感じがする。これまでの
慣れた操作とだいぶ変わったので違和感が大きい。
久しぶりにこのページにアクセスしている人のブラウザを見てみたら、Google
Chrome の数が伸びて、Firefox とほぼ同じだった。比率で見ると。
IE : Google Chrome : Firefox = 2 : 1 : 1
な感じ。このページは変なことばかり書いて、アクセスしてくる人も特殊な人が
多い気がするから、こんな結果なのかもしれないけど。

 12/13
WWW
Motorcycle 関係のページを見ていたら。
¾ throttle
という表現があった。気になったのは、この「¾」は画像なのかフォントなのか。
フォントだったら、どう表現しているのか。気になったのでソースを見てみたら
&frac34;
と書いてあった。html を書いてやってみたら、これで表示できていた。&を使う
表現って、タグと混同しないように < と > をそれぞれ &lt; と &gt; で表現
するのと、& を使って特殊表記してしまったので、& を出すための &amp; だけ
だと思っていたが、間違いだったみたい。で、いつものように調べてみた。
最初のバージョンの HTML では、上記 &lt; &gt; &amp; 3つが規定されていた。

HTML
Entities

これは1992年の話。これを元に ietf の draft に出したものには、&quot; が
追加されたのと、ASCII(Extended ASCII) の 0xC6~0xFF の文字が規定されて
いた(0xD7 と 0xF7 が抜けているけど)。

Hypertext Markup Language - Internet Draft

0xC6~0xFF に frac34 なんかは含まれていないが、所謂 ISO Latin-1 の部分が
規定された。HTML 2.0 の該当部分は、先の draft と同じ。

RFC1866 - Hypertext Markup Language - 2.0

HTML i18n になって、各言語コントロール用の下の4つが追加になった。

   <!--Entities for language-dependent presentation (BIDI and
       contextual analysis) -->
   <!ENTITY zwnj CDATA "&#8204;"-- zero width non-joiner-->
   <!ENTITY zwj  CDATA "&#8205;"-- zero width joiner-->
   <!ENTITY lrm  CDATA "&#8206;"-- left-to-right mark-->
   <!ENTITY rlm  CDATA "&#8207;"-- right-to-left mark-->

ISO Latin-1 の指定も 0xA0~0xFF になり、抜けもなくなった。これで、文字
コードが iso-8859-1 の場合に、&frac34; が使えるようになる。

RFC2070 - Internationalization of the Hypertext Markup Language

HTML 3.2 では、&quot; が無くなったように見えるのだけど、その辺りの詳細は
w3c のページに出ていた。single-quot で括った double-quot にするか、&#34;
にしろということみたい。さらに、i18n の言語コントロールも無いし。

HTML 3.2 Reference Specification

HTML 4.0 は、i18n の言語コントロールや、ギリシャ文字、数学で使うような
文字なんかを含むようになり、&quot; も復活した。

Character entity references in HTML 4.0

ここで iso-8859-1 のマッピング以外に ISO-10646(UCS) も併記されたので、
iso-8859-1 以外でも使えるようになった、ということなんだろうか。見た感じ
HTML 4.01 も同じだった。
このページは UTF-8 に書くようになったので、HTML 4.0 で増えた &x; を表示
することができるけど、Shift_JIS 等のコードで書いたら表示されるのだろうか。
調べようと思ったけど遅くなったので、続きは明日にする。

 12/14
WWW
昨日の続きで、5つのファイルを用意した。それぞれの文字コードは。

META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"
META http-equiv="Content-Type" content="text/html; charset=UTF-8"
META http-equiv="Content-Type" content="text/html; charset=shift_jis"
META http-equiv="Content-Type" content="text/html; charset=iso-2022-jp"
META http-equiv="Content-Type" content="text/html; charset=euc-jp"

8859-1 以外では日本語を含む感じにして。

&(&amp;)
¼(&frac14;)
α(&alpha;)
♥(&hearts;)

の文字を入れた。5つのファイルを IE7 と Firefox8 で表示させてみた。5つ
全てのファイルで上記の文字が表示されたけど、文字コード指定によっては、
フォントが異なるみたい。Firefox8 だと iso-8859-1 だけはフォントが違うの
だけど、設定を見るとそれぞれの言語に対してのフォントが有効になるので、
これは納得できる。IE7 の場合は、iso-8859-1 と UTF-8 が違うフォントで表示
された。これもそれぞれの言語に対するフォント設定が可能だけど、扱いが少し
違うみたい。いくつか実験してみた結果は。
shift_jis / iso-2022-jp / euc-jp 文字指定のときに、ASCII 文字が含まれて
いた場合は、日本語のフォント指定での表示となるのは IE7 も FF8 も共通。
UTF-8 文字指定のときに ASCII 文字が含んだ場合、FF8 だと日本語のフォント
設定が使われ、IE7 だと「ラテン語基本」フォント設定が使われる
ということになった。既存の web ページを UTF-8 に変更すると、IE では ASCII
文字の見え方が変わってくるので、気をつけないといけないみたい。なんだか、
html は単純なようで、奥が深い世界だ。

 12/15
WWW
ちょっと実行ファイルを叩いたら。

Component 'MSCOMCTL.OCX' or one of its dependencies not correctly registered:
a file is missing or invalid

VB な感じで作られているみたい。念のため C:\WINDOWS 以下で MSCOMCTL.OCX を
検索してみたけど、やっぱり無いみたい。VB6 なんて今ドキな感じがするので、
あきらめようと思ったけど、Microsoft のページを検索したらダウンロードできる
みたい。
Microsoft Visual Basic 6.0 コモン コントロール
しかし、概要を見てみたら。

このパッケージは、使用許諾契約書の条件に基づいて、次のユーザーの方に提供
いたします。

  Microsoft Visual Basic 6.0 または Microsoft Visual Studio 6.0 のライセンス
  をお持ちのユーザー。
  Microsoft Visual Basic 6.0 および Microsoft Visual Studio 6.0 のいずれの
  ライセンスをお持ちでないユーザーで、この 2 つのコモン コントロールの古い
  バージョンを使用しているユーザー。

あ、駄目だね。試しにダウンロードして実行してみたけど、やっぱりインストール
されなかった。ダウンロードした exe ファイルを Explzh あたりで分解して、
中の mscomctl.ocx ファイルを regsvr32 で登録すればできそうな気もするけど、
ライセンス違反なのでやめておこう。ランタイム再配布可能パッケージの中を
覗いてみた。
Visual Basic 6.0 Service Pack 6:ランタイム再頒布可能パッケージ
含まれていたファイルは。
vbrun60.inf
asycfilt.dll
oleaut32.dll
olepro32.dll
stdole2.tlb
msvbvm60.dll
comcat.dll
ADVPACK.DLL
W95INF32.dll
W95INF16.DLL
なので、mscomctl.ocx は入ってないし、あきらめることにしようかな。

 12/16
Other
実家に寄って、昔買った毛筆ソフトの CD をとってきた。これでやっと、手元の
PC に楷書フォントが入り、年賀状が作れる。フォントを入れすぎると、PC の
動作が遅くなるので、そんなに入れてないつもりだったけど、PC に入っている
フォントの数を数えたら 163 もあった。そのうち日本語のフォントは4つだけ。
MS ゴシック/明朝の2つと、10月に入れた IPA ゴシック/明朝の2つ。これじゃ
年賀状は無理なので、AR 系と DF 系の楷書と行書を6つほど追加した。日本語の
フォントはサイズがでかいので、6つでも 50M 近くもあるんだよね。漢ROM が
どうこう言っていた時代が懐かしい。もう20年も前の話か。

 12/17
Other
KEIAN KTV-FSUSB2 で録画した生 TS のファイルを、隣の部屋の TV で見たい。
2分ぐらいの小さい TS ファイルを作って、BRAVIA の USB に刺してみたけど、
再生してくれそうもない。地デジと全く同じ形式なのだから、再生してくれても
良いのに。先日買った QTEC BDX-BC1 にも USB 端子があるのだけど、背面側に
あるので刺すのが面倒だし、DLNA じゃ追いつかない気がしたし、どうしたもの
かな、と考えて1度 DVD に焼くことにした。
そのまま TS ファイルを書き込んで、再生のテストをさせようと思ったけど、
ファイルサイズが 11G もあるので、2層の DVD にも収まらない。ファイルの
変換をして、DVD に焼くことにした。VLC を起動して、H264+AAC(MP4) に変換を
始めた。5分経って、処理済みのファイルを再生させたら、30秒しか変換できて
ない。1時間半の TS ファイルだと2日掛かりだな。CPU の処理も100% で張り
付いているし、こりゃ駄目だな。別な方法を考えよう。

明日から4日ほど旅行に出かけるので、更新はありません。

 12/22
Other
旅行で少し古い 747-400 に乗った。食事が始まろうとしたときに、急に液晶の
モニタが暗くなる。見渡すと、他の席も全て暗くなっている。その瞬間、Linux
が起動し始めた。見渡す限りの席に Linux のペンギンが出たりして、なんだか
変な気分。eth0 のところで止まったりして、通信機能がついているのか、なんて
眺めていた。これって操作の反応が遅かったので、ホスト1台でモニタが百台
みたいな構成になっているのだろうか。キーボードを差し込んで操作をしたい
気分だった。

 12/23
Other
先日の旅行にオリンパスのμTough6000というデジカメを持っていって、海の中で
写真を撮ったりした。今日、そのデジカメの MicroSD カードを取り出そうと、
裏蓋を開けたら、どうも蓋の動きが怪しい。そう言えば、海で写真を撮って、
デジカメを洗ってなかったと気が付いて、急いでカメラを真水に漬けて洗った。
とりあえず、マニュアルを確認してみた。
オリンパス μTough6000 取扱説明書
ここに。
水中での使用後、真水にさらさず60分以上放置しないでください。カメラの外観
不良・防水性能劣化の原因となります。
あーあ。海水中で使って2日も経つよ。大丈夫なのか、ちょっと心配になって
きた。どのみち、防水性能を維持するためには、1年に1回パッキンの交換が
必要みたいなので、今度時間があったら交換に出してみようかな。

 12/24
Other
17日の続き。VLC で変換するのは処理が遅すぎるので、ffmpeg を使って変換を
してみようかと。ffmpeg が分化しているらしいので、Libav のバイナリを取って
きた。

[toyota@utapau]% wget http://win32.libav.org/win32/libav-win32-20111223.7z

7z の拡張子って UNIX 系だと何で解凍すれば良いのか悩む。Windows で Explzh
を使って解凍すれば良いのだけど、今後のことを考えて調べてみる。p7zip と
いうコマンドがあるみたいなので、SourceForge からダウンロードした。

[toyota@utapau]% wget http://jaist.dl.sourceforge.net/project/p7zip/p7zip/9.20.
1/p7zip_9.20.1_src_all.tar.bz2
[toyota@utapau]% tar xfj p7zip_9.20.1_src_all.tar.bz2
[toyota@utapau]% cd p7zip_9.20.1

なんか makefile がいっぱいあるけど、make で通るみたいなので、make して
みる。

[toyota@utapau]% make
~snip~
make[1]: Leaving directory `/tmp/p7zip/p7zip_9.20.1/check/my_86_filter'

思ったよりも source ファイルが多かったのと、on cygwin だったので結構な
時間がかかった。と言っても、10分ぐらいだけど。実行してみる。

[toyota@utapau]% ./bin/7za.exe

7-Zip (A) 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=C.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)

Usage: 7za <command> [<switches>...] <archive_name> [<file_names>...]
       [<@listfiles...>]

<Commands>
  a: Add files to archive
  b: Benchmark
  d: Delete files from archive
  e: Extract files from archive (without using directory names)
  l: List contents of archive
  t: Test integrity of archive
  u: Update files to archive
  x: eXtract files with full paths
<Switches>
  -ai[r[-|0]]{@listfile|!wildcard}: Include archives
  -ax[r[-|0]]{@listfile|!wildcard}: eXclude archives
  -bd: Disable percentage indicator
  -i[r[-|0]]{@listfile|!wildcard}: Include filenames
  -m{Parameters}: set compression Method
  -o{Directory}: set Output directory
  -p{Password}: set Password
  -r[-|0]: Recurse subdirectories
  -scs{UTF-8 | WIN | DOS}: set charset for list files
  -sfx[{name}]: Create SFX archive
  -si[{name}]: read data from stdin
  -slt: show technical information for l (List) command
  -so: write data to stdout
  -ssc[-]: set sensitive case mode
  -t{Type}: Set type of archive
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options
  -v{Size}[b|k|m|g]: Create volumes
  -w[{path}]: assign Work directory. Empty path means a temporary directory
  -x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames

tar なんかと同じで - の付かないコマンドオプションのようなので、実行して
みた。

[toyota@utapau]% /tmp/p7zip_9.20.1/bin/7za.exe x libav-win32-20111223.7z
7-Zip (A) 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=C.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)

Processing archive: ../libav-win32-20111223.7z

Extracting  libav-win32-20111223/version
Extracting  libav-win32-20111223/usr/include/libavutil/adler32.h
~snip~
Extracting  libav-win32-20111223/usr/bin
Extracting  libav-win32-20111223/usr
Extracting  libav-win32-20111223

Everything is Ok

Folders: 17
Files: 151
Size:       134983066
Compressed: 21320832

無事に解凍されたみたい。ちょっと長くなったので、続きは明日に。

 12/25
Other
昨日の続きで。ffmpeg のバイナリが用意できたので、TS ファイルを変換して
みる。とりあえず、実行。

[toyota@utapau]% ./usr/bin/ffmpeg.exe
Hyper fast Audio and Video encoder
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outf
ile}...

ffmpeg version v0.7-2374-g8b94df0, Copyright (c) 2000-2011 the Libav developers
  built on Dec 23 2011 19:16:39 with gcc 4.5.2
This program is not developed anymore and is only provided for compatibility. U
se avconv instead (see Changelog for the list of incompatible changes).
Use -h to get full help or, even better, run 'man ffmpeg'

分化したせいか、avconv を使うんだと。実行してみた。

[toyota@utapau]% ./usr/bin/avconv.exe
Hyper fast Audio and Video encoder
usage: avconv [options] [[infile options] -i infile]... {[outfile options] outf
ile}...

avconv version v0.7-2374-g8b94df0, Copyright (c) 2000-2011 the Libav developers
  built on Dec 23 2011 19:16:39 with gcc 4.5.2
Use -h to get full help or, even better, run 'man avconv'

オプションの確認をしてみる。

[toyota@utapau]% ./usr/bin/avconv.exe -h
Hyper fast Audio and Video encoder
usage: avconv [options] [[infile options] -i infile]... {[outfile options] outf
ile}...

Main options:
-L                  show license
-h                  show help
-?                  show help
-help               show help
--help              show help
-version            show version
~snip~

avconv version v0.7-2374-g8b94df0, Copyright (c) 2000-2011 the Libav developers
  built on Dec 23 2011 19:16:39 with gcc 4.5.2

オプションがありすぎて、大変なことになった。ちょっと対応ファイルの形式を
見てみた。

[toyota@utapau]% ./usr/bin/avconv.exe -formats
File formats:
 D. = Demuxing supported
 .E = Muxing supported
 --
  E 3g2             3GP2 format
  E 3gp             3GP format
 D  4xm             4X Technologies format
 D  IFF             IFF format
 D  ISS             Funcom ISS format
 D  MTV             MTV format
 DE RoQ             raw id RoQ format
  E a64             a64 - video for Commodore 64
 D  aac             raw ADTS AAC
 DE ac3             raw AC-3
  E adts            ADTS AAC
 D  adx             CRI ADX
 D  aea             MD STUDIO audio
 DE aiff            Audio IFF
 DE alaw            PCM A-law format
 DE amr             3GPP AMR file format
 D  anm             Deluxe Paint Animation
 D  apc             CRYO APC format
 D  ape             Monkey's Audio
 D  applehttp       Apple HTTP Live Streaming format
 DE asf             ASF format
  E asf_stream      ASF format
 DE ass             Advanced SubStation Alpha subtitle format
 DE au              SUN AU format
 DE avi             AVI format
  E avm2            Flash 9 (AVM2) format
 D  avs             AVISynth
 D  bethsoftvid     Bethesda Softworks VID format
 D  bfi             Brute Force & Ignorance
 D  bink            Bink
 D  bmv             Discworld II BMV
 D  c93             Interplay C93
 D  caf             Apple Core Audio Format
 DE cavsvideo       raw Chinese AVS video
 D  cdg             CD Graphics Format
  E crc             CRC testing format
 DE daud            D-Cinema audio format
 D  dfa             Chronomaster DFA
 DE dirac           raw Dirac
 DE dnxhd           raw DNxHD (SMPTE VC-3)
 D  dsicin          Delphine Software International CIN format
 DE dts             raw DTS
 DE dv              DV video format
  E dvd             MPEG-2 PS format (DVD VOB)
 D  dxa             DXA
 D  ea              Electronic Arts Multimedia Format
 D  ea_cdata        Electronic Arts cdata
 DE eac3            raw E-AC-3
 DE f32be           PCM 32 bit floating-point big-endian format
 DE f32le           PCM 32 bit floating-point little-endian format
 DE f64be           PCM 64 bit floating-point big-endian format
 DE f64le           PCM 64 bit floating-point little-endian format
 DE ffm             FFM (AVserver live feed) format
 DE ffmetadata      FFmpeg metadata in text format
 D  film_cpk        Sega FILM/CPK format
 DE filmstrip       Adobe Filmstrip
 DE flac            raw FLAC
 D  flic            FLI/FLC/FLX animation format
 DE flv             FLV format
  E framecrc        framecrc testing format
  E framemd5        Per-frame MD5 testing format
 DE g722            raw G.722
  E gif             GIF Animation
 D  gsm             raw GSM
 DE gxf             GXF format
 DE h261            raw H.261
 DE h263            raw H.263
 DE h264            raw H.264 video format
 D  idcin           id Cinematic format
 DE image2          image2 sequence
 DE image2pipe      piped image2 sequence
 D  ingenient       raw Ingenient MJPEG
 D  ipmovie         Interplay MVE format
  E ipod            iPod H.264 MP4 format
 D  iv8             A format generated by IndigoVision 8000 video server
 DE ivf             On2 IVF
 D  jv              Bitmap Brothers JV
 DE latm            LOAS/LATM
 D  lmlm4           lmlm4 raw format
 D  lxf             VR native stream format (LXF)
 DE m4v             raw MPEG-4 video format
  E matroska        Matroska file format
 D  matroska,webm   Matroska/WebM file format
  E md5             MD5 testing format
 DE mjpeg           raw MJPEG video
 DE mlp             raw MLP
 D  mm              American Laser Games MM format
 DE mmf             Yamaha SMAF
  E mov             MOV format
 D  mov,mp4,m4a,3gp,3g2,mj2 QuickTime/MPEG-4/Motion JPEG 2000 format
  E mp2             MPEG audio layer 2
 DE mp3             MPEG audio layer 3
  E mp4             MP4 format
 D  mpc             Musepack
 D  mpc8            Musepack SV8
 DE mpeg            MPEG-1 System format
  E mpeg1video      raw MPEG-1 video
  E mpeg2video      raw MPEG-2 video
 DE mpegts          MPEG-2 transport stream format
 D  mpegtsraw       MPEG-2 raw transport stream format
 D  mpegvideo       raw MPEG video
  E mpjpeg          MIME multipart JPEG format
 D  msnwctcp        MSN TCP Webcam stream
 DE mulaw           PCM mu-law format
 D  mvi             Motion Pixels MVI format
 DE mxf             Material eXchange Format
  E mxf_d10         Material eXchange Format, D-10 Mapping
 D  mxg             MxPEG clip file format
 D  nc              NC camera feed format
 D  nsv             Nullsoft Streaming Video
  E null            raw null video format
 DE nut             NUT format
 D  nuv             NuppelVideo format
 DE ogg             Ogg
 DE oma             Sony OpenMG audio
 D  pmp             Playstation Portable PMP format
  E psp             PSP MP4 format
 D  psxstr          Sony Playstation STR format
 D  pva             TechnoTrend PVA file and stream format
 D  qcp             QCP format
 D  r3d             REDCODE R3D format
 DE rawvideo        raw video format
  E rcv             VC-1 test bitstream
 D  rl2             RL2 format
 DE rm              RealMedia format
 D  rpl             RPL/ARMovie format
 DE rso             Lego Mindstorms RSO format
 DE rtp             RTP output format
 DE rtsp            RTSP output format
 DE s16be           PCM signed 16 bit big-endian format
 DE s16le           PCM signed 16 bit little-endian format
 DE s24be           PCM signed 24 bit big-endian format
 DE s24le           PCM signed 24 bit little-endian format
 DE s32be           PCM signed 32 bit big-endian format
 DE s32le           PCM signed 32 bit little-endian format
 DE s8              PCM signed 8 bit format
 DE sap             SAP output format
 D  sdp             SDP
  E segment         segment muxer
 D  shn             raw Shorten
 D  siff            Beam Software SIFF
 D  smk             Smacker video
 D  sol             Sierra SOL format
 DE sox             SoX native format
 DE spdif           IEC 61937 (used on S/PDIF - IEC958)
 DE srt             SubRip subtitle format
  E svcd            MPEG-2 PS format (VOB)
 DE swf             Flash format
 D  thp             THP
 D  tiertexseq      Tiertex Limited SEQ format
 D  tmv             8088flex TMV
 DE truehd          raw TrueHD
 D  tta             True Audio
 D  tty             Tele-typewriter
 D  txd             Renderware TeXture Dictionary
 DE u16be           PCM unsigned 16 bit big-endian format
 DE u16le           PCM unsigned 16 bit little-endian format
 DE u24be           PCM unsigned 24 bit big-endian format
 DE u24le           PCM unsigned 24 bit little-endian format
 DE u32be           PCM unsigned 32 bit big-endian format
 DE u32le           PCM unsigned 32 bit little-endian format
 DE u8              PCM unsigned 8 bit format
 D  vc1             raw VC-1
 D  vc1test         VC-1 test bitstream format
  E vcd             MPEG-1 System format (VCD)
 D  vfwcap          VfW video capture
 D  vmd             Sierra VMD format
  E vob             MPEG-2 PS format (VOB)
 DE voc             Creative Voice file format
 D  vqf             Nippon Telegraph and Telephone Corporation (NTT) TwinVQ
 D  w64             Sony Wave64 format
 DE wav             WAV format
 D  wc3movie        Wing Commander III movie format
  E webm            WebM file format
 D  wsaud           Westwood Studios audio format
 D  wsvqa           Westwood Studios VQA format
 D  wtv             Windows Television (WTV)
 D  wv              WavPack
 D  xa              Maxis XA File Format
 D  xmv             Microsoft XMV
 D  xwma            Microsoft xWMA
 D  yop             Psygnosis YOP Format
 DE yuv4mpegpipe    YUV4MPEG pipe format
avconv version v0.7-2374-g8b94df0, Copyright (c) 2000-2011 the Libav developers
  built on Dec 23 2011 19:16:39 with gcc 4.5.2

これまたいっぱい出てきた。仕方ない、ドキュメントを確認したりして、やって
みることにした。まず、大きなファイルからやると大変なことになりそうだった
ので、小さいファイルを作成。

[toyota@utapau]% dd if=Record_20111217-190000.ts of=test.ts bs=188 count=1048576
1048576+0 records in
1048576+0 records out
197132288 bytes (197 MB) copied, 60.3045 s, 3.3 MB/s

これで適当に DVD の形式に変換してみた。

[toyota@utapau]% ./usr/bin/avconv.exe -i test.ts -target dvd test.mpg
avconv version v0.7-2374-g8b94df0, Copyright (c) 2000-2011 the Libav developers
  built on Dec 23 2011 19:16:39 with gcc 4.5.2
[mpeg2video @ 00e2b7a0] mpeg_decode_postinit() failure
[aac @ 00e44ba0] channel element 1.9 is not allocated
[mpeg2video @ 00e2b7a0] mpeg_decode_postinit() failure
[aac @ 00e15ec0] Sample rate index in program config element does not match the
 sample rate index configured by the container.
[aac @ 00e15ec0] channel element 0.7 is not allocated
[mpeg2video @ 00e2b7a0] mpeg_decode_postinit() failure
    Last message repeated 8 times
[mpegts @ 00039dc0] PES packet size mismatch
    Last message repeated 1 times
[mpegts @ 00039dc0] max_analyze_duration reached
[NULL @ 0003cce0] start time is not set in estimate_timings_from_pts
[NULL @ 0003eb80] start time is not set in estimate_timings_from_pts
[NULL @ 00e2d720] start time is not set in estimate_timings_from_pts
[NULL @ 00e2f640] start time is not set in estimate_timings_from_pts
[NULL @ 00e31520] start time is not set in estimate_timings_from_pts
[NULL @ 00e33460] start time is not set in estimate_timings_from_pts
[NULL @ 00e35340] start time is not set in estimate_timings_from_pts
[NULL @ 00ee6780] start time is not set in estimate_timings_from_pts
[NULL @ 0100cf40] start time is not set in estimate_timings_from_pts
[NULL @ 0100ede0] start time is not set in estimate_timings_from_pts
[NULL @ 00e4e700] start time is not set in estimate_timings_from_pts
[mpegts @ 00039dc0] PES packet size mismatch
    Last message repeated 2 times

Seems stream 10 codec frame rate differs from container frame rate: 14.99 (1500
0/1001) -> 14.99 (15000/1001)
Input #0, mpegts, from 'test.ts':
  Duration: 00:01:37.84, start: 77109.963100, bitrate: 16117 kb/s
  Program 1056 
    Metadata:
      service_name    : ո
      ervice_provider: 
    Stream #0.0[0x111]: Video: mpeg2video (Main), yuv420p, 1440x1080 [PAR 4:3 D
AR 16:9], 24000 kb/s, 33.77 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x112]: Audio: aac, 48000 Hz, stereo, s16, 181 kb/s
    Stream #0.2[0x114]: Data: [6][0][0][0] / 0x0006
    Stream #0.3[0x115]: Data: [6][0][0][0] / 0x0006
    Stream #0.4[0x810]: Data: [13][0][0][0] / 0x000D
    Stream #0.5[0x811]: Data: [13][0][0][0] / 0x000D
    Stream #0.6[0x816]: Data: [13][0][0][0] / 0x000D
    Stream #0.7[0x81a]: Data: [13][0][0][0] / 0x000D
    Stream #0.8[0x81b]: Data: [13][0][0][0] / 0x000D
    Stream #0.9[0x81f]: Data: [13][0][0][0] / 0x000D
  Program 1057 
    Metadata:
      service_name    : ո
      ervice_provider: 
    Stream #0.0[0x111]: Video: mpeg2video (Main), yuv420p, 1440x1080 [PAR 4:3 D
AR 16:9], 24000 kb/s, 33.77 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x112]: Audio: aac, 48000 Hz, stereo, s16, 181 kb/s
    Stream #0.2[0x114]: Data: [6][0][0][0] / 0x0006
    Stream #0.3[0x115]: Data: [6][0][0][0] / 0x0006
    Stream #0.4[0x810]: Data: [13][0][0][0] / 0x000D
    Stream #0.5[0x811]: Data: [13][0][0][0] / 0x000D
    Stream #0.6[0x816]: Data: [13][0][0][0] / 0x000D
    Stream #0.7[0x81a]: Data: [13][0][0][0] / 0x000D
    Stream #0.8[0x81b]: Data: [13][0][0][0] / 0x000D
    Stream #0.9[0x81f]: Data: [13][0][0][0] / 0x000D
  Program 1058 
    Metadata:
      service_name    : ո
      ervice_provider: 
    Stream #0.0[0x111]: Video: mpeg2video (Main), yuv420p, 1440x1080 [PAR 4:3 D
AR 16:9], 24000 kb/s, 33.77 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x112]: Audio: aac, 48000 Hz, stereo, s16, 181 kb/s
    Stream #0.2[0x114]: Data: [6][0][0][0] / 0x0006
    Stream #0.3[0x115]: Data: [6][0][0][0] / 0x0006
    Stream #0.4[0x810]: Data: [13][0][0][0] / 0x000D
    Stream #0.5[0x811]: Data: [13][0][0][0] / 0x000D
    Stream #0.6[0x816]: Data: [13][0][0][0] / 0x000D
    Stream #0.7[0x81a]: Data: [13][0][0][0] / 0x000D
    Stream #0.8[0x81b]: Data: [13][0][0][0] / 0x000D
    Stream #0.9[0x81f]: Data: [13][0][0][0] / 0x000D
  Program 1440 
    Metadata:
      service_name    : ո
      ervice_provider: 
    Stream #0.10[0x151]: Video: h264 (Constrained Baseline), yuv420p, 320x180, 
7.49 fps, 14.99 tbr, 90k tbn, 14.99 tbc
    Stream #0.11[0x152]: Audio: aac, 48000 Hz, stereo, s16, 36 kb/s
    Stream #0.12[0x154]: Data: [6][0][0][0] / 0x0006
    Stream #0.13[0x850]: Data: [13][0][0][0] / 0x000D
    Stream #0.14[0x851]: Data: [13][0][0][0] / 0x000D
    Stream #0.15[0x85a]: Data: [13][0][0][0] / 0x000D
    Stream #0.16[0x85b]: Data: [13][0][0][0] / 0x000D
Could not determine norm (PAL/NTSC/NTSC-Film) for target.
Please prefix target with "pal-", "ntsc-" or "film-",
or set a framerate with "-r xxx".

なんか失敗した。pal だの ntsc だの film だかを付けないといけないみたい。
pal と ntsc の違いは分かるけど、film って何だろう。その前に、ワンセグの
情報が入っているので、読み方によっては小さい画像になってしまうかもしれ
ないんだな。とりあえず、ntsc をつけて、もう一度やってみた。

[toyota@utapau]% ./usr/bin/avconv.exe -i test.ts -target ntsc-dvd test.mpg
avconv version v0.7-2374-g8b94df0, Copyright (c) 2000-2011 the Libav developers
  built on Dec 23 2011 19:16:39 with gcc 4.5.2
[mpeg2video @ 00e2b780] mpeg_decode_postinit() failure
[aac @ 00eb1580] channel element 1.9 is not allocated
[mpeg2video @ 00e2b780] mpeg_decode_postinit() failure
[aac @ 00e15ec0] Sample rate index in program config element does not match the
 sample rate index configured by the container.
[aac @ 00e15ec0] channel element 0.7 is not allocated
[mpeg2video @ 00e2b780] mpeg_decode_postinit() failure
    Last message repeated 8 times
[mpegts @ 00039de0] PES packet size mismatch
    Last message repeated 1 times
[mpegts @ 00039de0] max_analyze_duration reached
[NULL @ 0003cce0] start time is not set in estimate_timings_from_pts
[NULL @ 0003eb80] start time is not set in estimate_timings_from_pts
[NULL @ 00e2d720] start time is not set in estimate_timings_from_pts
[NULL @ 00e2f5a0] start time is not set in estimate_timings_from_pts
[NULL @ 00e314a0] start time is not set in estimate_timings_from_pts
[NULL @ 00e33380] start time is not set in estimate_timings_from_pts
[NULL @ 0003f320] start time is not set in estimate_timings_from_pts
[NULL @ 00ee6720] start time is not set in estimate_timings_from_pts
[NULL @ 0100cf40] start time is not set in estimate_timings_from_pts
[NULL @ 0100ede0] start time is not set in estimate_timings_from_pts
[NULL @ 00e4e720] start time is not set in estimate_timings_from_pts
[mpegts @ 00039de0] PES packet size mismatch
    Last message repeated 2 times

Seems stream 10 codec frame rate differs from container frame rate: 14.99 (1500
0/1001) -> 14.99 (15000/1001)
Input #0, mpegts, from 'test.ts':
  Duration: 00:01:37.84, start: 77109.963100, bitrate: 16117 kb/s
  Program 1056 
    Metadata:
      service_name    : ո
      ervice_provider: 
    Stream #0.0[0x111]: Video: mpeg2video (Main), yuv420p, 1440x1080 [PAR 4:3 D
AR 16:9], 24000 kb/s, 33.77 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x112]: Audio: aac, 48000 Hz, stereo, s16, 181 kb/s
    Stream #0.2[0x114]: Data: [6][0][0][0] / 0x0006
    Stream #0.3[0x115]: Data: [6][0][0][0] / 0x0006
    Stream #0.4[0x810]: Data: [13][0][0][0] / 0x000D
    Stream #0.5[0x811]: Data: [13][0][0][0] / 0x000D
    Stream #0.6[0x816]: Data: [13][0][0][0] / 0x000D
    Stream #0.7[0x81a]: Data: [13][0][0][0] / 0x000D
    Stream #0.8[0x81b]: Data: [13][0][0][0] / 0x000D
    Stream #0.9[0x81f]: Data: [13][0][0][0] / 0x000D
  Program 1057 
    Metadata:
      service_name    : ո
      ervice_provider: 
    Stream #0.0[0x111]: Video: mpeg2video (Main), yuv420p, 1440x1080 [PAR 4:3 D
AR 16:9], 24000 kb/s, 33.77 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x112]: Audio: aac, 48000 Hz, stereo, s16, 181 kb/s
    Stream #0.2[0x114]: Data: [6][0][0][0] / 0x0006
    Stream #0.3[0x115]: Data: [6][0][0][0] / 0x0006
    Stream #0.4[0x810]: Data: [13][0][0][0] / 0x000D
    Stream #0.5[0x811]: Data: [13][0][0][0] / 0x000D
    Stream #0.6[0x816]: Data: [13][0][0][0] / 0x000D
    Stream #0.7[0x81a]: Data: [13][0][0][0] / 0x000D
    Stream #0.8[0x81b]: Data: [13][0][0][0] / 0x000D
    Stream #0.9[0x81f]: Data: [13][0][0][0] / 0x000D
  Program 1058 
    Metadata:
      service_name    : ո
      ervice_provider: 
    Stream #0.0[0x111]: Video: mpeg2video (Main), yuv420p, 1440x1080 [PAR 4:3 D
AR 16:9], 24000 kb/s, 33.77 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x112]: Audio: aac, 48000 Hz, stereo, s16, 181 kb/s
    Stream #0.2[0x114]: Data: [6][0][0][0] / 0x0006
    Stream #0.3[0x115]: Data: [6][0][0][0] / 0x0006
    Stream #0.4[0x810]: Data: [13][0][0][0] / 0x000D
    Stream #0.5[0x811]: Data: [13][0][0][0] / 0x000D
    Stream #0.6[0x816]: Data: [13][0][0][0] / 0x000D
    Stream #0.7[0x81a]: Data: [13][0][0][0] / 0x000D
    Stream #0.8[0x81b]: Data: [13][0][0][0] / 0x000D
    Stream #0.9[0x81f]: Data: [13][0][0][0] / 0x000D
  Program 1440 
    Metadata:
      service_name    : ո
      ervice_provider: 
    Stream #0.10[0x151]: Video: h264 (Constrained Baseline), yuv420p, 320x180, 
7.49 fps, 14.99 tbr, 90k tbn, 14.99 tbc
    Stream #0.11[0x152]: Audio: aac, 48000 Hz, stereo, s16, 36 kb/s
    Stream #0.12[0x154]: Data: [6][0][0][0] / 0x0006
    Stream #0.13[0x850]: Data: [13][0][0][0] / 0x000D
    Stream #0.14[0x851]: Data: [13][0][0][0] / 0x000D
    Stream #0.15[0x85a]: Data: [13][0][0][0] / 0x000D
    Stream #0.16[0x85b]: Data: [13][0][0][0] / 0x000D
[buffer @ 0296ef60] w:1440 h:1080 pixfmt:yuv420p
[scale @ 00f74fa0] w:1440 h:1080 fmt:yuv420p -> w:720 h:480 fmt:yuv420p flags:0
x4
Incompatible sample format 's16' for codec 'ac3', auto-selecting format 'flt'
Output #0, dvd, to 'test.mpg':
  Metadata:
    encoder         : Lavf53.18.0
    Stream #0.0: Video: mpeg2video, yuv420p, 720x480 [PAR 32:27 DAR 16:9], q=2-
31, 6000 kb/s, 90k tbn, 29.97 tbc
    Stream #0.1: Audio: ac3, 48000 Hz, stereo, flt, 448 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg2video -> mpeg2video)
  Stream #0:1 -> #0:1 (aac -> ac3)
Press ctrl-c to stop encoding
[aac @ 00e15ec0] Not evaluating a further program_config_element as this constr
uct is dubious at best.
[aac @ 00e15ec0] channel element 0.7 is not allocated
Error while decoding stream #0:1
Input stream #0:1 frame changed from rate:48000 fmt:s16 ch:2 to rate:48000 fmt:
flt ch:2
[mpeg2video @ 00e2b780] warning: first frame is no keyframe
[mpeg2video @ 021ae020] rc buffer underflow
PES packet size mismatch0 size=     218kB time=0.86 bitrate=2067.0kbits/s dup=1
0 drop=0
[mpegts @ 00039de0] PES packet size mismatch
PES packet size mismatch0 size=    1004kB time=2.75 bitrate=2988.7kbits/s dup=1
0 drop=0
PES packet size mismatch0 size=    1418kB time=3.20 bitrate=3630.1kbits/s dup=1
0 drop=0
~snip~
PES packet size mismatch6 size=   77284kB time=96.19 bitrate=6581.7kbits/s dup=
10 drop=0
PES packet size mismatch9 size=   78130kB time=97.18 bitrate=6585.9kbits/s dup=
10 drop=0
[mpegts @ 00039de0] PES packet size mismatch
    Last message repeated 2 times
[mpeg2video @ 00e2b780] ac-tex damaged at 79 39
[mpeg2video @ 00e2b780] Warning MVs not available
[mpeg2video @ 00e2b780] concealing 2580 DC, 2580 AC, 2580 MV errors
Input buffer exhausted before END element found97.60 bitrate=6584.0kbits/s dup=
10 drop=0
Error while decoding stream #0:1
frame= 2932 fps= 20 q=5.8 Lsize=   78634kB time=97.63 bitrate=6597.9kbits/s dup
=10 drop=0
video:71853kB audio:5339kB global headers:0kB muxing overhead 1.867601%

だいぶ省略したけど、PES パケットのエラーがたくさん出てきた。一応 mpg の
ファイルができたので、ファイルサイズを確認してみたら、77MB になった。元は
188MB だったので、半分以下にはなった。-b オプションを使ってビットレートを
変更すれば、サイズをさらに小さくできる感じである。動画の詳細を見てみたら、
大きさは 720x480 で、音声は AC-3 の MPEG-2 PS みたいである。これで、何とか
DVD にできそうな感じになった。続きは明日に。

 12/26
Other
昨日の続きで。地デジで1時間半録画(と言うのか悩むが)した TS ファイルは
11GB あった。これを DVD-Video にしようとここ数日色々やっている。
そもそも DVD-Video って中のディレクトリ名が AUDIO_TS と VIDEO_TS になって
いるので、MPEG-2 TS じゃないの?と思って DVD-Video を調べてみると TitleSet
た。DVD-Video の規格で NTSC の場合は 720×480 になるらしい(小さい他の
サイズもあるけど)。だから avconv のオプションに ntsc-dvd と ntsc を付ける
必要があったみたい。
昨日の avconv での変換では 188MB のファイルが 77MB になった。これを 11GB
でやってみたと計算すると、4.5GB になってしまい DVD 片面に1層に収まらない
ことになる。ものは試しと、やってみた。

[toyota@utapau]% ./avconv -i Rec_20111225-193000.ts -target ntsc-dvd test.mpg
avconv version v0.7-2374-g8b94df0, Copyright (c) 2000-2011 the Libav developers
  built on Dec 23 2011 19:16:39 with gcc 4.5.2
[aac @ 00e76180] Sample rate index in program config element does not match the
 sample rate index configured by the container.
[aac @ 00e76180] Input buffer exhausted before END element found
[aac @ 00e76180] channel element 0.0 is not allocated
~snip~
[aac @ 00e15ec0] Input buffer exhausted before END element found
Error while decoding stream #0:1
frame=162744 fps= 23 q=2.0 Lsize= 2498746kB time=5400.70 bitrate=3770.0kbits/s 
dup=6 drop=0
video:2142696kB audio:296936kB global headers:0kB muxing overhead 2.423065%

相変わらず大量に出力されたけど、無事に変換完了。気になるサイズは、2.38GB
になった。あれ?DVD に収まるよ。何でこうなったのか、よくわからないけど。
VLC で再生してみると、最初の1秒ぐらいブロックノイズが出るぐらいで、特に
問題なし。ただ、地デジのデータには、副音声とか字幕が含まれているのだけど、
変換してしまうとどちらも消えてしまうみたい。なんだか残念。調べてみると、
副音声にして変換するのは -map オプションでできるみたい。音声を複数入れる
ことは無理のようで。-map オプションで付ける値は、変換中に出力される表示を
参考にするみたいだけど、出力ファイルを指定しないと情報だけ出てくるので、
やってみた。

[toyota@utapau]% ./avconv -i Rec_20111225-193000.ts
avconv version v0.7-2374-g8b94df0, Copyright (c) 2000-2011 the Libav developers
  built on Dec 23 2011 19:16:39 with gcc 4.5.2
~snip~
Seems stream 14 codec frame rate differs from container frame rate: 14.99 (1500
0/1001) -> 14.99 (15000/1001)
Input #0, mpegts, from 'test00.ts':
  Duration: 00:00:18.66, start: 27690.353844, bitrate: 16502 kb/s
  Program 1024 
    Metadata:
      service_name    : NHKAm9g15~
      service_provider: 
    Stream #0.0[0x100]: Video: mpeg2video (Main), yuv420p, 1440x1080 [PAR 4:3 D
AR 16:9], 24000 kb/s, 31.82 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x110]: Audio: aac, 48000 Hz, stereo, s16, 147 kb/s
    Stream #0.2[0x111]: Audio: aac, 48000 Hz, stereo, s16, 151 kb/s
    Stream #0.3[0x130]: Data: [6][0][0][0] / 0x0006
    Stream #0.4[0x138]: Data: [6][0][0][0] / 0x0006
    Stream #0.5[0x140]: Data: [13][0][0][0] / 0x000D
    Stream #0.6[0x160]: Data: [13][0][0][0] / 0x000D
    Stream #0.7[0x161]: Data: [13][0][0][0] / 0x000D
    Stream #0.8[0x162]: Data: [13][0][0][0] / 0x000D
    Stream #0.9[0x170]: Data: [13][0][0][0] / 0x000D
    Stream #0.10[0x171]: Data: [13][0][0][0] / 0x000D
    Stream #0.11[0x172]: Data: [13][0][0][0] / 0x000D
    Stream #0.12[0x150]: Data: [13][0][0][0] / 0x000D
  Program 1025 
    Metadata:
      service_name    : NHKAm9g25~
      service_provider: 
    Stream #0.0[0x100]: Video: mpeg2video (Main), yuv420p, 1440x1080 [PAR 4:3 D
AR 16:9], 24000 kb/s, 31.82 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x110]: Audio: aac, 48000 Hz, stereo, s16, 147 kb/s
    Stream #0.2[0x111]: Audio: aac, 48000 Hz, stereo, s16, 151 kb/s
    Stream #0.3[0x130]: Data: [6][0][0][0] / 0x0006
    Stream #0.4[0x138]: Data: [6][0][0][0] / 0x0006
    Stream #0.5[0x140]: Data: [13][0][0][0] / 0x000D
    Stream #0.6[0x160]: Data: [13][0][0][0] / 0x000D
    Stream #0.7[0x161]: Data: [13][0][0][0] / 0x000D
    Stream #0.8[0x162]: Data: [13][0][0][0] / 0x000D
    Stream #0.9[0x170]: Data: [13][0][0][0] / 0x000D
    Stream #0.10[0x171]: Data: [13][0][0][0] / 0x000D
    Stream #0.11[0x172]: Data: [13][0][0][0] / 0x000D
    Stream #0.12[0x150]: Data: [13][0][0][0] / 0x000D
  Program 1408 
    Metadata:
      service_name    : NHK7HBSG5~
      service_provider: 
    Stream #0.15[0x580]: Data: [13][0][0][0] / 0x000D
    Stream #0.14[0x581]: Video: h264 (Constrained Baseline), yuv420p, 320x180, 
7.49 fps, 14.99 tbr, 90k tbn, 14.99 tbc
    Stream #0.13[0x583]: Audio: aac, 48000 Hz, stereo, s16, 52 kb/s
    Stream #0.16[0x587]: Data: [6][0][0][0] / 0x0006
    Stream #0.17[0x589]: Data: [13][0][0][0] / 0x000D
    Stream #0.18[0x58a]: Data: [13][0][0][0] / 0x000D
    Stream #0.19[0x58b]: Data: [13][0][0][0] / 0x000D
  Program 65520 
    Stream #0.20[0x1c71]: Data: [13][0][0][0] / 0x000D
    Stream #0.21[0x1c72]: Data: [13][0][0][0] / 0x000D
    Stream #0.22[0x1c73]: Data: [13][0][0][0] / 0x000D
    Stream #0.23[0x1c74]: Data: [13][0][0][0] / 0x000D
    Stream #0.24[0x1c75]: Data: [13][0][0][0] / 0x000D
    Stream #0.25[0x1c76]: Data: [13][0][0][0] / 0x000D
    Stream #0.26[0x1c77]: Data: [13][0][0][0] / 0x000D
    Stream #0.27[0x1c78]: Data: [13][0][0][0] / 0x000D
    Stream #0.28[0x1c60]: Data: [13][0][0][0] / 0x000D
    Stream #0.29[0x1c61]: Data: [13][0][0][0] / 0x000D
    Stream #0.30[0x1c62]: Data: [13][0][0][0] / 0x000D
    Stream #0.31[0x1c63]: Data: [13][0][0][0] / 0x000D
    Stream #0.32[0x238]: Data: [0][0][0][0] / 0x0000
At least one output file must be specified

見る限り、映像は 0.0 で主音声が 0.1 、副音声は 0.2 、ワンセグ映像 0.14 、
ワンセグ音声 0.13 かな。小さいファイルを作って、テストでやってみた。

[toyota@utapau]% dd if=Rec_20111225-193000.ts of=test.ts bs=188 count=1048576
1048576+0 records in
1048576+0 records out
197132288 bytes (197 MB) copied, 20.5251 s, 9.6 MB/s

[toyota@utapau]% ./avconv -i test00.ts -target ntsc-dvd test00.mpg
[toyota@utapau]% ./avconv -i test00.ts -target ntsc-dvd -map 0:0 -map 0:2 test0
1.mpg
[toyota@utapau]% ./avconv -i test00.ts -target ntsc-dvd -map 0:0 -map 0:1 -map 
0:2 test02.mpg
[toyota@utapau]% ./avconv -i test00.ts -target ntsc-dvd -map 0:14 -map 0:13 tes
t03.mpg

音声2つ入りもできるみたい。VLC で見てみたら、切り替えできた。ワンセグの
映像はアスペクト比が違うので、ゆがんだ映像になるのとワンセグの音声も、
高音の頭がどうかなりそうなノイズになってしまった。とりあえず、それぞれの
サイズを見てみる。

[toyota@utapau]% ls -l test0?.mpg
-rwx------+ 1 toyota toyota 49559552 Dec 26 21:25 test00.mpg
-rwx------+ 1 toyota toyota 49559552 Dec 26 21:27 test01.mpg
-rwx------+ 1 toyota toyota 55130112 Dec 26 21:29 test02.mpg
-rwx------+ 1 toyota toyota 34662400 Dec 26 21:29 test03.mpg

主音声でも副音声でも、サイズは変わらないみたい。字幕をなんとかできないか
調べてみたけど、時間がなくなった。今日はここまでにして、明日は字幕をどう
にかするか、DVD に焼いてみる。

 12/27
Other
昨日の続きで。字幕をどうにかしようと思ったけど、字幕を抽出してファイルに
出力するのが早いみたい。後で、字幕データとして読み込ませたりして。この辺り
まだまだ開発途上なのかな。
昨日できあがった 2.38GB の MPEG ファイルを DVD-Video 形式で DVD に焼く。
検索してみると、動画形式の変換からやってくれるものもあるみたいだけど、
既に変換済みなので、DVD メニューが作れて操作が簡単そうな DVD Styler を
使ってみることにした。適当にメニュー作って、動画ファイルを差し込んで、
とりあえず iso ファイルを作成してみた。それを DAEMON Tools でマウントして
みた。VLC で再生。なんか、売り物みたいな感じで感動。この iso ファイルを
DVD に焼いて、隣の部屋の Blu-ray プレイヤーで見てみる。やっぱり少し感動。
これで、隣の部屋のテレビで見る方法が確立できた。えらい時間がかかったけど。

 12/28
Other
昨日の iso ファイルは1時間半だったが、ビットレートを小さくして、無理矢理
1時間半録画した MPEG-TS 動画を3本、合計4時間半を DVD 1枚分に入れて
みた。全体が動いていてるシーンでの文字なんかがにノイズが目立つのだけど、
他は特に見られる感じだった。番組に合わせてビットレートを変えながら、もう
少し試してみる必要があるな。

 12/29
Other
昨日 DVD に焼いていて思ったけど、時間をかけて動画形式を変換してサイズを
落とすぐらいだったら、そのまま Blu-ray に焼いてしまえば良いのじゃないかと
思ってきた。BD-Video を調べてみると、BDMV という名称らしく、MPEG2-TS で
記録されているが、音声では AAC が対応していないみたい。地デジで録画した
TS ファイルはそのままでは無理のよう。BD には BD-R/BD-RE 用の BDAV という
規格もあって、そっちでは AAC が対応しているので何とかなるみたい。調べて
みると、BDAV 化するのに chotBDAV なんかを使うみたいだけど、この chotBDAV
が扱える TS ファイルは192バイトの TS なので変換しなくちゃいけない。と、
言うことは BDAV で使われる MPEG2-TS も192バイトの TS ファイルなのかな。
なんだか、調べなきゃいけないことが多くて、理解しきれないな。その前に、
Blu-ray を扱うには PC のスペックが足りない気がする。

 12/30
Other
試しに民放のテレビ番組を録画して、その MPEG2-TS ファイルの CM をカット
してみようとやってみた。が、最近の CM はちゃんと 16:9 で作られているし、
番組もステレオで制作されているので CM 位置の自動検出ってできないんだね。
洋画等で二ヶ国語が入っている場合は、検出できるかもしれないけど、番組と
しては少なそうだし。手作業で見ながらカットするなんて時間も手間もかかって
面倒だな。これまで NHK でテストしていたので、考えたこともなかったけど、
web で検索してもやっぱり良い方法はないみたいで。どうせ保存なんかするような
番組はほとんどないので良いのだけど、簡単にできたら便利だなと思ったので。

 12/31
Other
久しぶりに隣の部屋で炬燵に入って Bravia を見ながらのんびりしていたが、
どうも Bravia の番組表が気に食わない。チャンネルの並びが未だに地上波の
頃と同じなのである。最近ではどこの番組表でも地デジのチャンネル順に並んで
いるというのに、折角慣れた順番からまた逆戻りである。このチャンネル順を
変更できないかとマニュアルなんかを見てみたけど、できなさそう。それじゃ、
ファームウェアのアップデートで対応しているかもと思い、アップデート情報を
見てみると、今年は4月27日に PKG4.102 に、9月8日に PKG4.107 に上がって
いた。テレビ側を確認すると、PKG4.091JPL で1月と同じ状況。ネットワークに
接続してないし、PKG4.102 や PKG4.107 は放送されなかったので、当たり前と
言えば当たり前か。仕方ない、今度ネットワークを接続して、バージョンアップ
させるかな。それで番組表の順番が直るかどうか、不明だけど。

21st projects Tatsuyoshi Networks Prompt Works
by Tatsuyoshi since 2003