2008年4月16日水曜日

WhackedTVに含まれるSeqGrabについて

WhackedTVのプロジェクトにはCocoaでSequence Grabberを使うためのWrapperクラスが入ってる。ディレクトリSeqGrab内のクラスがそれだ。Wrapperクラスを自分なりに解釈すると、

・SeqGrabクラス
 Sequence Grabber ComponentのCocoa Wrapper。プレビューやレコーディングの設定など、キャプチャのメイン機能を担う。

・SGChanクラス
 Sequence Grabber Channel ComponentのCocoa Wrapperで、以下のSGVideo、SGAudioクラスのスーパークラス。

・SGVideoクラス
 SGChanクラスを継承し、Channel Componentの中でVideoMediaTypeなChannelを制御するクラス。

・SGAudioクラス
 SGChanクラスを継承し、Channel Componentの中でSGAudioMediaTypeなChannelを制御するクラス。

・ SampleCIViewクラス
 NSOpenGLViewを継承し、プレビュー描画を行うクラス。SGVideoで取得したイメージデータを渡すとウインドウに描画を行う。描画はOpenGLで行っている。

という感じ。

Cocoaアプリケーションでキャプチャソフトを作成する場合は、上記クラスをベースにし、適時にメソッドを追加するという流れになる。

2008年4月15日火曜日

WhackedTVの機能

WhackedTVの機能について簡単にまとめると

・[add video track]で利用可能なビデオデバイスをキャプチャ要素に追加
・[add audio track]で利用可能なオーディオデバイスをキャプチャ要素に追加
・キャプチャ要素を追加するとテーブルに追加される
・テーブルにある[settings]でデバイスの設定ができる
・[record]で指定パスにQuicktime形式のムービーが書き出される

という感じ。さらっとソースと照らし合わせて動作確認してみると、[settings]で表示されるダイアログは、ビデオデバイスだと標準の機能として備わっているようだけど、オーディオデバイスではQuickTime7時点で提供されていないから、自分で実装するしかないみたい。事実、WhackedTVではSGAudioSettingsクラスでダイアログとかオーディオメーターを実装している。みるからに大変。あと大きく違うのはファイル書き出しをしているところ。demuxされた状態でメモリ上に展開する方法をしらべなきゃ。

Sequence Grabber の資料

まずは資料集めから。参考となりそうなのは

Sequence Grabber Reference for QuickTime

と、

QuickTime Movie Creation Guide

あたり。

あと一番重要なのがAppleが提供してるサンプルコードで、WhackedTV。これからはこのサンプルコードを解析していくことから始める。

Sequence Grabber でキャプチャ

Macでキャプチャソフトを作るのには、Sequence Grabber というコンポーネントを使用するらしい。Macでの開発全般に言えることだけど、参考となりそうな資料は全て英語。そしてリファレンスも不十分で、サンプルコードから動作を紐解かなければならないことが多い。覚え書きの意味も含め、Sequence Grabber の機能とかその辺を書いていこうと思う。

作成するキャプチャソフトは

デバイスが選択できて、映像と音を別々に、メモリ上に展開できること

を目的とします。

2008年3月11日火曜日

Ruby

今日からRubyを少しずつ勉強していこうと思います。

教材はこれ↓


とりあえず第1章を読みました。

2008年1月22日火曜日

ダミーファイルを作成する方法

windowsでは fsutil コマンドを使う。

> fsutil file createnew ファイル名 容量

Unixでは dd コマンドを使う。

$ dd if=/dev/zero of=dummy bs=1024 count=1000

2007年12月5日水曜日

ffmpeg windows help

ffmpegをwindowsでmakeする情報をまとめてあるサイト

http://arrozcru.no-ip.org/ffmpeg/index.html


コンパイル済みのバイナリも置いてあったりする。