This repository builds FFmpeg shared libraries and CLI binaries and packages them as DevEnvy.FFmpeg.Binaries.LGPL.
runtimes/win-x64/native/*.dllruntimes/win-x64/native/ffmpeg.exeruntimes/win-x64/native/ffprobe.exeruntimes/linux-x64/native/libav*.so*runtimes/linux-x64/native/ffmpegruntimes/linux-x64/native/ffproberuntimes/linux-musl-x64/native/libav*.so*runtimes/linux-musl-x64/native/ffmpegruntimes/linux-musl-x64/native/ffprobe
Use .github/workflows/build-pack-publish.yml.
workflow_dispatch:ffmpeg_version: FFmpeg source version (for example7.1.3)package_version: NuGet package versionpublish: publish to GitHub Packages (true/false)
- Tag push
v*:- Uses package version from tag name (for example
v1.2.3->1.2.3) - Auto-publishes to GitHub Packages
- Uses package version from tag name (for example
Publishing uses the built-in GITHUB_TOKEN with packages: write permission.
Build scripts intentionally use shared-library and non-GPL configure options:
--enable-shared--disable-static--disable-gpl--disable-nonfree
Vulkan support is required by the build scripts. If a build environment cannot provide compatible Vulkan headers, the build now fails instead of producing a reduced-feature package. This remains within the repository's LGPL posture because the package ships FFmpeg as shared libraries with --disable-gpl and --disable-nonfree, and Vulkan is enabled via compile-time headers plus runtime driver loading.