[英]C# Reading Video / Audio / Image file metadata from a stream
我目前正在寻找在 C# 中编写 AWS Lambda function
我查看了 Nuget 上的 MediaInfo 和 FFMPeg 包装器,但问题是它们都接受 FilePaths 来打开文件,而在 S3 / Lambda 土地上我正在使用流。
我不想创建一个 EFS 来临时存储文件,因为它看起来有点矫枉过正,而且我认为图书馆也不需要读取整个 stream 来获取元数据。
基本上我想做的与此类似,但我是一个 .net 的人,宁愿不学习 Python / Docker / Linux 等......
您可以使用 C# 中的 MediaInfo 库,没有安装程序的DLL具有 C# 绑定,还有一个 C# MediaInfo 绑定示例,它通过提供 URL(HTTP、FTP、S3...)提供有关如何使用 MediaInfo 库的信息或通过缓冲区(您自己获取内容,在 C# 中,因为您是唯一知道如何获取流的人)从您的流中获取缓冲区数据,并将缓冲区数据发送到 MediaInfo; MediaInfo 表示何时不需要更多数据,因此不会读取整个流)。
Jérôme,MediaInfo 的开发者
为了确保您将支持所有格式(分路器/编解码器),我将使用 FFmpeg.Autogen .NET 绑定与 FFmpeg win 构建。 然后,您可以获得所有流所需的所有信息(包括编解码器和元数据)。
(不熟悉 AWS lambda 所以不确定这是否有效)
只是想在这里添加,因为我已经花了好几个小时在这上面(虽然文档没问题,但我觉得它有利于重组)。
对于 C# 框架:
using System.IO; using MediaInfoLib; namespace MediaInfoNetFramework { internal class Program { static void Main(string[] args) { var purl = "https://presignedS3URL"; MediaInfo MI = new MediaInfo(); MI.Open(purl); MI.Option("Complete"); var x = MI.Inform(); MI.Close(); return; } } }
笔记:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.