タイトルがかなり紛らわしい場合は申し訳ありませんが、Javaで別のアプリにパイプされているアプリの標準出力を取得できるかどうか疑問に思っています。
これがコマンドラインです。
sox -d -t wav - | lame - test.mp3
これがbashで実行される場合、これは出力です。
Input File : '/dev/dsp' (ossdsp)
Channels : 2
Sample Rate : 48000
Precision : 16-bit
Sample Encoding: 16-bit Signed Integer PCM
In:0.00% 00:00:25.00 [00:00:00.00] Out:1.20M [ -|=- ] Clip:0
最後の行は、ユーザーがSIGINTを送信するまで、soxによって更新されます。
問題は、Javaでは、そのプロセスからのInputStreamがデータを生成しないことです。しかし、soxの配管を省略してラメにするとsox -d -t wav test.wav
、InputStreamはデータを取得します。私の質問は、コンソールアウトに何が起こったのかということです。どうすればアクセスできますか。