ffmpeg录制视频,DOS下没问题,java调用不成功

ong startTime = System.currentTimeMillis();
System.out.println(startTime);

List<String> commend = new ArrayList<String>();

commend.add(FileUtils.getConvertToolsDir() + "ffmpeg.exe");

commend.add("-y");

commend.add("-i");

commend.add(streamString);

// 视频选项

commend.add("-vcodec"); // 编码器

commend.add("copy");

commend.add("-acodec"); // 编码器

commend.add("copy");

commend.add("-b"); // 码率

commend.add("128k");

commend.add("-s"); // 图像分辨率

commend.add("320*240");

commend.add("-f");

commend.add("flv"); // 输出flv格式

commend.add(recordVideoDirsString+todayStr+".flv");

//commend.add("d:/1.flv");

System.out.println(commend.toString());

try {

ProcessBuilder builder = new ProcessBuilder();

builder.command(commend);

Process p = builder.start();

doWaitFor2(p);

//p.destroy();

long endTime = System.currentTimeMillis();

System.out.println(endTime);

} catch (Exception e) {

e.printStackTrace();

}

protected int doWaitFor2(Process p) {

int exitValue = -1; // returned to caller when p is finished

try {

InputStream in = p.getInputStream();

InputStream err = p.getErrorStream();

boolean finished = false; // Set to true when p is finished

while (!finished) {

try {

StringBuilder inSb = new StringBuilder();

while (in.available() > 0) {

// Print the output of our system call

Character c = new Character((char) in.read());

inSb.append(c);

}

System.out.println(inSb.toString());

StringBuilder errSb = new StringBuilder();

while (err.available() > 0) {

Character c = new Character((char) err.read());

errSb.append(c);

}

System.out.println(inSb.toString());

exitValue = p.exitValue();

finished = true;

System.out.println(exitValue);

} catch (IllegalThreadStateException e) {

TimeUnit.MILLISECONDS.sleep(500L);

}

}

} catch (Exception e) {

e.printStackTrace();

}

return exitValue;

}

控制台信息
1400124592046
[//192.168.1.145/share/var/converttools/ffmpeg.exe, -y, -i, rtmp://192.168.1.145/live/livestream1 live=1, -vcodec, copy, -acodec, copy, -b, 128k, -s, 320*240, -f, flv, //192.168.1.145/share/var/recordVideoDir/201405151129.flv]

一串空白

1
1400124593602

要注意JAVA下运行和DOS命令行,当中的系统变量是不一定相同的追问

具体要如何设置呢?请看我的控制台输出内容

温馨提示:答案为网友推荐,仅供参考
大家正在搜