使用 aws lambda node js 获取存储在 s3 存储桶中的视频的视频元数据
Posted
技术标签:
【中文标题】使用 aws lambda node js 获取存储在 s3 存储桶中的视频的视频元数据【英文标题】:Getting video metadata of a video stored in s3 bucket using aws lambda node js 【发布时间】:2020-11-10 20:28:02 【问题描述】:我有一个视频存储在 aws s3 存储桶中,我想在使用节点 js 运行时的 aws lambda 中获取视频的元数据(如帧速率、分辨率等)。
如果这可以在内存中完成而不是在 lambda 临时内存中下载整个视频会更好
【问题讨论】:
【参考方案1】:MediaInfo 原生支持 AWS,无需在第一步下载文件。 MediaInfo 将分析所需的内容下载到 RAM 中,并在需要时自行执行搜索请求。
网址样式为https://AWSKey:AWSSecret@s3...
。
也可以使用预签名的 URL,但 20.03 版本有问题,您需要使用 MediaInfo snapshots。
Jérôme,MediaInfo 的开发者。
【讨论】:
如果我使用其他网站的 url 会完全下载还是部分获取元数据? 我正在尝试使用 19.09 和 20.03 版本的预签名 URL,但它不起作用。预签名的 URL 在浏览器中运行良好。如何在 aws lambda 中下载更多旧版本 我也试过https://AWSKEY:AWSSECRET@s3.amazonaws.com/bucket/key
url,它也不起作用
MediaInfo 的行为在 S3 或其他站点上是相同的。 S3 被很多用户使用,已知 AWSKEY:AWSSECRET 样式(由多个赞助商使用)很好,并且在 20.03(19.09 和快照很好)中预签名的 URls 错误。如果您认为有问题,请将带有真实用例(URL 或临时密钥/秘密)的命令发送到 info@mediaarea.net 以进行调试。
好的。所以,我从最新的快照下载了 lambda zip 文件,它在我之前从网站下载 zip 时可以正常工作。感谢您制作此工具【参考方案2】:
您可以通过headObject operation 获取视频的元数据。
这是在不下载视频的实际内容的情况下完成的。
编辑:你说得对,这对你没有帮助。 提取视频的实际技术元数据似乎并非易事。 AWS blog where they extract metadata via MediaInfo on lambda 上有一个很好的例子。
【讨论】:
headObject 操作返回的数据不包含视频的帧率、分辨率等数据。它包含 contentLength、lastModified 等数据。 你说得对。我已经编辑了我的答案,也许这会有所帮助!以上是关于使用 aws lambda node js 获取存储在 s3 存储桶中的视频的视频元数据的主要内容,如果未能解决你的问题,请参考以下文章
AWS lambda 调用不调用另一个 lambda 函数 - Node.js
无法通过node.js从lambda获取Amazon CloudWatch日志
如何在 AWS Lambda 中使用 Node.js 列出我的所有 Amazon EC2 实例?
使用nest.js在AWS Lambda中获取Cognito数据(即requestContext)