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

AWS Lambda中FFmpeg drawtext滤镜执行异常求助

AWS Lambda中FFmpeg drawtext滤镜执行失败排查

在AWS Lambda环境中使用FFmpeg的drawtext滤镜时,进程仅处理3帧就异常退出,但拼接、裁剪等其他视频操作可正常运行,本地执行完全相同的命令则能正常完成。以下是执行日志:

2022-07-24T00:38:12.120Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    About to execute step:  [
  '-y',
  '-v',
  'repeat+level+verbose',
  '-i',
  '/tmp/out_0.mp4',
  '-vf',
  "drawtext=fontfile=DejaVuSans.ttf:text='Helloooo':fontcolor=white:fontsize=24:box=1:boxcolor=black@0.7:boxborderw=5:x=10:y=h-th-10",
  '-c:a',
  'copy',
  '/tmp/out_1.mp4'
]
2022-07-24T00:38:12.440Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    [info] ffmpeg version N-62110-g4d45f5acbd-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2022 the FFmpeg developers
[info]   built with gcc 8 (Debian 8.3.0-6)
[info]   configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
[info]   libavutil      57. 26.100 / 57. 26.100
[info]   libavcodec     59. 33.100 / 59. 33.100
[info]   libavformat    59. 24.100 / 59. 24.100
[info]   libavdevice    59.  6.100 / 59.  6.100
[info]   libavfilter     8. 40.100 /  8. 40.100
[info]   libswscale      6.  6.100 /  6.  6.100
[info]   libswresample   4.  6.100 /  4.  6.100
[info]   libpostproc    56.  5.100 / 56.  5.100

2022-07-24T00:38:12.682Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    [h264 @ 0x63bc000] [verbose] Reinit context to 1920x1088, pix_fmt: yuv420p

2022-07-24T00:38:13.321Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    [info] Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/out_0.mp4':
[info]   Metadata:
[info]     major_brand     : isom
[info]     minor_version   : 512
[info]     compatible_brands: isomiso2avc1mp41
[info]     encoder         : Lavf59.24.100
[info]   Duration: 00:00:30.02, start: 0.000000, bitrate: 5135 kb/s
[info]   Stream #0:0[0x1](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, smpte170m, progressive, left), 1920x1080 (1920x1088) [SAR 1:1 DAR 16:9], 4998 kb/s, 
2022-07-24T00:38:13.321Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    29.98 fps, 30 tbr, 90k tbn (default)
[info]     Metadata:
[info]       handler_name    : VideoHandler
[info]       vendor_id       : [0][0][0][0]

2022-07-24T00:38:13.341Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    [info]   Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s (default)
[info]     Metadata:
[info]       handler_name    : SoundHandler
[info]       vendor_id       : [0][0][0][0]

2022-07-24T00:38:13.440Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    [info] Stream mapping:
[info]   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
[info]   Stream #0:1 -> #0:1 (copy)
[info] Press [q] to stop, [?] for help

2022-07-24T00:38:13.440Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    [h264 @ 0x63e57c0] [verbose] Reinit context to 1920x1088, pix_fmt: yuv420p

2022-07-24T00:38:15.321Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    [graph 0 input from stream 0:0 @ 0x6699840] [verbose] w:1920 h:1080 pixfmt:yuv420p tb:1/90000 fr:30/1 sar:1/1

2022-07-24T00:38:16.121Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    [libx264 @ 0x63c1140] [info] using SAR=1/1

2022-07-24T00:38:16.222Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    [libx264 @ 0x63c1140] [info] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2

2022-07-24T00:38:16.341Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    [libx264 @ 0x63c1140] [info] profile High, level 4.0, 4:2:0, 8-bit
[libx264 @ 0x63c1140] [info] 
2022-07-24T00:38:16.360Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00

2022-07-24T00:38:16.642Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    [info] Output #0, mp4, to '/tmp/out_1.mp4':
[info]   Metadata:
[info]     major_brand     : isom
[info]     minor_version   : 512
[info]     compatible_brands: isomiso2avc1mp41
[info]     encoder         : Lavf59.24.100

2022-07-24T00:38:16.881Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    [info]   Stream #0:0(und): Video: h264, 1 reference frame (avc1 / 0x31637661), yuv420p(tv, smpte170m, progressive, left), 1920x1080 (0x0) [SAR 1:1 DAR 16:9], q=2-31, 30 fps, 15360 tbn (default)
[info]     Metadata:
[info]       handler_name    : VideoHandler
[info]       vendor_id       : [0][0][0][0]
[info]       encoder         : Lavc59.33.100 libx264
[info]     Side data:
[info]       cpb: 
2022-07-24T00:38:16.900Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A

2022-07-24T00:38:16.960Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    [info]   Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s (default)
[info]     Metadata:
[info]       handler_name    : SoundHandler
[info]       vendor_id       : [0][0][0][0]

2022-07-24T00:38:17.321Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    [info] frame=    1 fps=0.9 q=0.0 size=       0kB time=00:00:00.07 bitrate=   5.1kbits/s speed=0.0708x    
2022-07-24T00:38:17.502Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    [info] frame=    1 fps=0.3 q=0.0 size=       0kB time=00:00:00.09 bitrate=   4.0kbits/s speed=0.0247x    
2022-07-24T00:38:23.920Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    [info] frame=    2 fps=0.3 q=0.0 size=       0kB time=00:00:00.13 bitrate=   2.8kbits/s speed=0.0204x    
2022-07-24T00:38:38.942Z    8812cc07-d9e4-4750-8c74-1f987b7ca873    INFO    Close: Exit code:  null

排查方向

  • 字体文件路径问题
    Lambda环境默认没有DejaVuSans.ttf字体,本地能运行是因为系统预装该字体。需将字体文件打包到Lambda部署包,或上传至/tmp目录,然后在drawtext参数中指定绝对路径,例如fontfile=/tmp/DejaVuSans.ttf。可先在Lambda中打印/tmp目录文件列表,确认字体文件是否存在。

  • Lambda资源限制
    日志显示处理速度极慢(speed低至0.02x),大概率是Lambda内存/CPU配额不足。drawtext滤镜加视频重新编码(使用libx264)需要较多资源,建议将Lambda内存调高至至少2048MB(内存越高,CPU配额也会同步提升)。同时检查Lambda超时时间,当前日志显示进程在38:38退出,可能是超时导致进程被终止,需将超时时间调整到足够处理30秒视频的时长(比如5分钟)。

  • 日志缺失错误信息
    当前日志未显示具体错误,仅看到Exit code: null。建议给FFmpeg添加-report参数生成详细执行报告,或确保捕获到FFmpeg的stderr输出(Lambda中stdout和stderr可能分开,需确认日志收集逻辑是否完整)。

内容的提问来源于stack exchange,提问作者yarrichar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 23:51:05