Chrome环境下使用ffmpeg.js无法生成时长超过33秒的视频问题求助
问题原因分析
无法生成超过33秒视频的原因
你当前使用的输入匹配规则是f%03d.jpg,该通配符仅能匹配文件名编号为3位数字的图片,即最多覆盖f000.jpg到f999.jpg共1000帧素材。
按照常规30fps的帧率计算,1000帧对应的视频时长刚好约为33秒,帧数耗尽后ffmpeg会自动停止编码,这就是时长上限的来源。
修改匹配规则后进程中断的原因
%04d.jpg/%08d.jpg规则要求文件编号为4位/8位数字,如果你生成的帧文件名仍为3位数字格式(如f001.jpg而非f0001.jpg),ffmpeg无法匹配到任何符合规则的输入文件,就会直接中断编码进程。
解决方案
- 统一帧文件命名规则:如果需要导出更长的视频,提前把所有帧文件的编号位数调整到和你设置的通配规则一致,比如需要用到
%04d时,就把帧文件命名为f0000.jpg、f0001.jpg的4位编号格式 - 无需修改文件名的替代方案:可以替换输入参数为glob匹配模式,参数写法为
-pattern_type glob -i "f*.jpg",注意需要确认你使用的ffmpeg.js编译版本开启了glob模式支持 - 可选补充参数:如果你的帧编号不是从0开始,可额外添加
-start_number [你的起始编号]参数,避免ffmpeg找不到起始帧
内容的提问来源于stack exchange,提问作者sb32134
相关产品推荐
相关产品推荐

