スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ライブカメラのキャプチャソフト(その2)

やっとライブカメラのキャプチャソフト一式の更新がデバッグを一部残しつつも完成しました。

・実行中のプログラムの様子
桜島ライブカメラの録画プログラム2
(あまりにも邪魔なので保管していた古いモニタをサブモニタにして、そこに並べて表示させています)

前回の更新で色々目標を書きましたが、なかなか効率が上がらないので無理にマルチスレッド化するより処理を細かく分ける方法にしました。

・動画ファイル書き込み・読み込みの高速化
 ・マルチスレッド化の恩恵が思ったより少なかった
  これは考えればすぐ分かったのですが、画像加工の処理が早ければ結局Queue(FIFO)が読み込みは空に、書き込みは一杯になり、結局オンメモリの画像が増えメモリマネージャの負担が増えます。
  読み込み+書き込みと画像処理が同じ程度かそれ以上の処理時間の時には使えそうです。
 ・コーデックを変えてみる
  AVIコンテナのままでコーデックを変えてみました。WMV9は処理速度が速くて良いのですが、色々設定を変えても現在の画質と同程度にするとファイルサイズが大きくなり、YouTubeへのアップロード時間とディスクの消費量倍増で却下。
 ・コンテナを変えてみる
  MP4コンテナが扱えるユニットを探して見ましたが、自分で簡単に使えそうな物が見つかりませんでした。

 ・Youtubeにアップロードする動画の生成方法を変えてみる
  以上から元通りのAVIコンテナ+MS-MPEG4コーデックに逆戻りとなりました。
  そこで4時間動画を1時間4本に分割記録し、動画4本が揃ってから1本に加工していた処理を1本出来上がったら1本分処理、次が出来るまでAVIファイルのハンドルを放さずに待つ処理にしました。
  これでYouTubeへのアップロード「タイムラグ」が25%程度に圧縮されました。

新たな変更点
・気象庁の噴火に関する火山観測報を動画に掲載
 一倍速再生動画の際に気象レーダではなく火山観測報を掲載するように変更しました。
 30倍速動画も噴火時刻付近は切り替える予定です。

・気象庁WEBサイトへのアクセスを統合
 以前はアプリケーション毎にアクセスしていた処理を1つにしてプロセス間通信でアクセスするように変更しました。「JMAアクセスサーバ」で一括して処理を扱い各ページや画像のキャッシュ管理を行っています。
 これにより気象庁のWEBサーバへの負担と動画生成の処理時間を短縮しました。

・プロセス間通信(Windowsメッセージのやりとり)の変更
 以前はWindowsMediaPlayerを表示させるアプリケーションと録画アプリケーション間だけでしたが、今回の変更で共通するコンポーネントを作成しそれを介して通信(メッセージのやり取り)を行っています。
 この変更でINIファイルでは無くレジストリを使用するように変更しました。

・INIファイルからレジストリへ
 個人的には簡単に編集できるINIファイルが好きですが、上記プロセス間通信とプロセスの起動・相互監視を容易に行えるように使用する事にしました。
 ・プロセス間通信の改善
  以前は起動時に親アプリケーション→子アプリケーションのオプションで親アプリケーションのウィンドウハンドルを渡していましたが、起動後レジストリ経由で渡すようにしました。
 ・プロセスの実行
  構成されているアプリケーションが必要な時に未実行の場合、レジストリより実行形式ファイルのフルパスを得て自動的に起動するようにしました。
 ・プロセスの監視
  JMAサーバやカメラ動画を表示しているプロセスが停止(強制終了等)していないかを確認できるように、一定のインターバルでレジストリに実行中である事を示す値(現在時刻)を書き込むようにして、それを他のプロセスから見れる(監視できる)ようにしました。
 以上昔ながらのWindowsフォルダに置くINIでもOKなのですが「Windowsフォルダに置くならレジストリの方が使い勝手がいいかな」と思ったので変更しました。

コメントの投稿

非公開コメント

プロフィール

YeloowCable

Author:YeloowCable
不定期に桜島ライブカメラの動画を掲載しています

カレンダー
07 | 2017/08 | 09
- - 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 31 - -
カテゴリ
月別アーカイブ
管理
最新記事
リンク
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。