[英]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.