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

时间:2013-03-04 07:02:48

标签: java audio video forwarding xuggle

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

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

我不知道这个片段是不正确的,还是我的xuggle是错的,或者我是SICK(只是开玩笑)但是每件事看起来都很好。当我播放视频时,它总是从第一个开始(不是我想要的位置)。

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

1 个答案:

答案 0 :(得分:4)

好的,我明白了;)

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

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);