Sobre el proyecto
FFMpegCore es una biblioteca de .NET Standard que envuelve las herramientas de línea de comandos FFMpeg y FFProbe, haciendo accesible el análisis y la conversión de medios desde aplicaciones .NET. Admite llamadas tanto síncronas como asíncronas.
El análisis de medios se realiza a través de FFProbe, que devuelve información del medio para una ruta de entrada dada mediante Analyse o AnalyseAsync.
La conversión se maneja a través de FFMpeg usando un generador de argumentos fluido. Las entradas pueden provenir de archivos o tuberías, y las salidas pueden ir a archivos o tuberías. Las opciones cubren códecs de video y audio, factor de tasa constante, tasa de bits variable, filtros de video como escalado, y faststart para reproducción web. La biblioteca también admite la conversión hacia y desde flujos, por ejemplo escribir salida VP9/WebM en un flujo.
Los métodos auxiliares simplifican operaciones comunes: capturar instantáneas de imagen desde video (persistidas en disco o procesadas en memoria a través de paquetes de extensión opcionales System.Drawing.Common o SkiaSharp), capturar instantáneas GIF con redimensionamiento opcional que preserva la relación de aspecto, unir partes de video, crear subvideos por rango de tiempo, unir una secuencia de imágenes en un video, silenciar audio, extraer pistas de audio, reemplazar pistas de audio y combinar una imagen fija con un archivo de audio.
La canalización de entrada permite escribir fotogramas de video directamente desde la memoria del programa sin guardar archivos de imagen intermedios, y permite la conversión sobre la marcha mientras se generan o reciben los fotogramas. La interfaz IPipeSource tiene implementaciones para flujos, fotogramas de video sin procesar y muestras de audio sin procesar. Las fuentes de fotogramas de video sin procesar pueden establecer una tasa de fotogramas, y los paquetes de extensión de imagen proporcionan envoltorios que adaptan System.Drawing.Bitmap o SKBitmap a la interfaz de fotogramas.
Los binarios se pueden instalar en tiempo de ejecución a través del paquete FFMpegCore.Extensions.Downloader, que obtiene ffmpeg y ffprobe en una carpeta de binarios configurada usando la API de ffbinaries. Alternativamente, los binarios se pueden instalar manualmente a través de gestores de paquetes como Chocolatey en Windows, Homebrew en macOS o apt en Ubuntu.
La configuración de rutas está disponible globalmente a través de la clase FFOptions, por ejecución, o mediante un archivo ffmpeg.config.json leído en el primer uso. Las opciones incluyen carpeta de binarios, carpeta de archivos temporales y directorio de trabajo. Para implementaciones mixtas de 32 bits y 64 bits, subcarpetas separadas x64 y x86 dentro de la carpeta de binarios pueden contener binarios específicos de arquitectura; de lo contrario, la biblioteca busca directamente en la carpeta de binarios.
El proyecto señala que las versiones más antiguas de ffmpeg pueden no admitir todos los argumentos expuestos por la biblioteca, y que la CI prueba contra ffmpeg 8.1. Se publica bajo la licencia MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.