2013-01-16 70 views
2

我試圖用this example保存直播視頻流。我正在爲本地主機進行測試,Red5版本爲1.0。攝像頭錄製Red5時丟失幀

streamPublishStart方法接收流,使用saveAs方法將其另存爲flv。但我記錄的flv文件只有1幀(不是第二個,使用GOM Player檢查)。但是,如果我附加一個聽衆流和檢查收到的包,我可以看到他們繼續前進。

這是我如何測試它;

public void streamPublishStart(IBroadcastStream stream) { 
    try { 
     stream.addStreamListener(new IStreamListener() { 
      @Override 
      public void packetReceived(IBroadcastStream streamObj, IStreamPacket packet) { 
       System.out.println(packet.getTimestamp() + " - " + packet.getDataType()); 
      } 
     }); 

     stream.saveAs(stream.getPublishedName(), false); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

此代碼打印時間戳,直到我停止記錄。我試圖從收到的包中保存這些字節,並將它們與文件saveAs創建的方法合併,沒有任何發生。

可能是什麼問題?有什麼建議麼?

回答

0

我降級到Red5 0.8.0 Final,Java 6和使用SimpleRecorder example,它的工作。

我找不到oflaDemo的來源,但可以轉換班,JD java decompiler

oflaDemo類.java文件都在webapps/oflaDemo/WEB-INF/classes目錄從安裝程序安裝後它。

這不是一個實際的答案,但這將保持正確的答案,直到出現更好的答案。