外部コマンド実行

半自動アニメエンコードスクリプト書いてまして。
x.264とかmp4box,tc2mp4とかは外部コマンド、バッククオーテーションで実行。

…だけど、標準エラーで吐かれるプログレスバーとかの表示がでない。

これはくまった。

…で、kidminの中の人に相談していたら、w5.exeのソース読んで打開してもらえた。

cmd = "コマンド"

iostream = IO.popen("#{cmd} 2>&1", "r");
iostream.each_byte() { |io|
  putc io
}

おお、すげー。
確かにバッファリングされずに、リアルタイムで出力が来る来る。

取り敢えず、とり頭で忘れる前にメモメモしてみました、っと。

# ----
訂正。
w5.exeは、kidminの中の人が動作確認用に作ったものだったらしいです。
寝ぼけ頭でやりとりしてたので勘違いしますたとさorz