Я подумал о двух возможных вариантах:
- с использованием консольной утилиты ffmpeg
- с использованием P/Invoke с библиотекой libavcodec и других, которые ffmpeg использует
Я погуглил, но хорошо выполненных проектов для C#/ASP.NET Core на платформе Linux нет. Есть некоторые хорошие варианты для C++ и Python, но НЕ для C# в Linux/.NET Core.
Я решил рассмотреть первый вариант, который, как мне кажется, будет более простым и практичным. Но есть и слабые места, которые могут создать множество проблем. Мы понимаем (я полагаю), что при первом варианте конечный разработчик должен использовать ветвление процесса. Таким образом, могут возникнуть проблемы с простоем процесса и другие возможные проблемы...
Я спрашиваю о вашей практике, поскольку это мой первый опыт конвертации/сэмплирования видео на платформе Linux с использованием C#. Я использовал библиотеку Expression Encoder .NET на платформе Windows, но это другая история и сейчас в ней нет смысла.
Может быть, есть и другие варианты, которые я сейчас не вижу. Мне не нравится первый вариант из-за возможных необработанных исключений, поскольку ffmpeg с такой ролью становится черным ящиком для серверной части ASP.NET Core.
Подробнее здесь: https://stackoverflow.com/questions/470 ... e-on-linux
Мобильная версия