我正在尝试使用以下代码将rtsp流下载的视频(带有Xuggler 5.4库)下载到文件中。
String inputSource = "rtsp://[ip-address]:[port]/user=[username]&[password]=password&channel=1&stream=1.sdp";
String outputFilename = "d:/downloadedrtsp.flv";
try {
IContainerFormat inFormat = IContainerFormat.make();
inFormat.setInputFormat("h246");
IMediaReader mediaReader = ToolFactory.makeReader(inputSource);
mediaReader.setQueryMetaData(false);
IMediaWriter mediaWriter = ToolFactory.makeWriter(outputFilename, mediaReader);
mediaReader.addListener(mediaWriter);
logger.info("before reading");
IError error;
while ((error = mediaReader.readPacket()) == null) {
logger.info("reading packet");
}
logger.info("error: " + error.getDescription());
logger.info(error.getType());
logger.info(error.toString());
} catch (Exception e) {
e.printStackTrace();
}
问题在于,在“读取之前”打印后,代码才会停止执行,经过很长一段时间后,它会从记录器中打印出三行:
错误:未知错误
ERROR_EOF
未知错误
当我在VLC媒体播放器中打开它时,Stream效果很好。我很害羞我的mediaReader配置中有一些错误,但我不知道我在哪里使用视频的经验很少。以下是一些有关视频的信息,取自VLC:
答案 0 :(得分:0)
似乎一切都按预期运作
错误类型ERROR_EOF
标记输入流的结束(请参阅the documentation)
你编程很长时间"停止执行"是Xuggler转换视频帧所需的时间(它实际上并没有"停止"只是遍历while
循环)。