Xuggler,xuggler 5.4 中的转发和倒带视频不起作用

Posted

技术标签:

【中文标题】Xuggler,xuggler 5.4 中的转发和倒带视频不起作用【英文标题】:Xuggler, forwarding and rewinding video in xuggler 5.4 NOT WORKING 【发布时间】:2013-03-04 07:02:48 【问题描述】:

我在我的应用程序中使用了xuggle-xuggler5.4来添加视频和音频播放功能,我已经深入谷歌并找到了以下sn-p:

long duration = container.getDuration();
long target = new Double(duration * .50).longValue();
container.seekKeyFrame(0, target, 0, 0, IContainer.SEEK_FLAG_BYTE);

我不知道这个 sn-p 是否不正确,或者我的 xuggle 是错误的,或者我是 SICK(开个玩笑),但一切看起来都很好。当我播放视频时,它总是从第一个开始(不是我想要的位置)。

如果有人可以帮助我,我会很高兴 谢谢

【问题讨论】:

【参考方案1】:

好的,我明白了;)

我得到的视频时长和帧速率如下:

IStream stream = iContainerObj.getStream(i);
IStreamCoder coder = stream.getStreamCoder();

if (coder.getCodecType() == ICodec.Type.CODEC_TYPE_VIDEO
    && videoStreamId == -1) 
videoDuration = container.getDuration() == Global.NO_PTS ? 0
        : container.getDuration() / 1000;
frameRate = coder.getFrameRate().getDouble();
    // other ....
 

然后跳转到特定位置,我将以毫秒为单位的持续时间转换为秒,然后乘以 frameRate 和我想要的秒。最后调用 seekKeyFrame 跳转到位置。

注意:我也使用了 =>> IContainer.SEEK_FLAG_FRAME,这表明我正在为该方法提供帧号。

int jumpToThisSecond = 65;
long jumbTo = (long) (((videoDuration / 1000) * frameRate) * jumpToThisSecond);
container.seekKeyFrame(0, 0, jumbTo, container.getDuration(),
            IContainer.SEEK_FLAG_FRAME);

【讨论】:

我正在使用 Xuggler 库。我在云中有视频(4.5 gb 视频)。我想要转发并获取特定的帧。我的输入视频作为 InputStream 到容器。如果我使用搜索框架,如果它是流,则它不会获取,而从文件系统加载文件我输入为 URL,这里搜索框架工作完美。我的问题:如果视频是输入流,Xuggler 会失败吗?需要帮助。 @PraveenGopal 从我上次与 Xuggler 合作到现在已经有 6 年了。我建议您在新问题中发布您的问题,以便其他活跃的人可以帮助您。 我发布了但没有回复。你能查一下***.com/questions/58483424/…

以上是关于Xuggler,xuggler 5.4 中的转发和倒带视频不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 xuggler 中转发和倒带音频

Xuggler 编码和复用

设置 Xuggler 的初学者指南

如何在 java/xuggler 中混音多个音频通道?

Xuggler 和从直播中播放

添加xuggler依赖项会产生错误