似乎所有方法都需要文件或网址。我看到一些与OutputStream一起使用的方法,但我还没有设法使用其中一种方法打开IContainer;我总是得到无效的返回值。
答案 0 :(得分:1)
创建您自己的IURLProtocolHandler接口并传递给IContainer.open(...)以打开您想要的任何类型的媒体类型。
答案 1 :(得分:0)
您可以查看this answer我在另一个问题上发帖写信给OutputStream
(很容易就是ByteArrayOutputStream
)。
它的要点是使用com.xuggle.xuggler.io.XugglerIO
从OutputStream
映射到特殊类型的文件URL,以便FFMPEG可以访问该流。
IMediaWriter writer = ToolFactory.makeWriter(XugglerIO.map(outputStream));
请记住,您现在必须手动设置格式(因为它无法从文件名中检测到它)。例如:
IContainerFormat containerFormat = IContainerFormat.make();
containerFormat.setOutputFormat("ogg", null, "application/ogg");
writer.getContainer().setFormat(containerFormat);