红色5从现场直播和Xuggle生成FLV

时间:2010-11-25 22:02:46

标签: flash streaming flv red5 xuggle

我使用Red5记录用户的实时流。我能够将流保存到磁盘,并生成一个FLV文件。

  1. 当我尝试用某个FLV播放器读取FLV文件时 - 好像文件的元数据已损坏 - 这也使得进度条表现得很奇怪。

  2. 此外,我尝试使用Xuggle播放该文件。这似乎是不可能的,因为生成的FLV中没有编解码器ID。

  3. 非常感谢任何见解。

    这是我的相关Red5(JAVA)代码:

    public void record(IConnection conn, String streamName) 
    {
      ClientBroadcastStream stream = (ClientBroadcastStream) getBroadcastStream(
      conn.getScope(), streamName);
      try {
            stream.saveAs(streamName, false);
      } catch (Exception e) {
            System.out.print(e.getMessage());
      }
    }
    
    public void encodeWithXuggler(IConnection conn, String streamName)
    {
       String nm = "C:\\Program Files\\Red5\\webapps\\Red5Recorder\\streams\\"+
                  streamName+".flv";
       File f = new File(nm);
    
       if (f.exists()) {
    
       IMediaReader reader = ToolFactory.makeReader(nm);
    
       reader.addListener(ToolFactory.makeWriter("output.mov", reader));
    
       while (reader.readPacket() == null);
    
       } else {
           System.out.print("NOT EXiST");
       }
    
    }
    

    我得到的Xuggle错误消息:

    Caused by: java.lang.IllegalArgumentException: null inputCodecId at com.xuggle.xuggler.IContainerFormat.establishOutputCodecId(IContainerFormat.java:295) [xuggle-xuggler.jar:3.4.1012] at com.xuggle.mediatool.MediaWriter.addStreamFromContainer(MediaWriter.java:1141) [xuggle-xuggler.jar:3.4.1012] at com.xuggle.mediatool.MediaWriter.getStream(MediaWriter.java:1046) [xuggle-xuggler.jar:3.4.1012] at com.xuggle.mediatool.MediaWriter.encodeAudio(MediaWriter.java:837) [xuggle-xuggler.jar:3.4.1012] at com.xuggle.mediatool.MediaWriter.onAudioSamples(MediaWriter.java:1448) [xuggle-xuggler.jar:3.4.1012] at com.xuggle.mediatool.AMediaToolMixin.onAudioSamples(AMediaToolMixin.java:89) [xuggle-xuggler.jar:3.4.1012] at com.xuggle.mediatool.MediaReader.dispatchAudioSamples(MediaReader.java:628) [xuggle-xuggler.jar:3.4.1012] at com.xuggle.mediatool.MediaReader.decodeAudio(MediaReader.java:555) [xuggle-xuggler.jar:3.4.1012] at com.xuggle.mediatool.MediaReader.readPacket(MediaReader.java:469) [xuggle-xuggler.jar:3.4.1012]

1 个答案:

答案 0 :(得分:0)

我最近使用establishOutputCodecID修复了一个错误,因此您可能需要尝试当前Xuggler树的一小部分。