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

FFmpeg批量处理监控JPG帧生成AVI时提前终止,未完成全部帧编码的问题求助

FFmpeg批量处理监控JPG帧生成AVI时提前终止,未完成全部帧编码的问题求助

大家好,我最近在用FFmpeg处理监控摄像头的JPG帧文件时遇到了麻烦——明明有一万六千多张帧,合成AVI的时候总是编码到两千多帧就提前终止了,完全没法完成全部帧的处理,想请教下有没有人遇到过类似问题?

先说说我的使用场景:摄像头会通过FTP尽可能快地上传帧文件,一天下来大概能攒16000到20000张JPG。我设置了cron定时任务,趁晚上Hughesnet流量不限的时候自动把这些帧合成AVI视频,方便第二天早上查看和归档。

帧文件的命名格式是这样的:比如FrontDeer_20230218-101637.jpg,其中:

  • FrontDeer是摄像头名称
  • 20230218是日期(年月日)
  • 101637是时间(时分秒)

我用命令ls -l Front\*18-\*.jpg | wc -l统计过,当天的目标帧文件一共有16284个,但每次用FFmpeg合成时,都只处理了2534帧就停了。

我试过的命令大概是这样的(做过一些参数调整,但核心逻辑没变):

ffmpeg -pattern_type glob -i 'Front\*18-\*.jpg' -s 800x600 -v verbose Ftest2.avi

FFmpeg的verbose输出结尾是这样的:

No more output streams to write to, finishing.
frame= 2534 fps= 24 q=8.8 Lsize= 8122kB time=00:05:16.75 bitrate= 210.1kbits/s
video:8056kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.821897%
Input file #0 (Front*18-*.jpg):
Input stream #0:0 (video): 2534 packets read (128534848 bytes); 2534 frames decoded;
Total: 2534 packets (128534848 bytes) demuxed
Output file #0 (Ftest2.avi):
Output stream #0:0 (video): 2534 frames encoded; 2534 packets muxed (8249089 bytes);
Total: 2534 packets (8249089 bytes) muxed
2534 frames successfully decoded, 0 decoding errors

我老实说没看完FFmpeg所有文档,也不是完全看懂了看过的内容,但这事感觉应该是个很常规的批量帧转视频操作,就是搞不定。会不会是FFmpeg有什么默认的缓冲区限制,需要我手动调整参数来支持更多帧的处理?

最后附上我的系统和软件版本信息,方便大家排查:

  • 系统架构: x86_64,支持32位/64位,小端字节序
  • CPU: Intel(R) Atom(TM) CPU N455 @ 1.66GHz,2个物理核心,4线程
  • 内存状态: 总内存1982MB,可用1284MB;交换分区总2035MB,可用1927MB
  • 操作系统: Ubuntu 16.04.6 LTS (Xenial Xerus)
  • FFmpeg版本: 2.8.17-0ubuntu0.1,编译环境为gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 20160609

提前谢谢各位的帮助!

备注:内容来源于stack exchange,提问作者Dave Hill

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 11:37:49