動画作成とか

  • XVidCap
    デスクトップのキャプチャアプリ
    OpgnGLを使ったアプリはキャプチャできない
  • glc
    これもキャプチャアプリ
    画面をキャプチャするプログラムを指定するタイプなのでデスクトップ全体はむりぽ
    OpenGLを使ってるアプリもキャプチャできる
  • FFmpeg
    みんな知ってる定番エンコーダ
  • VLC media player
    動画再生ソフト
    デフォルトで色々なフォーマット(ogg, flvとか)に対応してる

glc

アプリケーションの画面をキャプチャするツール. OpenGLを使ってるプログラムもキャプチャ可能.
キャプチャされた結果は独自フォーマット(glc)なので, それとエクスポートする必要がある. 音声ストリームはWAV, 動画ストリームはYUV4MPEGとしてエクスポート可能.

インストール

現在(2010/06/18), インストールパッケージは無いようなので, ソースからビルドする必要がある. といっても, インストール用のシェルスクリプトが用意されているでラクです.
ビルドにはALSAの開発パッケージ必要. alsa-develをインストしとく.
そして以下のコマンドを実行
wget http://nullkey.ath.cx/glc/scripts/glc-build.sh
chmod a+x glc-build.sh
./glc-build.sh

使い方

キャプチャ

キャプチャするプログラムを指定してglcを実行する.
glc-capture ./hoge
Shift + F8でキャプチャ開始, もう一度Shift + F8でキャプチャ停止. *.glcファイルが生成されるので, それがキャプチャされた動画. また, 結果を確認することもできる.
glc-play hoge*.glc

エクスポート

*.glcをmpegとしてエクスポートする. まず, ファイルに含まれているストリームの情報を表示する.
glc-play hoge.glc -i 1
エクスポートしたいビデオストリームの番号をNUMとすると, 以下のコマンドでエクスポートできる.
glc-play hoge.glc -y NUM -o hoge.y4m
あとはFFmpegでどうにでもしてくれー

ニコニコ動画投稿

glcからエクスポートしたhoge.y4mをニコニコ動画用にエンコードする.
ffmpeg -i hog.y4m -vb 500k -s 512x384 hoge.flv

複数ファイルの名前の変更

ファイル名内の"hoge1"を"hogehoge"に置換するサンプルバッチファイル
@echo off
for %%f in ( * ) do call :sub "%%f"
exit /b

:sub
set fname=%1
set fname=%fname:hoge1=hogehoge%
ren %1 %fname%
goto :EOF


人間モデルの生成

Make Humanっていうのがあるらしい. パラメータ設定して, それに応じて人間のモデルを生成してくれるらしい. 今度試してみないと.

ActionScript関連

traceデバッグ

いあ, まぢはまった. もうはまるのはやなのでメモ. とくに3. trace()で出力されない場合は3.あたりを見直すといいかも. [flex-root]をFlexのインストールパスとする.
  1. flashplayerdebuger(デバッグ版フラッシュプレイヤー)のインスト. 例えばLinuxなら[flex-root]/runtimes/player/[version]/lnxとかにいれとけばおk.
    ダウンロードページ
  2. ~/mm.cfgを作成. 内容は
    ErrorReportingEnable=1
    TraceOutputFileEnable=1
  3. [flex-root]/frameworks/flex-config.xmlのomit-trace-statements要素をfalseにする
  4. flashplayerdebugerで*.swfを実行
  5. ~/.macromedia/Flash_Player/Logs/flashlog.txtにtrace()の引数に渡した文字列が出力される

asdoc

ドキュメンテーションは基本的に以下のようにする.
/**
 * 簡易説明.
 *
 * 詳細説明.
 *
 * @param hoge 説明
 * @param fuga 説明
 * @return 説明
 */
htmlページ生成は
asdoc -source-path [ドキュメント生成したいソースのルートパス] -doc-sources [ドキュメント生成したい名前空間]
名前空間はパスで指定する. たとえば, hoge.fugaのドキュメント生成したければhoge/fugaとする.

graphviz

グラフを描画するプログラム. ライブラリも存在する.

インストール

wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.26.3.tar.gz
tar zxvf graphviz-2.26.3.tar.gz 
./configure --prefix=[install dir]
make
make install

使い方

dotファイルを作成して, 以下のコマンド実行.
グラフがhoge.pngとして出力される.
dot -Tpng hoge.dot -o hoge.png

有向グラフのdotファイル
digraph sample {
        りんご -> みかん;
        みかん -> みかん;
        v1 -> v2;
        v2 -> v1;
        v1 -> みかん;
        v2 -> りんご;
}
無向グラフのdotファイル
graph sample {
        りんご -- みかん;
        みかん -- みかん;
        v1 -- v2;
        v2 -- v1;
        v1 -- みかん;
        v2 -- りんご;
}
有向グラフ出力例
無向グラフ出力例

RANSAC

ロバスト推定の一つ. OpenCVとかよく使ってる.
例えば、直線や曲線などパラメータで表現できるモデルがあるとし, 標本データからそのパラメータを推定したいとする.
最も単純なのは最小二乗法(LSM)でパラメータを推定することだが, 標本データには多くのノイズ(外れ値)が含まれている場合があり, 正しいパラメータが推定できない場合がある.
外れ値があっても, その影響をあまり受けずにパラメータを推定できる手法がロバスト推定と呼ばれる手法.
ロバスト推定のひとつであるRANSACのアルゴリズムは
  1. ランダムに標本データをN個選択
  2. N個のデータからLSMでパラメータPを推定
  3. パラメータPで表現されるモデルと標本データの誤差がT以下の標本データの個数Lを求める
  4. K回1-3を繰り返す
  5. Lが最大の時のパラメータPを推定結果とする

以下, 直線を推定してみた単純な例.
サンプルは赤い点として示してある. 傾き1の直線に沿って生成したデータ100個とランダムなデータ(外れ値)400個が含まれている.
赤い直線はLSMで推定した直線. 黄色の直線はRANSACで推定した直線.
RANSACの方の黄色の点はLSMで直線を推定したときに用いたデータ.
見た感じRANSACは外れ値に強いということがわかりますねー.

LSMでの推定

RANSACでの推定




カウンタ -
最終更新:2010年11月01日 12:44