2015-07-10 41 views
0

我想下載一個視頻(與一個Xuggler 5.4庫)從rtsp流使用下面的代碼文件。mediaReader.readPacket()塊試圖讀取Xuggler中的rtsp流

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: Unknown error

ERROR_EOF

Unknown error

流的偉大工程,當我打開它在VLC媒體播放器中。我很確定我的mediaReader配置存在一些錯誤,但是我不知道我在哪裏使用視頻的經驗很少。下面是關於視頻的一些信息,從VLC採取:

enter image description here

回答

0

看起來一切正常。
錯誤類型ERROR_EOF表示輸入流結束(請參閱the documentation)。
長時間編程「停止執行」是Xuggler轉換視頻幀所需的時間(實際上它不會「停止」,只是循環遍歷while循環)。