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

时间:2010-09-17 14:39:42

标签: java video-encoding

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您可以查看this answer我在另一个问题上发帖写信给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);