Об этом проекте
FFMpegCore — это библиотека .NET Standard, которая оборачивает инструменты командной строки FFMpeg и FFProbe, делая анализ и конвертацию медиа доступными из приложений .NET. Она поддерживает как синхронные, так и асинхронные вызовы.
Анализ медиа выполняется через FFProbe, который возвращает информацию о медиа для заданного входного пути с помощью Analyse или AnalyseAsync.
Конвертация выполняется через FFMpeg с использованием текучего построителя аргументов. Входные данные могут поступать из файлов или конвейеров, а выходные данные могут направляться в файлы или конвейеры. Параметры охватывают видеокодеки и аудиокодеки, constant rate factor, переменный битрейт, видеофильтры, такие как масштабирование, и faststart для воспроизведения в веб. Библиотека также поддерживает конвертацию в потоки и из потоков, например запись вывода VP9/WebM в поток.
Вспомогательные методы упрощают типовые операции: захват снимков изображений из видео (сохранение на диск или обработка в памяти через необязательные пакеты расширений System.Drawing.Common или SkiaSharp), захват GIF-снимков с необязательным изменением размера с сохранением соотношения сторон, объединение частей видео, создание фрагментов видео по временному диапазону, объединение последовательности изображений в видео, отключение звука, извлечение аудиодорожек, замена аудиодорожек и объединение неподвижного изображения с аудиофайлом.
Входной конвейер позволяет записывать видеокадры напрямую из памяти программы без сохранения промежуточных файлов изображений и обеспечивает конвертацию на лету во время генерации или получения кадров. Интерфейс IPipeSource имеет реализации для потоков, необработанных видеокадров и необработанных аудиосэмплов. Источники необработанных видеокадров могут задавать частоту кадров, а пакеты расширений для изображений предоставляют обёртки, адаптирующие System.Drawing.Bitmap или SKBitmap к интерфейсу кадров.
Бинарные файлы можно установить во время выполнения через пакет FFMpegCore.Extensions.Downloader, который загружает ffmpeg и ffprobe в настроенную папку бинарных файлов с помощью API ffbinaries. Альтернативно бинарные файлы можно установить вручную через менеджеры пакетов, такие как Chocolatey в Windows, Homebrew в macOS или apt в Ubuntu.
Настройка путей доступна глобально через класс FFOptions, для каждого запуска или через файл ffmpeg.config.json, считываемый при первом использовании. Параметры включают папку бинарных файлов, папку временных файлов и рабочий каталог. Для смешанных 32-битных и 64-битных развёртываний отдельные подпапки x64 и x86 внутри папки бинарных файлов могут содержать бинарные файлы для конкретной архитектуры; в противном случае библиотека ищет непосредственно в папке бинарных файлов.
Проект отмечает, что более старые версии ffmpeg могут не поддерживать все аргументы, предоставляемые библиотекой, и что CI тестируется на ffmpeg 8.1. Он выпущен под лицензией MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.