我可以使用Xuggler将video/音频编码为字节数组吗?

似乎所有方法都需要文件或url。 我看到一些与OutputStream一起使用的方法,但我还没有设法使用其中一种方法打开IContainer; 我总是得到一个无效的返回值。

创建您自己的IURLProtocolHandler接口并传递给IContainer.open(…)以打开您想要的任何类型的媒体类型。

您可以查看我在另一个问题上发布的答案,以写入OutputStream (可以很容易地成为ByteArrayOutputStream )。

它的要点是使用com.xuggle.xuggler.io.XugglerIOOutputStream映射到特殊类型的文件URL,以便FFMPEG可以访问流。

 IMediaWriter writer = ToolFactory.makeWriter(XugglerIO.map(outputStream)); 

请记住,您现在必须手动设置格式(因为它无法从文件名中检测到它)。 例如:

 IContainerFormat containerFormat = IContainerFormat.make(); containerFormat.setOutputFormat("ogg", null, "application/ogg"); writer.getContainer().setFormat(containerFormat);