I'm currently looking to write an AWS Lambda function in C#
- File uploaded to S3 triggers my Lambda
- Lambda to interrogate file and get technical metadata about video codecs, frame rates, audio channels, duration
- Lambda to post that data to another service
I've taken a look at MediaInfo and FFMPeg wrappers on Nuget but the issue is they all accept FilePaths to open the file whereas in S3 / Lambda land I'm working with streams.
I don't want to create an EFS to temporarily store the file as it seems overkill and I don't think the library should need to read the entire stream to get the metadata either.
Essentially what I would like to do is similar to this but I'm a .net guy and would rather not learn Python / Docker / Linux etc...
To ensure that you will support all the formats (demuxers/codecs) I would use FFmpeg.Autogen .NET bindings with FFmpeg win builds. Then you can get all the information that you require for all the streams (including codecs & metadata).
(Not familiar with AWS lambda so not sure if that will work)