iSquint 1.0 [Macとか]
ちょっとしたターミナルのTIPsを紹介。
//
一部でiPodムービーコンバータ、iSquint 1.0の評判が良いようです。で、このソフトは、内部的にはffmpegを使ってMPEG-4ファイルの生成を行っています。
コマンドラインからffmpegやmencoderをたたいたことのある人ならご存知のとおり、Unixで使われるコマンドでは「オプション」の指定が重要になってきます。
//
iSquintでも、ffmpegに対していくつかのオプションを使って変換処理をしているのですが、
いったいどんなオプションを使っているのだろう、
と、気になったことはありませんか?
こういうソフトが、裏でどんなコマンドを投げているのか、見る方法をご紹介します。そう、「ps」コマンドです。
psコマンドは、プロセスのリストを表示するコマンドです。MacOS Xで動くいろいろなソフトウェアは、OSとアプリケーションと分類できるものばかりではありません。さまざまなプロセスの集団が、おのおの強調して動いているのです。
iSquintで変換処理が動き始めたら、ターミナルを立ち上げて、次のようにうってみてください。
$ ps wwlx
UID PID PPID CPU PRI NI VSZ RSS WCHAN STAT TT TIME COMMAND
:
501 3411 64 0 46 0 189440 9432 - S ?? 1:10.21 /Volumes/iSquint/iSquint.app/Contents/MacOS/iSquint -psn_0_90963969
501 3574 1 0 31 0 27820 616 - S ?? 0:00.01 sh /tmp/isquint_command.sh
501 3575 3574 0 31 0 60768 6224 - R ?? 8:23.24 /Volumes/iSquint/iSquint.app/Contents/Resources/ffmpeg -threads 4 -i /Users/hoge/Desktop/test.avi -croptop 0 -cropbottom 0 -cropleft 0 -cropright 0 -s 320x240 -r 23.98 -pix_fmt yuv420p -vcodec xvid -g 300 -qmin 5 -b 1200 -async 1 -acodec aac /Users/hoge/Desktop/test.avi.ipod.mp4
501 15326 3411 0 31 0 116608 0 - R ?? 0:00.00 /Volumes/iSquint/iSquint.app/Contents/MacOS/iSquint -psn_0_90963969
:
と、こんな感じで何が動いているのかを一覧することができます。
ご覧の通り、動いているffmpegの変換オプションが一覧できるでしょう?これが、iSquintが使っているffmpegの使用オプションです。またiSquintは、/tmpの下にシェルプログラムを都度作り、それを呼び出しているのが見て取れるでしょう。ffmpegはこのシェルプログラムから呼び出されていますね。
これだけで、自分でいじってみたい人のヒントには十分と思います。
//
詳しく見てみましょう。
・UID 501とは、自分のユーザのID番号です。OSに登録したユーザごとに、UIDは変わります。もしOSのプロセス(UID 0など)も見たいときはpsコマンドのオプションに「a」を加えます。
・PIDは、プロセス自体のID番号です。プロセスごとにIDは変わります。
・PPIDは、プロセスを呼び出した親のプロセスのIDとなります。たどっていくと、必ずPPID 1にたどり着きます。これがMacOS Xのシステムのコアプロセスになるわけです。
・NIは、プロセスのスケジュールの優先度を示しています。-20〜+20まででデフォルトが0。プラスは優先度を下げるものです。マイナスは優先度上げるもので、システムに予約されています。
・STATはプロセスのステータスです。RはCPU時間を使って作業中、SはCPUを使っていない状態で待ち状態を示しています。
また、シェルがプロセスを起こす際は、プロセスを複製して、複製側が実行されるようになっています。iSquintが2行出てきているのは、それが理由です。
なお、PPIDが1となっているものは、親プロセスと独立して単独で実行されているプロセスです。nohupオプション付きでバックグランド実行すると、こうなります。親プロセスが終了しても一緒に終了しない、独立した子プロセスです。
$ nohup sleep 5 &
つまり、iSquintで作られたシェルプログラムは、nohup指定されているのがわかります。
//
なお、内蔵されているffmpegが、どんなオプションでコンパイルされているかみたいのであれば、例えばこうしてみると...
$ cd /Volumes/iSquint/iSquint.app/Contents/Resources
$ ./ffmpeg -?
ffmpeg version CVS, build 3277056, Copyright (c) 2000-2004 Fabrice Bellard
configuration: --enable-pthreads --disable-network --disable-mmx --disable-audio-oss --disable-v4l --disable-bktr --disable-dv1394 --disable-vhook --disable-ffserver --disable-ffplay --enable-libogg --enable-faad --enable-faac --enable-xvid --enable-x264 --enable-a52 --enable-gpl --disable-debug
built on Nov 22 2005 09:22:26, gcc: 3.3 20030304 (Apple Computer, Inc. build 1809)
./ffmpeg: missing argument for option '-?'
というわけで、スキルがあれば、自分でコンパイルしなおすこともできるわけですね。








コメント 0