这个问题通常是因为AWS Lambda中Ffmpeg缺少内存,导致其被操作系统杀死。为了解决这个问题,可以尝试增加AWS Lambda函数的内存限制,同时使用最新版本的Ffmpeg。
以下是一些可能的解决方案:
在AWS Lambda的配置中增加内存限制,通常增加到最大可用内存的一半,例如,如果可以使用最大内存2048MB,则将内存限制设置为1024MB。
使用最新版本的Ffmpeg可以解决一些已知的问题,并且通常包含以前版本中的修补程序。可以通过以下命令在AWS Lambda下安装最新的Ffmpeg版本:
curl https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz | tar -xJ && mv ffmpeg-*-static /opt/ffmpeg
其中,curl命令使用John Van Sickle的静态版本存档,tar命令解压缩存档,然后将结果移动到AWS Lambda的/opt/ffmpeg目录中。
另一个可能的解决方案是通过调整Ffmpeg命令来减少内存使用量。例如,可以通过减少片段大小或更改编码器来尝试减少内存使用量。
例如,调整片段大小:
ffmpeg -i input.mp4 -c:v libx264 -hls_time 2 -hls_list_size 0 output.m3u8
在这个命令中,hls_time参数设置为2秒,这意味着输出的每个片段都是2秒长的。通过增加片段大小,可以减少内存使用量。
总的来说,这些方法可以帮助解决AWS Lambda中的Ffmpeg HLS转换错误。如果这些方法不能解决问题,请考虑联系AWS支持或其他技术支持机构寻求帮助。