|
|
|
|
@ -37,22 +37,22 @@ public class RTMPPublisher extends Thread { |
|
|
|
|
); |
|
|
|
|
logger.info(BusinessConstant.LOGGER_PREFIX + " : 执行ffmpeg命令 : {} ", cmd); |
|
|
|
|
process = Runtime.getRuntime().exec(cmd); |
|
|
|
|
|
|
|
|
|
if (!closeFlag) { |
|
|
|
|
// 若ffmpeg主动退出标志为否, 重新执行一次ffmpeg命令
|
|
|
|
|
logger.info(BusinessConstant.LOGGER_PREFIX + " : 执行ffmpeg命令失败 - 进行重试 : {} ", cmd); |
|
|
|
|
closeFlag = Boolean.FALSE; |
|
|
|
|
process = Runtime.getRuntime().exec(cmd); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
stderr = process.getErrorStream(); |
|
|
|
|
|
|
|
|
|
String errMsg = ""; |
|
|
|
|
logger.info(BusinessConstant.LOGGER_PREFIX + " : 执行ffmpeg命令 : 执行完成1 "); |
|
|
|
|
while ((len = stderr.read(buff)) > -1) { |
|
|
|
|
String str = new String(buff, 0, len); |
|
|
|
|
// errMsg += str;
|
|
|
|
|
if (debugMode) System.out.print(str); |
|
|
|
|
} |
|
|
|
|
logger.info(BusinessConstant.LOGGER_PREFIX + " : 执行ffmpeg命令 : 执行完成2 "); |
|
|
|
|
|
|
|
|
|
if (!closeFlag) { |
|
|
|
|
// 若ffmpeg主动退出标志为否, 重新执行一次ffmpeg命令
|
|
|
|
|
logger.info(BusinessConstant.LOGGER_PREFIX + " : 执行ffmpeg命令失败 - 进行重试 : {} ", cmd); |
|
|
|
|
closeFlag = Boolean.FALSE; |
|
|
|
|
process = Runtime.getRuntime().exec(cmd); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
logger.info(BusinessConstant.LOGGER_PREFIX + " : 执行ffmpeg命令失败, 关闭通道[{}], 并调用close方法释放原来的通道 : Process FFMPEG exited... : error msg = {} ", tag, errMsg); |
|
|
|
|
} catch (Exception ex) { |
|
|
|
|
|