C# 从流中读取视频/音频/图像文件元数据

标签 c# amazon-s3 aws-lambda mediainfo

我目前正在考虑用 C# 编写 AWS Lambda 函数

  1. 上传到 S3 的文件会触发我的 Lambda
  2. Lambda 用于查询文件并获取有关视频编解码器、帧速率、音频 channel 、持续时间的技术元数据
  3. Lambda 将数据发布到其他服务

我查看了 Nuget 上的 MediaInfo 和 FFMPeg 包装器,但问题是它们都接受 FilePaths 来打开文件,而在 S3/Lambda 中我正在使用流。

我不想创建 EFS 来临时存储文件,因为这似乎有些过分,而且我认为库也不应该需要读取整个流来获取元数据。

本质上我想做的类似于 this但我是一个 .net 人,不想学习 Python/Docker/Linux 等...

最佳答案

您可以使用 C# 中的 MediaInfo 库,DLL without installer有 C# 绑定(bind),还有 a C# MediaInfo binding example ,它提供了有关如何通过提供 URL(HTTP、FTP、S3...)或通过缓冲区使用 MediaInfo 库的信息(在 C# 中,您可以自己获取内容,因为您是唯一知道如何获取媒体信息的人) Stream) 从流中获取缓冲区数据,并将缓冲区数据发送到 MediaInfo; MediaInfo 表示当它不需要更多数据时,因此不会读取整个流)。

Jérôme,MediaInfo 开发人员

关于C# 从流中读取视频/音频/图像文件元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64382686/

相关文章:

c# - 将属性注入(inject) QuartzJobObject

c# - 捕获完全意外的错误

c# - 更改按钮图像

ruby-on-rails - 发出打开凭据文件的问题

amazon-web-services - 如何通过给定的 lambda 函数使角色扮演角色?

c# - 如何更改 ASP.NET Core 中资源文件的命名空间?

ios - 为什么不支持在 iOS 上执行分段上传到 S3?

linux - 我应该将数据库和 CMS 文件放在单独的 EBS 或 S3 上吗?

node.js - 使用 Lambda( Node )将图像从 SFTP 复制到 S3

amazon-web-services - AWS lambda 函数在检索 AWS key 时是否执行一些缓存