現在、windows vista に ffmpeg をインストールし、java(1.6)から以下のようにffmpeg.exeを呼び出しています。
--------------------------------------------------------------
public static void main(String[] args) {
ProcessBuilder builder = new ProcessBuilder("C:/Tools/3GP_Converter034/cores/debug.bat");
try {
Process process = builder.start();
InputStream is = process.getInputStream();//標準出力
printInputStream(is);
InputStream es = process.getErrorStream();//標準エラー
printInputStream(es);
}
catch (Exception e) {
throw new ConversionException(e);
}
}
public static void printInputStream(InputStream is) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(is));
for (;;) {
String line = br.readLine();
if (line == null) break;
System.out.println(line);
}
}
--------------------------------------------------------------
debug.batの中身は以下です。
--------------------------------------------------------------
C:/Tools/3GP_Converter034/cores/ffmpeg.exe -y -i c:/work/a.mpg -f flv -vcodec flv -r 25 -b 900k -ar 44100 -ab 64k c:/work/out99.flv
--------------------------------------------------------------
debug.batを直接呼び出すと正常にout99.flvが出力されるのですが、java経由だとうまくできません。
printInputStreamメソッドから以下のsysytem out文が出力されたまま止まってしまいます。
C:\java>C:/Tools/3GP_Converter034/cores/ffmpeg.exe -y -i c:/work/a.mpg -f flv -vcodec flv -r 25 -b 900k -ar 44100 -ab 64k c:/work/out99.flv
まったく理由がわかりませn。
どなたかご教示ください;;
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
う~ん。
標準出力と標準エラーの出力をコメントアウトしてみて、
代わりに
process.waitFor();
int result = process.exitValue();
System.out.println("result:"+result);
としてみるとどうなりますか?
正常に実行できていれば、resultが0になると思うのですが…。
この回答への補足
ご回答ありがとうございます。
ご提示いただいた通りのコードを実行したところ、
process.waitFor()以降に処理が進まない状態となります。
やはりffmpegコマンドが実行されていないように思えます・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System.err. printlnとSystem.o...
-
Log4jで機能毎に別ファイルへ出...
-
system.out.printが出力されない
-
Javaで改行などが出来ないのです。
-
flush()とclose()について
-
1~100までの数字を表示し、か...
-
javaコンソール出力でVT-100等...
-
1~100までの数字を表示したい
-
Log4Jではログを改行できない?
-
Webアプリなどで、エクセルを出...
-
日付と曜日が合わない
-
テキストエリアで改行する
-
Tomcatが無応答となる現象が起...
-
Message-IdをHTMLタグとみなさ...
-
うるう年
-
JavaScriptの変数をjavaのメソ...
-
DOMでパースしているXML全体の...
-
プールとスプールの違いがわか...
-
System.out.printlnの出力先
-
行列の表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.err. printlnとSystem.o...
-
flush()とclose()について
-
Javaで改行などが出来ないのです。
-
System.out.printlnの出力先
-
Log4jで機能毎に別ファイルへ出...
-
1~100までの数字を表示し、か...
-
system.out.printが出力されない
-
1~100までの数字を表示したい
-
StringBufferで改ページ処理を...
-
switch分が機能しません。
-
javaにおけるCSV出力時の文字コ...
-
Eclipseのコンソールを常に表示...
-
Tomcatが無応答となる現象が起...
-
プールとスプールの違いがわか...
-
JavaScriptの変数をjavaのメソ...
-
一定のスペースを空けて端を揃...
-
数字文字列をパック10進数に変...
-
tomcatのstdout.logを停止したい。
-
System.out.printlnの意味がよ...
-
JAVAのServletで、画像表示につ...
おすすめ情報