トップ «前の日記(2010/01/02(Sat)) 最新 次の日記(2010/01/12(Tue))»
【ソース+水=麦茶色の何か】

半期 四半期 全カテゴリ

今日の一言


2010/01/05(Tue) 烈しんどい [長年日記] 14:30現在 7℃

_ [Ubuntu][FC][Linux][OpenAL][研究関係]OpenALの出力をキャプチャ

OpenALにはデフォルトでは出力結果をファイルに保存する機能が無い模様。

なので別途なんらかの手段でキャプチャする必要がある。

一番楽なのは、gtk-recordMyDesktopの様なキャプチャソフトを使う方法だろう。

*インストールは、

 $ sudo apt-get install gtk-recordmydesktop

gtk-recordMyDesktopは、元々デスクトップキャプチャと同時にスピーカ出力も録音できる為、コレが使えるならこれを使えばいい。

また、画面の出力が不要ならば、Audacityを使えばいいっぽい。

 $ sudo apt-get install audacity

が、自分の環境ではなぜか両方共うまくいかなかった。

(入力として選択できるデバイスにそれっぽいのが出てこない・・・capture:0とかしか無い)

なので、自分はこちら(http://d.hatena.ne.jp/rubikitch/20091018/1255857423)のサイトで紹介されている方法を使わせていただいている。

ちなみにコレはALSA限定。

以下、引用。

ALSAでスピーカー出力を音声ファイルに保存するには、 ~/.asoundrc で以下の設定を書く。pcm-fileプラグインについてはALSA project - the C library reference: PCM (digital audio) plugins(http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html)参照。

    pcm.!default {
        type file
        slave {
          pcm "hw:0,0"
        }
        file /log/alsa.raw
    }

この設定を加えたら、ALSA環境で音を鳴らした時点で /log/alsa.raw に保存される。デフォルトではCD並の音質で保存される。これはraw audioファイルなので特殊なオプションを使って再生する必要がある。

mplayerの場合は「mplayer -demuxer rawaudio /log/alsa.raw」で再生できる。

ただし、音声を使ったプログラムが終了するまで(音声がなりおわっても無音のまま!!)記録し続けるので、ディスク容量が少ない人は注意が必要だ。

引用ここまで。

唯一、保存形式がrawオーディオなのが難点だが、それを除けば、再生したそのままが録音されるので割と便利。

*分かっていると思うが、/log以下にファイルを作るため、/log以下に一般ユーザでも書き込めるようにする必要がある。(もしくは管理者権限のあるユーザで実行する)

時間が出来たらもう少しスマートな方法を考えよう。

_ [Ubuntu][FC][Linux][OpenAL][研究関係]rawファイルをwavに変換

上記の方法で出来たrawファイルを別の形式に変換する。

とりあえず、wavにでもしてみよう。

使うのはsoxというソフト。

$ sudo apt-get install sox

で、以下のコマンドで変換する。

$ sox -c 2 -r 44100 -s -2 -t raw alsa2.raw -t wav file.wav

これでOK・・・のはず。

*soxで調べるとよく出てくる-wというオプションだが、指定してみるとエラーが出た。

・・・なぜだ!