gtk-recordMyDesktopやqt-recordMyDesktopでウィンドウ選択ができない件とJACK使用時にポートが一覧に出ない件について、およびそれらの対処
ウィンドウ選択ができない件
Mandriva Linuxに乗り換えた後gtk-recordMyDesktopをインストールして起動したところ、対象ウィンドウの選択ボタンが動作していないことに気づいた。端末から起動してみると
$ gtk-recordMyDesktop (ウィンドウの選択を行うボタンを押す) Traceback (most recent call last): File "/usr/lib/python2.5/site-packages/recordMyDesktop/rmdSimple.py", line 239, in __select_window__ width+=x TypeError: unsupported operand type(s) for +=: 'NoneType' and 'NoneType'
というメッセージが出ていた。上のメッセージはGTK+ 2版のもので、Qt4版も同様にダメだったが、以前Gentooを使用していたときには見なかったエラーだった。
ソース(GTK+ 2版)の該当部分を見ると
[引用]ファイル名: /usr/lib/python2.5/site-packages/recordMyDesktop/rmdSimple.py より
class simpleWidget(object): (中略) def __select_window__(self,button): xwininfo_com=['xwininfo','-frame'] if self.values[21]==1: xwininfo_com=['xwininfo'] (stdin,stdout,stderr)=os.popen3(xwininfo_com,'t') wid=stdout.readlines() stdin.close() stdout.close() stderr.close() x=y=width=height=None for i in wid: if i.lstrip().startswith('Absolute upper-left X:'): x=int(i.split(' ')[len(i.split(' '))-1]) elif i.lstrip().startswith('Absolute upper-left Y'): y=int(i.split(' ')[len(i.split(' '))-1]) elif i.lstrip().startswith('Width:'): width=int(i.split(' ')[len(i.split(' '))-1]) elif i.lstrip().startswith('Height:'): height=int(i.split(' ')[len(i.split(' '))-1]) if x<0: width+=x x=0 (以下略)
エラーになった部分の手前(上)において外部プロセスのxwininfo*1を呼び出してその結果を解析しているようだったので、パッケージのインストール状態を確認すると、案の定「xwininfo」が未インストールだった。これをインストールした後で再び試したところ、無事に動作した。Qt4版も同様に動作した。
JACKを使用しているのにポートが見えない件
上の件とは別に、JACK Audio Connection Kitを使用しての音声取り込みのポート選択ができなかった。ポート一覧には
jack_lsp returned no ports. Make sure that jackd is running.
と出ているが、実際にはjackdデーモンは動作している。
色々調べた結果、Mandriva Linuxの「jackit」パッケージには、JACKの利用可能ポート一覧を表示するjack_lspコマンドが含まれておらず、「jackit-example-clients」という別パッケージに分かれていたのが原因と分かり、これをインストールすることでこの問題は解決した。
関連記事:
- recordMyDesktopでX Window System上の操作を動画に記録する
- gtk-recordMyDesktopとqt-recordMyDesktopのJACKポートの一覧に余分な「入力」ポートが表示される件についてと、その対処
- recordMyDesktopの追加メモ(2009/4/21現在)
使用したバージョン:
- gtk-recordmydesktop 0.3.8-1mdv2009.0
- qt-recordmydesktop 0.3.7.2-4mdv2009.0
- recordmydesktop 0.3.8-1mdv2009.0
- xwininfo 1.0.4-1mdv2009.0
- jackit 0.116.1-1.1mdv2009.0
- jackit-example-clients 0.116.1-1.1mdv2009.0
*1:選択したウィンドウの座標とサイズを取得するのに使用している