You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jcodec 0.2.5将多张图片生成视频后时长为0如何解决

jcodec 0.2.5 合成视频时长为0问题解决方案

你遇到的是jcodec 0.2.5版本AWTSequenceEncoder的已知缺陷:createSequenceEncoder静态方法传入的帧率参数未被正确传递到底层MP4复用器,导致最终生成的视频文件轨道元数据中的总时长被错误标记为0,实际帧数据已经完整写入,所以VLC能读取到第一帧内容。

解决方案

方案1:修改编码器构造逻辑(无需升级版本)

替换原来的编码器创建代码,手动指定时间基参数:

// 首先创建可写的文件通道
SeekableByteChannel channel = NIOUtils.writableFileChannel(file);
// 手动构造编码器,明确指定25fps对应的时间基为1/25
AWTSequenceEncoder encoder = new AWTSequenceEncoder(channel, Rational.R(1, 25));

后续编码逻辑保持不变,遍历图片调用encoder.encodeImage(image),全部处理完成后调用encoder.finish(),最后关闭文件通道即可。

方案2:升级jcodec版本

该bug已在0.2.6及后续版本修复,直接升级依赖版本后,你原本的代码无需修改即可正常生成正确时长的视频。

内容的提问来源于stack exchange,提问作者Hervé Girod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:06:03