Top Related Projects
Mirror of https://git.ffmpeg.org/ffmpeg.git
Docker build for FFmpeg on Ubuntu / Alpine / Centos / Scratch / nvidia / vaapi
The FFmpeg build script provides an easy way to build a static FFmpeg on OSX and Linux with non-free codecs included.
Quick Overview
BtbN/FFmpeg-Builds is a GitHub repository that provides automated builds of FFmpeg for Windows, Linux, and macOS. It offers pre-compiled binaries of FFmpeg with various configurations, making it easier for users to access up-to-date versions of FFmpeg without having to compile it themselves.
Pros
- Regularly updated builds of FFmpeg for multiple platforms
- Various build configurations available (shared, static, GPL, LGPL)
- Automated build process ensures consistency and reliability
- Saves time and effort for users who don't want to compile FFmpeg from source
Cons
- Limited control over specific build options compared to compiling from source
- May not include all possible FFmpeg features or custom configurations
- Dependency on third-party builds rather than official FFmpeg releases
- Potential security concerns when using pre-compiled binaries from unofficial sources
Getting Started
To use the FFmpeg builds from this repository:
- Go to the Releases page of the repository.
- Download the appropriate build for your operating system and desired configuration.
- Extract the downloaded archive to a location on your system.
- Add the extracted folder containing the FFmpeg executables to your system's PATH.
For example, on Windows:
# Download the latest Windows build (replace URL with the actual release link)
Invoke-WebRequest -Uri "https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-win64-gpl.zip" -OutFile "ffmpeg.zip"
# Extract the archive
Expand-Archive -Path "ffmpeg.zip" -DestinationPath "C:\FFmpeg"
# Add to PATH (for the current session)
$env:Path += ";C:\FFmpeg\bin"
# Verify installation
ffmpeg -version
Note: This is not a code library, so no code examples are provided. The repository offers pre-compiled binaries of FFmpeg, which is a command-line tool for handling multimedia files and streams.
Competitor Comparisons
Mirror of https://git.ffmpeg.org/ffmpeg.git
Pros of FFmpeg
- Official source repository with the most up-to-date codebase
- Extensive documentation and community support
- Flexibility to build and customize for specific needs
Cons of FFmpeg
- Requires manual compilation, which can be complex for some users
- May lack optimized builds for specific platforms or use cases
Code Comparison
FFmpeg:
int main(int argc, char **argv) {
av_register_all();
avformat_network_init();
// ... (main code implementation)
}
FFmpeg-Builds:
# No direct code comparison available
# FFmpeg-Builds provides pre-compiled binaries
Key Differences
- FFmpeg is the core project, while FFmpeg-Builds offers pre-compiled versions
- FFmpeg-Builds provides ready-to-use binaries for various platforms
- FFmpeg allows for custom compilation and modifications
- FFmpeg-Builds may include specific optimizations for certain use cases
Use Cases
FFmpeg:
- Developers requiring specific features or customizations
- Projects needing the latest FFmpeg capabilities
FFmpeg-Builds:
- Users seeking quick, pre-compiled FFmpeg installations
- Applications requiring optimized FFmpeg builds for specific platforms
Community and Support
FFmpeg:
- Large, active community with extensive documentation
- Direct interaction with core developers
FFmpeg-Builds:
- Focused on providing convenient, pre-built packages
- May have a smaller, more specialized community
Docker build for FFmpeg on Ubuntu / Alpine / Centos / Scratch / nvidia / vaapi
Pros of FFmpeg
- Docker-based approach, making it easier to deploy and run in containerized environments
- Regularly updated with the latest FFmpeg versions
- Includes multiple variants (Alpine, Nvidia, Vaapi) for different use cases
Cons of FFmpeg
- Less customization options for build configurations
- Larger image size compared to static builds
- May have fewer optimization options for specific architectures
Code Comparison
FFmpeg:
FROM alpine:3.18 as build
WORKDIR /tmp/workdir
RUN apk add --no-cache \
coreutils \
freetype-dev \
libtool
FFmpeg-Builds:
$ffmpegBuildOptions = @(
'--enable-gpl',
'--enable-version3',
'--enable-sdl2',
'--enable-fontconfig'
)
The FFmpeg repository uses Dockerfiles for building and deploying FFmpeg, while FFmpeg-Builds uses PowerShell scripts for compiling FFmpeg with various build options.
FFmpeg-Builds offers more granular control over the compilation process and provides pre-built binaries for different platforms. It's better suited for users who need specific optimizations or custom builds. On the other hand, FFmpeg is more convenient for users who prefer a containerized solution and don't require extensive customization.
The FFmpeg build script provides an easy way to build a static FFmpeg on OSX and Linux with non-free codecs included.
Pros of ffmpeg-build-script
- More customizable build options, allowing users to tailor FFmpeg to their specific needs
- Supports building on a wider range of operating systems, including macOS and various Linux distributions
- Provides a more interactive build process with user prompts and options
Cons of ffmpeg-build-script
- Requires more manual intervention and configuration compared to FFmpeg-Builds
- May have longer build times due to its comprehensive nature and additional options
- Less frequent updates and maintenance compared to FFmpeg-Builds
Code Comparison
FFmpeg-Builds (build-ffmpeg.sh):
#!/bin/bash
set -e
source /opt/ffbuild/ffbuild_env.sh
ffmpeg-build-script (build-ffmpeg):
#!/usr/bin/env bash
set -e
set -u
set -o pipefail
Both scripts use similar shell settings, but ffmpeg-build-script includes additional options for stricter error handling. FFmpeg-Builds sources an external environment file, while ffmpeg-build-script defines variables within the main script.
FFmpeg-Builds focuses on providing pre-built binaries for specific platforms, while ffmpeg-build-script offers a more flexible, user-controlled build process. The choice between the two depends on the user's needs for customization, supported platforms, and desired level of control over the build process.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
FFmpeg Static Auto-Builds
Static Windows (x86_64) and Linux (x86_64) Builds of ffmpeg master and latest release branch.
Windows builds are targetting Windows 7 and newer, provided UCRT is installed. The minimum supported version is Windows 10 22H2, no guarantees on anything older.
Linux builds are targetting RHEL/CentOS 8 (glibc-2.28 + linux-4.18) and anything more recent.
Auto-Builds
Builds run daily at 12:00 UTC (or GitHubs idea of that time) and are automatically released on success.
Auto-Builds run ONLY for win64 and linux(arm)64. There are no win32/x86 auto-builds, though you can produce win32 builds yourself following the instructions below.
Release Retention Policy
- The last build of each month is kept for two years.
- The last 14 daily builds are kept.
- The special "latest" build floats and provides consistent URLs always pointing to the latest build.
Package List
For a list of included dependencies check the scripts.d directory. Every file corresponds to its respective package.
How to make a build
Prerequisites
- bash
- docker
Build Image
./makeimage.sh target variant [addin [addin] [addin] ...]
Build FFmpeg
./build.sh target variant [addin [addin] [addin] ...]
On success, the resulting zip file will be in the artifacts
subdir.
Targets, Variants and Addins
Available targets:
win64
(x86_64 Windows)win32
(x86 Windows)linux64
(x86_64 Linux, glibc>=2.28, linux>=4.18)linuxarm64
(arm64 (aarch64) Linux, glibc>=2.28, linux>=4.18)
The linuxarm64 target will not build some dependencies due to lack of arm64 (aarch64) architecture support or cross-compiling restrictions.
davs2
andxavs2
: aarch64 support is broken.libmfx
andlibva
: Library for Intel QSV, so there is no aarch64 support.
Available variants:
gpl
Includes all dependencies, even those that require full GPL instead of just LGPL.lgpl
Lacking libraries that are GPL-only. Most prominently libx264 and libx265.nonfree
Includes fdk-aac in addition to all the dependencies of the gpl variant.gpl-shared
Same as gpl, but comes with the libav* family of shared libs instead of pure static executables.lgpl-shared
Same again, but with the lgpl set of dependencies.nonfree-shared
Same again, but with the nonfree set of dependencies.
All of those can be optionally combined with any combination of addins:
4.4
/5.0
/5.1
/6.0
/6.1
/7.0
to build from the respective release branch instead of master.debug
to not strip debug symbols from the binaries. This increases the output size by about 250MB.lto
build all dependencies and ffmpeg with -flto=auto (HIGHLY EXPERIMENTAL, broken for Windows, sometimes works for Linux)
Top Related Projects
Mirror of https://git.ffmpeg.org/ffmpeg.git
Docker build for FFmpeg on Ubuntu / Alpine / Centos / Scratch / nvidia / vaapi
The FFmpeg build script provides an easy way to build a static FFmpeg on OSX and Linux with non-free codecs included.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot