gpt4 book ai didi

java - 使用 Xuggler 流式传输视频

转载 作者:搜寻专家 更新时间:2023-10-31 20:20:59 26 4
gpt4 key购买 nike

我能够使用下面的代码成功地使用 Xuggler 播放视频。我需要能够从 inputStream 而不是文件进行流式传输。我尝试使用注释掉的代码来创建一个 Icontainer。当我注释掉代码时,我确实修改了 getTestFile 方法以使用字符串而不是输入流。它最初是正确获取输入流的。

当我在 Icontainer 上调用 open 时,它只是无限期地阻塞。我不知道我是否正在正确地处理这个问题。我将如何做基本相同的事情但不使用文件和使用输入流?

谢谢:-)

package com.plumber.testing;

import com.xuggle.mediatool.IMediaReader;
import com.xuggle.mediatool.IMediaViewer;
import com.xuggle.mediatool.ToolFactory;
import com.xuggle.xuggler.IContainer;
import java.io.FileNotFoundException;
import java.io.InputStream;

public class VideoTest {

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


// IContainer iContainer = IContainer.make();
// iContainer.open(getTestFile("IMG_0983.MOV"), null);
// I was originally passing the icontainer to make reader
IMediaReader mediaReader = ToolFactory.makeReader(getTestFile("IMG_0983.MOV"));


IMediaViewer mediaViewer = ToolFactory.makeViewer(true);

mediaReader.addListener(mediaViewer);

while (mediaReader.readPacket() == null) ;

}

private static String getTestFile(String fileName) {
return VideoTest.class.getClassLoader().getResource("com/plumber/testing/testfiles/" + fileName).getPath();
}

}

最佳答案

我认为你需要做这样的事情:

    IContainer iContainer = IContainer.make();
if (iContainer.open(inputStream, IContainer.Type.READ, format) >= 0) {
IMediaReader mediaReader = ToolFactory.makeReader(iContainer);
...
}

...基于 javadocs 所说的内容。看起来需要使用 IContainerFormat 类的静态方法来获取格式。如果您提供 null 格式,open 方法将尝试猜测容器类型……显然。

关于java - 使用 Xuggler 流式传输视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18555000/

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