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
相关产品推荐
相关产品推荐

