gpt4 book ai didi

java - xuggler icontainer 从输入流读取

转载 作者:行者123 更新时间:2023-11-30 08:38:29 25 4
gpt4 key购买 nike

我正在使用 xuggler 将视频转码为不同的格式。如果我直接从文件打开我的 IContainer,它可以完美运行,但是,这次我想使用 InputStream 打开 IContainer。奇怪的是我试图通过 FileInputStream 打开一个 mp4 格式的视频,可以使用这个 FileInputStream 打开 IContainer,但是我无法读取这个流中的 Ipacket。有人可以给我一些建议吗?错过了什么吗?我真的需要我的 xuggler 来处理流

public static void main(String[] args) throws IOException {

//the file input stream
FileInputStream fi = new FileInputStream("test.mp4");

//icontainer format
IContainerFormat format = IContainerFormat.make();
format.setInputFormat("mp4");

IContainer container = IContainer.make();
//open container via FileInputStream
int data = container.open(fi, format);

IPacket packet = IPacket.make();
//read packet
int info = container.readNextPacket(packet);

System.out.println(data);
System.out.println(info);
}

结果

data: 0
info: -1094995529

根据 IError,当我尝试读取数据包时出现未知错误。我正在使用 xuggler 5.4

最佳答案

首先,流必须是可搜索的(就像hadoop中的FSDataInputStream),否则Xuggler无法处理它,FileInputStream不是这种流,sad....实际上,seek()函数对于Xuggler读取a很重要媒体文件

现在,开始处理可搜索流。

我找到了解决方案,Xuggler 实际上可以通过 IURLPROTOCOLHANDLER 处理流,我创建了我的自定义类,它实现了 iurlprotocolhandler 并且它“有效”。我从中学到了Example ,它使用流 FSDataInputStream。

关于java - xuggler icontainer 从输入流读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36519812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com