在使用ffmpeg推流过程中,几分钟或者十几分钟后时间不固定,会断掉报错av_interleaved_write_frame(): Broken pipe。流媒体服务器用的是srs,部署在Linux系统。
报错的日志:
Java代码:
@Async("taskExecutor")
public void plugFlow(String rtspUrl,String myStream) {
Logger log = LoggerFactory.getLogger(MonitorVideo.class);
BufferedReader br = null;
try {
String basePath = "/usr/local/ffmpeg/bin/ffmpeg ";
String command = basePath +
"-i " + rtspUrl +" "+
"-c copy -f flv " +
"rtmp://127.0.0.1/live/"+myStream;
log.info("【command】:{}",command);
log.info("rtmp://127.0.0.1/live/"+myStream);
Process process = Runtime.getRuntime().exec(command);
br = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String line = null;
while ((line = br.readLine()) != null) {
log.info("视频推流信息{}", line);
}
} catch (Exception e) {
log.error("ffmpeg推流失败:",e);
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
log.error("RequestUtil,IOException:",e);
}
}
}
}