2007年12月03日

延長対応

先日、iPod用のTV番組vodcastシステムを作ったと書きました。でも一つ困ったことが起きました。録画しようとした番組の時間が繰り下がっていたせいで、途中までしか録画出来ていなかったのが2件も発生したのです。。。

何とかしたいとは思いつつ、GigaPocketにはスポーツ用の自動延長みたいな機能がありません。どうしようか検討した結果、テレビブログさんのところでダウンロード出来るメタデータを利用させてもらうことにしました。これを利用するようにした後の手順は以下の通りです。

1. Giga Pocketで録画。この際、30分〜1時間ぐらい長めに録画しておく。
2. ビデオカプセルダビングツールで番組を書き出し。
3. テレビブログから該当番組のメタデータ(.tbf)をダウンロード。
4. メタデータから番組本編の時間情報を抽出。
5. 本編だけを指定したavsを作成。(特定の番組はさらに1.5倍速にしておく。)
6. 5のavsを携帯動画変換君で変換。
7. 変換が完了したらpodcast用のページを作成。
8. iTunesで同期させる。

結構力技です。。。ちょっと面倒だったものの、ついでにCMカットも出来て再生が楽になったからまあいいや。???[???i?????????j

でも今回は探しきれなかったけど、どっかのメーカーがもっといいの作ってたりするのかな。。。
タグ:ipod 動画
posted by bali117 at 03:00| 東京 ????| Comment(0) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする

2007年11月18日

iPod用動画

つい先週、iPod nanoを買いました???[???i?????????j 元々は英語の勉強をしようと思ったのがきっかけです。一応ポッドキャストの無料の英会話を聞いていますが、その他にTVのニュース番組も持ち歩いています。ニュース番組は以下のような手順で変換して同期しています。

1. Giga Pocketで録画
2. ビデオカプセルダビングツールで番組を書き出し
3. 携帯動画変換君で変換。この際、AviSynthで倍速(今は1.5倍速にしてます)に変換するスクリプトを通すようにしておく。
4. 変換が完了したらpodcast用のページを作成
5. iTunesで同期させる

1が出来るPC(1台だけ)で全てを自動実行させたいと思っています。しかし、このPCだと倍速にしてエンコードをした結果が音無しになってしまう現象が発生!?????`?i???_???????j
最近買った別のPCだと大丈夫なのに。でもこのNEWマシンだと1が出来ません。かと言って早聴きできないと時間がもったいないし。。。

で、結局今は2台使ってます。う〜ん、いまいち。。。????????

●11/18 23:25追記
AC3Filterをインストールしたら倍速にしても音が出るようになりました!手順3でAviSynthを通す時にDirectShowSource()でロードしてるのですが、AC3のフィルタが無かったのが原因のようです。これで自動化処理完成!
タグ:ipod 動画
posted by bali117 at 00:01| 東京 ????| Comment(0) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする

2006年12月07日

アメリカドライブ旅行記更新

この前、Operaで自分のサイトを見たらGoogle Mapsを使ったページでうまく動いていないのがありました(初期に作ったやつは大丈夫みたい)。今さら過去のページ全てを更新するのは非常に面倒なので、アメリカドライブ旅行記だけリニューアルしてみました。

それがこちらです。
アメリカドライブ旅行記(微妙に加筆・修正もしてます。)

マップ自体は補助だと思うので、興味無い人にとって邪魔にならないように超さりげなくしてみました(したつもり)。まあ、かと言って自分の文章力だけで勝負しろというのは非常に酷ではあるのですが。。。?????[???i???j

今回は以下の点を心がけました。

・なるべく軽くすること。
 対策1: Google Maps上に表示するルートの部分が重かったようなので、ルートのポイント数を減らした。(過去記事「ルートの簡略化」参照)
 対策2: ルートは見たい人だけがロード出来るようにして、最初は読み込まないようにした。(prototype.jsのAjax.Requestを利用。)
 対策3: スクリプト中の空白を消したり変数名や関数名を短い名前に置き換えるソフトを作ってサイズを減らした。

・他のブラウザでも動くようにする。
 対策1: 自分で全てチェックするのは面倒なので、Prototype Window Classというものを利用した。
 対策2: でも本当は自分で作った部分はチェックしないといけないので、せめて手元にあるIE6, Opera9, Firefox2だけではチェックした。

これである程度解決したと思うけど、Safariでチェック出来て無いのは少し心配っす。。。
posted by bali117 at 03:43| 東京 ????| Comment(0) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする

2006年11月29日

GPSログの高度・速度グラフなど

おとといの夜から体調を崩して会社を休んでいます。?????????`?i?????????j
今日は体調が落ち着いてきて少し暇だったので、後回しにしていたことをちょっと片付けました。


1.GPS-CS1Kで取ったログから高度・速度のグラフを作る


GPS-CS1Kのログには高度情報も記録されています。せっかくなのでグラフにしてみました。ついでに速度も。

アメリカドライブ旅行の高度・速度グラフ
2006america_alt.png
2006america_spd.png

一番標高が高かったのは7日目のBryce Canyonでした。また、8日目に寄ったZionからLas Vegasに行く高速道路で一番速度が高めでした。
 ※1 3日目の最後はエラーが起きているようです。この日は3000mを超えるほど高いところには行ってません。(^^;;
 ※2 3日目の最初の方は電源を入れ忘れて後で補完したので、速度の記録が取れていません。。。


■成田を出る時に飛行機から取得したログより
2006america_day1_1_alt.png
2006america_day1_1_spd.png

最初はログを取得出来ていたのですが、途中から取得出来なくなりました。これは公式ページに書いてあるように時速500kmを超えたからだと思われます。グラフからも500km/hに近づいたところでログが切れたのが分かります。


お台場に行った時のログより(高度のみ)
20061125_odaiba_alt.png
。。。何かボロボロです。高度については精度の低さが目立ち、高度差の少ないところだと誤差が際立ってしまっています。やっぱりもっと精度の高いGPSが欲しくなってきます。。。


2.Encoded Polylineについて


以前の日記でEncoded Polylineを試した時に「説明通りに作ると途中からルートが変わってしまった」と書きましたが、やっと原因が分かりました。原因はEncodeした文字列に含まれていた'\'です。
自分はPerlで.jsを吐き出すようにしてたのですが、'\'がJavaScriptの中でエスケープ文字として扱われてしまったのでおかしなことになっていたのでした。。。やられた〜????????
posted by bali117 at 13:37| 東京 ??| Comment(0) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする

2006年11月22日

GPS-CS1Kの誤差?

以前、埼玉県の彩湖に行った時のルートログをいじってたら総距離が78kmと算出された。実際に自転車に取り付けたメーターでは70kmと出ていたはずなので、11.4%も誤差があることに。。。確かに歩いて移動したところもあるのでGPSのログと自転車のメーターで違いはあるはずだが、それでもこんなに誤差があるのはおかし過ぎる!色々調べてみた。

まず、自分が使った計算式は以下の通り。

lat: 緯度、lng:経度 (いずれも単位はradian)
R = 6378137 (地球の半径[m])

Δlat = lat1 - lat0
Δlng = (lng1 - lng0) × cos( lat0 )
距離 = R × √( Δlat2 + Δlng2 )
  参照: 緯度・経度から距離を求める方法(@ 轍 〜自転車的なる日記〜

これで計算したポイント間の距離を加算して総距離を求めた。


1.明らかにおかしな点を除去

先日のログの中でひとつだけぴょこっと変な点が記録されていたのは気になっていたので、それをもっともらしい点に移動させて再度計測してみた。
→結果は76kmとなった。(誤差8.5%)

2.GPS-CS1Kの測位誤差を試算

GPS-CS1Kは測位に±10mの誤差があるらしい。とすると、以下の図の赤点のようなパターンが連続すると誤差が一番蓄積されるのかな?

彩湖に行った時のログは全部で884ポイントになっていたので、あるポイントから次のポイントまでの間隔(上の図の青点どうしの間隔)は平均約79mになっている。したがってこの場合の誤差は次の通り。
√(792 + 202) [m] / 79 [m] = 1.032 (誤差3.2%)

3.GPS-CS1Kの測位誤差を試算(2)

2はあくまでも一定の速度で走っていた場合。平均速度20km/hだとすると3時間30分で着くことになるが、実際には4時間50分かかっている。差分の1時間20分はほぼ停止していたことになる。平均速度20km/hの場合の青点どうしの距離を計算すると約109mになり、停止状態の場合の青点どうしの距離はもちろん0mなので、一番誤差が多い場合は以下のように計算できる。
( √(1092 + 202) [m] × 3時間30分 + 20 [m] × 1時間20分 )
      / ( 70 [km] × 4時間50分 ) = 1.083 (誤差8.3%)


でもGPS-CS1Kの誤差が±10mというのは「GPS衛星自体による誤差」なので、衛星をロストしてたらもっと誤差があるはず。現に極端におかしなポイントが発生しているわけだし。

ただし速度が大きくても±10mの誤差が変わらないとすると平均速度が大きいほど誤差は小さくなるので、自転車じゃなくて車の移動距離計算ならもうちょっと誤差は小さくなるはず。また、停止している時は電源を切っておくようにするともっと誤差が小さく出来る。

と、ここまで計算したところでGoogle Earthでルートログを開いて距離を見てみたらほぼ正確な値が出ている!もしやと思って以前のプログラムを見直したらバグが見つかりました。。。全ての誤差の原因はこれです。。。

過去の記事を見直したら同様に間違っているところがあったので訂正しました。
2006年11月20日掲載 鎌倉〜江ノ島〜湘南サイクリングロード(44km→37km)
2006年10月28日掲載 アメリカドライブ旅行記(約2800km→約2500km)


●分かったこと
・GPS-CS1Kでログを取る時は速度が速い方がいい?
・停止状態では電源を切っておく方が良さそう。
そして、
まずは自分を疑え!!!

はい、反省してます。。。
posted by bali117 at 09:31| 東京 ????| Comment(2) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする

2006年11月04日

ルートの簡略化

アメリカでのドライブ旅行中に記録したGPSログは全部で15,587ポイントになっていた。全体を見たい時にこれらを全て使用してしまうと大変だ。重くて使い物にならない。ということでルートを簡略化するツールを作ってみた。

単純に一定間隔で間引くだけだと大きく形状が損なわれてしまう可能性があるので、なるべく誤差を小さくしつつ間引くことが出来るか以下のようにやってみた。

foreach( i:= 全ての点 )
{
 点iを間引いた場合に発生する誤差を求める
}

while( 点の数が目的の数になるまで )
{
 誤差が一番小さい点を間引く
 間引いた点に隣接する二点の誤差を再計算する
}


(始点と終点の誤差は無限大として、絶対に間引かれないようにした。)
この方法で15,587ポイントのログを1/100の155ポイントに簡略化した結果が以下の通り。全体図で見るとまあうまく出来てる気がする。

●オリジナル
route_all_100.jpg

●1/100に簡略化したもの
route_all_001.jpg

細部を見てみる。

フェニックスの辺り。思いっきり簡略化されているけど、まあ許容レベルだと思う。
route_phoenix_100.jpgroute_phoenix_001.jpg
オリジナル
1/100


モニュメントバレーの辺り。ここもまあいいかな。
route_monument_100.jpgroute_monument_001.jpg
オリジナル
1/100


アーチーズ。公園内の三箇所のポイントに行ったことが表現できてて満足。
route_arches_100.jpgroute_arches_001.jpg
オリジナル
1/100


ブライスキャニオン。途中で途切れててこれは少し失敗かな。。。
route_bryce_100.jpgroute_bryce_001.jpg
オリジナル
1/100


まだ多少の不満はあるので、今後は誤差に重みを付けてもう少し試してみよう。周辺に点がたくさんあるかどうかや、その頂点が鋭角だったら優先度を上げたりしてやってみようかな。あとは点を削除した後に周辺の点を動かして誤差を小さくするようにするとか。

ちなみに1/100のやつをGoogle Mapsに貼り付けたルートはココ。これなら軽くてイイ感じ。???i?`???L?j
posted by bali117 at 01:07| 東京 ??| Comment(0) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする

2006年09月29日

UIちょっと変更

JavaScriptについて調べてたらscript.aculo.usっていうライブラリみたいなのが見つかり、その中にsliderがあったので使ってみました。
若洲海浜公園へのサイクリング地図

便利だ〜。デザインで素人臭さが抜けないのはセンスの問題だから自分にはどうしようも無いけど。。。????????
タグ:javascript
posted by bali117 at 01:19| 東京 ????| Comment(0) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする

2006年09月26日

EXIF

Photoshop7.0でEXIF準拠のJPEGを編集していたが、保存するとSOIの次にAPP0が記録されてしまった。Exif2.2の仕様ではAPP1はSOIの直後に記録されることになっているので、PhotoshopでEXIFを編集するとJFIFになってしまうってことなんだね。でも0thIFDの中のPixelXDimensionには編集後のサイズが設定されていたり何か中途半端。GPS情報を読み出そうとして少しハマってしまった。。。

ImageMagickを使ってもJFIFになってしまうみたい(インストールしたのはImageMagick-6.2.9-7-Q8-windows-dll.exe)。ただしこちらはAPP0は変化無しでそのまま。PerlでGoogle Mapsに写真を貼り付けたページを作ろうとしてたけど、縮小した後でEXIFに直さないとね。せっかくGPS_IFD付けたんだし。。。

ちなみにEXIF2.2の仕様書はhttp://www.exif.org/から入手できた。→Exif2-2.PDF
#unofficialなサイトってのを強調してあるのが気になるけど。?????[???i???j

JEITAから正式なものも入手できるけど、2.1だと無料なのに2.2は有料(¥17,500)だって。まあきっと違わないよね。うん、そう信じよう。???[???i?????????j


【補足】作ったソフト(PhotoshopやImageMagickで壊れたEXIFを修正するソフト)はこちらに置いてみました。
タグ:Exif Photoshop GPS
posted by bali117 at 01:04| 東京 ????| Comment(0) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする