我使用Red5记录来自用户的实时流。我能够将流保存到磁盘中,并生成一个FLV文件。
任何洞察力都会很感激的。
下面是我的相关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]
发布于 2011-01-30 17:02:19
我最近用establishOutputCodecID修复了一个bug,所以您可能想尝试一下当前的Xuggler树梢。
https://stackoverflow.com/questions/4281139
复制相似问题