休みにも出歩かずに閉じこもってペチペチとコーディング。お天道様はこんなにも明るいというのに、なんて不健康な生活だろう。
タイトルで大体想像はついてると思うけど、やっぱり先週末には完成させられず。pack レベルの処理は書き終わってしまったのでいよいよ ES レベルの処理も考えてやらなければいけない。
まず pack 内の video pes_packet からデータ部分を繋げてやる必要が(pack の中の video pes_packet が一つだけとは限らないので)あって。次に video ES データを処理して、sequence_header が含まれてるか、gop_header が含まれてるか、picture_header が含まれているか、picture は出力対象か調べて。要らない picture なら 0 で潰して、timecode を整えて、temporal_reference も書き換えて。最後には当然 sequence_end_code も入れてやらなきゃいけない。
しかも video ES データはどんな形で細切れになってるか判らないというのだから嫌になるよね。PS を ES に分離(SCR は別データで保持)してから編集・多重化というステップを踏む場合なら既に完成してる ES 用ルーチン(これも非常にアレな処理の塊なのだが)を使えるので、その意味では楽ができる。しかしそれだと LPCM とか AC3 とか DTS とか(或いはもっと他の音声用フォーマット)が使われた場合に多重化方法を調べる必要が発生してしまうため確実にそちらの方が面倒だと予想できてしまうから、その方法を取る訳にはいかない。(そもそも PS の多重化方法知らないし)
金曜にかのぷ〜からも MPEG のカット編集用ソフト出てたのね。こりゃますます需要が減っちゃったかな。
まだ色々と不具合があるようだから良いけど、少し急がないとまずいな〜。といっても、仕事を持つ人間の悲しさ、今までは週末だけ作業してたのを平日寝る前にも作業するようにするぐらいしかできないのだけど。
感触的には無理すれば何とか来週頭に完成するかもといった所なので踏ん張りどころ。ネストのレベルが4段を超えたので吐き気がしてきたけど、我慢して頑張ろう。
わははははは、私は既に以前の私ではないのだ。5 分の遅れなど恐るるに足りん。放送時間の変更は確認済みだし、何より私は今、こうして起きている。私は勝ったのだ。わはははははっ……げほげほ(バカ)
という訳で今回は被害の回避に成功。雪使いの話。それがどうしたと言われると非常にアレだけど。
冗談はこれくらいにして、遅くまで起きてた副産物としてシリアル・ママのコーディングがかなり進んだのは嬉しい誤算。ES/PS 共に動くようになり、m2v.vfp でデコードできるものを出力できるようになった。
早速出力結果をソフトウェア DVD プレイヤーで再生しようとしてみたのだけど、さっぱりまともに再生されなかった。ので、もう少し調べてやる必要あり。出力されたストリームをダンプしてみたところ、前の pack との SCR の差が負になっている素敵なストリームになってしまっていたので、再生できなくても仕方がないかと納得。
一応それなりに再生できるストリームは出力できるようになったのだけど、どうもストリームの最後が正常に処理できていないらしい。一番融通が利いてどんなストリームでも再生してくれると言う CyberLink PowerDVD で再生していても再生終了を検出できずに延々同じフレームをループのように表示してくれる。
とりあえず最後に 0x000001B9 を付けるようにしてみたが効果なし。音声ストリームを正しく終端できていない可能性が非常に高いが、はて、それに対処するとしたらどうすればよいものやら。
やっぱりなんちゃって PS 編集には無理があったのかな〜。きっちり demux して、video, audio 共に正常なストリームになるように編集した上で mux しなきゃ駄目なのかも。
うひ、I only の m2v で死にますか。えーと、Referer 経由で 伝わりました。とりあえず Referer は平日なら1日1回チェックしてるので、メールが面倒な場合は、コメントと共にリンクして4・5回リロードを含めながらジャンプしてくれればまず確実に伝わります。1回程度だと google とかからのアクセスに埋もれて目立たないのですけど。
昨日不吉なタイトルをつけてしまったからだろうか。M2 で利用している f2s.com から「無料サービス停止するからはやく有料サービスの申し込みしてね」とのメールが届いてしまった。
一応今すぐサービス停止する訳ではなくて、来年 2/28 までは利用できるようなのだけど、それから先はどうすれば良いのだろう。いつ止まるか判らない OCV での M1 のみ運用は問題があるのではやいとこミラー先を探さなければいけない。
サーバー占有タイプじゃなくて、共有タイプで我慢しようかな〜。とりあえず Apache の生 LOG が貰えるのが最低条件になるけど。でもどっちにしろ貧乏が深くなる〜。
相変わらずシリアル・ママで出力した PS ファイルで正常に再生終了を検出できないバグの解決はできていない。原因は出力後ストリームでオーディオデータをきちんと終端できていないせいかとも思ったのだけど、LPCM でも発生するらしいのでどうやら違うらしい。
これを追求するとしたら、どうすればよいのやら。やるとしたら TMPGEnc でエンコードして、シリアル・ママで編集して、TMPGEnc で分離・多重化してシリアル・ママの出力データと比較するぐらいしか思いつかない。面倒なので出来ればやりたくないのだけど。
これが解決したとしても、先頭と最後のカットだけじゃ使いづらいから、中抜きとか結合とかも対応しなきゃいけないのだろうし……。MPEG-1 にも対応してやらなければいけない。部分再圧縮によるフレーム単位編集なんて先のそのまた先の話だね。
I only の m2v で殺人トマトが死ぬという話だけど、再現できなかった。ひょっとして MTV-1000 のストリームはかなり特殊なものだったりするのだろうか。それとも、短いストリームだと出なくて、長いストリームだと出るのかとか、色々考えつくのだけど、実際のところどうなのだろう。
フィールドオーダーを指定したらあっさり再現しました。I ピクチャのみのストリームを m2v.vfp に入れた場合のバグの件です。
え〜と、ご迷惑おかけして申し訳ありません。というわけで、0.5.2 で直っているはずですので試してみてください。
シリアル・ママからの出力時の問題についてはさっぱり解決の目処がたたないので、あまり期待しないで待っていてください。つーかここが解決しなきゃ結合処理はとても実装できないのですけど。微妙に仕事が忙しくなってるので、多分今年中には解決できません。
ふと思い立って、VIDEO ES の sequence_end_code 以下を padding ストリームに変更してみたら PowerDVD でのデコード時の問題(再生終了を検出できない)は解消されてしまった。MediaPlayer 6.4 で連続再生していると3回目以降では音だけになるけど、これは完全に解決策が思いつかないので放置。
という訳で最後の pack でごにょごにょする処理を加えたバージョンとして 0.5.3 を公開。昨日「年内にはまず解決は無理」とか書いたばかりなのだけど、なおってしまった以上仕方がない。一応結合処理とか中間カットとかは年内には追加する予定はなくて、年末年始は実家に戻ってぐーたらと寝て暮らす予定なので何も期待しないように。
IBM Deskstar 120GXP ってのが11月から出荷開始 されているらしい。
Deskstar 60GXP も去年の同じ頃に製品発表してて秋葉原に出現したのが今年の3月半ばだから……。120GXP も出てくるのは同じ頃になるのかな。いや IBM は HDD 製造から撤退とかいう噂も聞こえてきてたし、実際全然新製品の話も聞こえてこないから信者としては不安だったのだけど一安心。
HDD の新規購入は暫く待って、これを待つことにしよう。
f2s.com 後の移転先だけど、SRS さくらがやっぱり専用サーバサービスとしては飛びぬけて安いのだよね。AT-Link の富山 NOC がそれに続く形みたい。
それでも 9,800/月かかるので、どうしようかと悩みどころ。今の生活だとまずそんな予算は出ないからな〜。あー給料上がらないかなと望んでしまうのはいけないことなのでしょうか。(DVD 買うの止めろとかいわれそうだが)
考えるのを止めてるはずなんだけど、どうしても結合処理について考えてしまう。ここ2ヶ月ほどずっとそんな生活してたから癖になってしまっているのかもしれない。
でも、結合処理付けるとしたら現在のインタフェースは全部潰して作り直しになりそうなのですごくウツ。あー最初から TMPGEnc 見習って結合ベースのカット処理にしときゃ良かった。
あ〜 C++ って同じクラス間の = でもコピーコンストラクタが働く訳じゃないのね。operator= を書かなきゃいけないのね。
今日半日悩んでたバグの結論がこれか……。ってか素人考え的には同じクラスなら勝手にコピーコンストラクタ呼んでくれてもよさそうな物だと思うのだけど。
きっと私の理解を超えたところに何か深い事情があって、それ以外の解決はできなかったのだろう。そうに違いない。でなければ悲しすぎる。
某掲示板の書き込みについて。せめて結合ぐらいできなきゃアレだよね。いや判ってはいるんだ。ひょっとしたら GUI からして論外だと言いたいのかもしれないけど。
シリアル・ママで出力した後 demux すると壊れた MPEG Audio データが出来上がるとのこと。思い当たる点がありまくりなのと、自分以外はみんなバカだという前提でなるべく問題ないストリームを吐くことを目的としたツールであるため対応しない訳にはいかない。
とりあえずは現在の処理に MPEG Audio ストリームの同期ヘッダ以前と最後の不完全なフレームをパディングストリームで潰す処理を追加してやれば良いと判ってはいるのだけど。どうやっても美しく書けそうに無いので非常に鬱。
一度ファイルに出力してから先頭と最後だけ処理するようにするか、それとも現在の処理に何とかして埋め込むか。埋め込むのは無理だろうから、ファイル出力&後処理という形にするしかないのかな〜。
JMF かなり面白いかも。クライアントサイド JAVA ってどうなのだろうとか思ってたけど、サーバ側にも使えそうだから楽しいことができそう。
昨日は会社の忘年会のあと家に帰り何もせずに寝てしまったので、殺人トマトのバグ対応は進んでいない。明日も飲み会なので今日の内に片つけてしまう必要があり、今日ははやめに帰らなければと考えているところ。
シングルパスで済まそうという理想は諦めたので、パケットを読んで無効部分をパディングパケットに置き換えて書き戻す処理さえ書けば対応完了のはず。多分明日には公開できるだろう。
大昔にあんなことを書いてしまったことを後悔しつつ殺人トマトを 0.5.4 に更新。編集後に MPEG Audio ストリームがなるべく壊れたデータにならないようにしてみました。
AC3 や DTS は知りません。これは無責任に言ってるわけじゃなくてフォーマット知らないので対処しようがないのです。編集後のストリームから消えてないだけで我慢してください。もちろんフォーマット教えるからそのとおり処理してくれとか、hack してやったからこのコード使えとかなら喜んで対処しますけど。
えと、1つのファイルでしかテストしてないので多分バグが残ってるでしょう。その場合は人柱報告をお願いします。
シリアル・ママでファイルの後ろを切り出そうとするとどんどんメモリリークしていくとの事。また、切り出したファイルを Ulead の DVD Movie Writer で読み込むと音声情報を見失うことがあるとのこと。
上記2点については確認済み。メモリリークは修正済みだけど、オーディオが解決していないのでまだ新版は公開できず。
また別の方から、MTV-1000 のファイルを出力していると途中で落ちることがあるとの報告もあり。こちらは MTV-1000 を所有していないため検証できず。問題が発生する短いストリームを作れた方は WEB から見えるところに置いて頂けると嬉しいです。
昨日受信した不具合については修正済み……のはず。殺人トマトの話。しかし MTV-1000 でエンコードしたデータには system_header がストリームの先頭にしかなくて、しかもパディングストリームじゃなくてビデオストリームがくっついてるとは思わなかった。
いや MVR-D2000 だと、system_header 付きビデオストリームというのは変わらないけど、全 pack に system_header はくっついてたから、てっきり MTV-1000 もそうだろうとか思ってたのに。
broken_link を指定してるから、GOP 先頭の B ピクチャは表示されない筈だというのは、MPEG-2 デコーダを信用しすぎた判断だ。。
繋ぎめで映像にノイズが乗るとかクレームを受けたくない場合、そんな MPEG-2 デコーダを信頼した態度に出てはいけない。top_field_first でなければ正常に再生してくれない素敵なデコーダとかも世の中にはあるのだから、broken_link をまともに読んでくれるなんて期待しない方がいい。そもそも GOP timecode をまともに解釈してるデコーダの方が少数派なんだし。
年末調整とおよび12月分給与と同時にようやく支給。やっぱり遅いと思うのだが、金額的には一応割ってはいなかったので可とする。今の仕事は思っていたよりも会社的に潤っていないらしいのであまり強いことは言えないし。
口座残高的には一時的に改善しているのだが、明日家賃の振り込みでそこそこ削られる予定なのであまり浮かれることもできず。現状のエアコンだけではとても寒いので暖房器具を買い足したいところだが、それ以上の出費は許されないかも(涙)
てのは持ち歩けるノートが欲しいからなのだけど、第一候補で考えていた LOOX T8/80W はさっぱり店頭に無い状態だしどーしよーかなといったところ。標準 LAN が無いけど S8/70 にしとくべきか、素直に Libretto L3 にするか、それとも色物 VAIO C1MRX あたりに行くべきか。
EXT2IFS 職場の NT4SP6 で短いファイルなら読めるのを確認。インストールもウィザードが用意されていて楽。
EXT2FS 上にある AVI ファイルの再生とかは試していないので、大きなファイルのアクセスやシークで正常に動作するかは不明。今度実家に帰ったときにテスト予定。てか Linux で AVI キャプチャして Windows で編集しようなどと考える変人は私だけかもしれないけど。(挙げ句 DV に逃げたし)
明細到着。どうやら思っていたよりも税金を収めていたようで、それで残高が予想並みであった模様。そうか、あんなに削られてしまうのか。現在消費意欲が冷え込み中。
まさかもう売っているとは……。とりあえず 35,000 を割ったら考えることにしよう。
散財発動。VAIO C1MR/BP と MC-P300 を購入。なんだかんだで VAIO を買うのは4台目。と言っても自分で使う PC としては2台目。
久しぶりにメーカー PC を買ったことになる訳だけど、相変わらず ISP のオンラインサインアップ用プログラムが山のようにインストールされているのを見て嫌〜な気分になっていたり。全部削るだけでも一仕事。
一応 MC-P300 も正常に動作していて、WEB も見れる状態にある。最大でも 32 kbps なのでそれなりに遅いけれども、我慢は可能。
ただし、肝心の MOTION EYE が不調。初期不良なのかそれともこの程度が性能なのか、ノイズだらけの画像 しか撮れない。条件は、シャッタースピード:スロー、シャープネス:0、それ以外は規定値。フォーカスをあわせてないのでボケているけどそれは問題にしていない。印象的には MOTION EYE からのアナログ出力のレベルが足りていないような雰囲気なので、とりあえず月曜か年明けにでもサポートに連絡の予定。
上のサンプルの原因は撮影時の光量不足が原因で、あの程度の絵しか撮れないのが MOTION EYE の実力であると判明。ってかなりトゲのある書き方だけど。
一応充分な日照がある環境ではそれなりの絵が撮れる。ただその場合、バッテリーモードのデフォルトだと液晶のバックライトが暗くなるので何も見えなくて操作できないかもしれないけど。まあバックライトのレベルを前もって上げておけば済むだけの話なんだけどさ。
C1MR の MOTION EYE は機械的に故障している訳ではないと判明したため、工場に送り返す必要はなくなった。のでメルコの MS133-256M を増設。
サスペンド状態からシャットダウンせずに電源とバッテリーを外してメモリ増設してしまったため、電源 ON 時にフリーズしてしまいちょっぴりどきどきしたけど、それ以外では特にトラブルなく 384M で認識してくれている。
というわけで Crusoe TM5600 666 MHz + Memory 384 Mbyte 環境での Windows XP の評価とか。
まず、テーマを Windows Classic にして視覚効果を除くのは基本として、それでも日本語入力がもたつく場合。Office XP プリインストールでは ctfmon.exe が常駐している可能性が高いので、解除しておいた方が良いと思う。いまいち良くわかっていないのだけど、どうも手書き文字認識や音声認識用のプログラムらしいのでキーボードメインで使う場合には必要なしのはずだから。
これらの対処を加えていても、たくさん窓を開いて重ねていると、それだけでもかなりの負荷がかかるような印象を受けた。なるべく単一アプリケーションしか動かさないほうが良いのかも。