/********************** FFMPEG ************************/
public static void FFMPEG(String command) {
command = Cache.ffmpeg_command_root + " -loglevel quiet " + command;
logger.info(command);
//linux下,JVM不能很好的把命令传递给底层,需要shell帮助编译
if (Cache.isLinux)
CMD(new String[] { "sh", "-c", command });
else
CMD(command);
}
/********************** CMD ************************/
public static void CMD(String command) {
try {
CMDProcess(Runtime.getRuntime().exec(command));
} catch (IOException e) {
e.printStackTrace();
}
}
public static void CMD(String[] command) {
try {
CMDProcess(Runtime.getRuntime().exec(command));
} catch (IOException e) {
e.printStackTrace();
}
}
static void CMDProcess(Process process) {
try {
CMDProcess(process.getErrorStream());
CMDProcess(process.getInputStream());
//阻塞进行为同步等待
process.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
static void CMDProcess(InputStream inputStream) {
//如果不进行stream释放,很容易导致底层死锁挂死等问题
new Thread() {
private void run() {
try {
while (inputStream.read() > 0) {
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}.run();
}
WINDOWS/LINUX下JAVA命令行调用FFMPEG
最新推荐文章于 2024-04-26 16:47:13 发布