微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何控制和减少 FFmpeg 在 AWS Lambda 中使用的内存?

如何解决如何控制和减少 FFmpeg 在 AWS Lambda 中使用的内存?

我使用 FFmpeg 作为层设置了 AWS Lambda (Python 3.8),将 .mov 文件重新打包到 HLS。 这是我用来重新打包剪辑的命令:

/opt/ffmpeg -i file_name.mov -codec: copy -start_number 1 -hls_time 10 -hls_playlist_type vod -hls_list_size 0 -f hls -master_pl_name master_name.m3u8 master.m3u8

然后使用以下命令运行命令:

subprocess.run(ffmpeg_command,stdout=subprocess.PIPE,stderr=subprocess.PIPE,preexec_fn=setlimits)

对于较小的文件(例如 5GB)一切正常,但我也需要它来处理最大 15GB 的文件。 那是 Lambda 超时的时候,因为它用完了我设置为最大 10GB 的内存,而 FFmpeg 正在使用所有这些来重新打包大剪辑。

我试图通过使用 Python 资源模块来限制 FFmpeg 内存使用(如您所见 preexec_fn) 这是函数

def setlimits():
    resource.setrlimit(resource.RLIMIT_AS,(1048576,1048576))

但它没有帮助并导致 FFmpeg 根本没有运行...... 有没有办法控制 FFmpeg 内存使用?或者我可以升级我的 FFmpeg 命令以减少内存消耗? 重新打包这些 .mov 文件的要点是不要改变它们的质量。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。