Normal view

Received before yesterday

FFmpeg Introduces Vulkan-Accelerated Apple ProRes Decoding

26 October 2025 at 22:37

The FFmpeg developers have added Vulkan-accelerated video decoding for Apple ProRes, implemented through shader-based hardware acceleration. The new commit, authored by averne and committed by Lynne, brings full support for all major ProRes profiles and demonstrates strong performance across different GPU platforms. Apple ProRes is a high-quality video codec commonly used in professional editing workflows. […]

The post FFmpeg Introduces Vulkan-Accelerated Apple ProRes Decoding appeared first on UbuntuPIT.

FFmpeg Introduces Vulkan-Accelerated Apple ProRes Decoding

26 October 2025 at 22:37

The FFmpeg developers have added Vulkan-accelerated video decoding for Apple ProRes, implemented through shader-based hardware acceleration. The new commit, authored by averne and committed by Lynne, brings full support for all major ProRes profiles and demonstrates strong performance across different GPU platforms. Apple ProRes is a high-quality video codec commonly used in professional editing workflows. […]

The post FFmpeg Introduces Vulkan-Accelerated Apple ProRes Decoding appeared first on UbuntuPIT.

Compile FFmpeg 8.0 in Ubuntu with NVIDIA GPU Acceleration

By:Ji m
2 September 2025 at 21:44

This is a step by step guide shows how to manually compile & install FFmpeg 8.0 from source with NVIDIA GPU acceleration support through cuda-nvcc and enable-libnpp in Ubuntu 24.04 & 22.04.

FFmpeg 8.0 so far is the latest version of this popular multi-media library, that features APV and ProRes RAW decoders, hardware accelerated VP9 and VVC encoding, and new Vulkan compute-based codecs support for FFv1 (encoding and decoding).

This tutorial is tested in Ubuntu 24.04 & 22.04, though it should also works in Debian, Linux Mint

Before Getting Started

FFmpeg now supports hardware accelerated NVENC encoding (AV1, H.264, HEVC) and NVDEC decoding (H.264, HEVC, MJPEG, MPEG-1/2/4, VP8/VP9, VC-1, AV1) through ffncodec, and scale_cuda filters to replace scale_npp.

They are usually enabled by default in FFmpeg packages from Ubuntu system repository or PPAs (e.g., my PPA and Rob Savoury’s PPA).

Meaning, you don’t need to build FFmpeg by yourself, just install it from one the previous sources, then you have the basic NVIDIA GPU acceleration support.

FFmpeg in Ubuntu & PPA repositories has nvenc & nvdec out-of-the-box

You ONLY need to follow this tutorial, when you need specific or more advanced CUDA-dependent features and/or scale_npp only filters.

And, you need:

  • a NVIDIA GPU that support NVENC/NVDEC (see the support list).
  • Install NVIDIA proprietary driver, though either Additional Drivers utility or ubuntu-drivers CLI tool. See the official guide.

Step 1: Install Nvidia Codec SDK headers

nv-codec-headers, the FFmpeg version of Nvidia Codec SDK headers, is available in Ubuntu repositories, but a bit old.

For the most recent version, press Ctrl+Alt+T on keyboard to clone the source code:

git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git

Run sudo apt install git to install git first, if you don’t have it.

Then, run the command below to navigate to the source folder, and install it:

cd nv-codec-headers && sudo make install

Step 2: Install Build Dependencies

To build the source, we need some dependency libraries.

First, run command in terminal (Ctrl+Alt+T) to install the essential dependency packages:

sudo apt install build-essential nasm cmake libtool libc6 libc6-dev unzip wget libnuma1 libnuma-dev nvidia-cuda-toolkit pkg-config

For choice, you may install more via sudo apt install package-name (replace package-name) for more features, e.g.,

  • libvulkan-dev, for Vulkan compute-based hardware acceleration (the package in 22.04 is outdated).
  • libjxl-dev, for JPEG-XL support (the package is not available in 22.04).
  • libgme-dev, for Game Music Emu.
  • libvpx-dev, for VP8, VP9 decoding and encoding.

And, below are the packages I use for building FFmpeg into PPA:

libmp3lame-dev zlib1g-dev libvorbis-dev libsdl2-dev libxvidcore-dev liblzo2-dev texinfo libgcrypt-dev libx264-dev libtheora-dev libgsm1-dev libsnappy-dev libdc1394-dev libbs2b-dev libspeex-dev libopencore-amrwb-dev libfreetype-dev libopenmpt-dev nasm libopenjp2-7-dev libharfbuzz-dev libvdpau-dev libtesseract-dev libopencore-amrnb-dev libxfixes-dev libgl-dev libbz2-dev libssl-dev libass-dev libasound2-dev libva-dev libjack-jackd2-dev libvpx-dev frei0r-plugins-dev libvo-amrwbenc-dev libsctp-dev libopus-dev gnutls-dev frei0r-plugins-dev libsoxr-dev linux-libc-dev ladspa-sdk libaom-dev libfontconfig-dev libfdk-aac-dev libpulse-dev libzvbi-dev libiec61883-dev libavc1394-dev libleptonica-dev liblzma-dev libx265-dev libxext-dev libcaca-dev libopenh264-dev librubberband-dev libwebp-dev libgme-dev glslang-dev opencl-c-headers libshine-dev libfribidi-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev libcdio-paranoia-dev libcodec2-dev ocl-icd-opencl-dev libzimg-dev libmysofa-dev libbluray-dev libzmq3-dev libaribb24-dev liblensfun-dev liblilv-dev flite1-dev librsvg2-dev libtwolame-dev libopenal-dev librabbitmq-dev libvulkan-dev libxavs2-dev libsrt-gnutls-dev libdavs2-dev libomxil-bellagio-dev libxml2-utils libsmbclient-dev libchromaprint-dev libunwind-dev libdvdnav-dev libdvdread-dev

Step 3: Compile & install FFmpeg 8.0

1. Download & extract the source

Now download FFmpeg 8.0 source tarball from its website, decompress, then right-click on extracted folder and choose “Open in Terminal” to open terminal with source folder as working directory.

open FFmpeg source folder in terminal

For Ubuntu server without GUI, run the command below to download the source:

wget https://ffmpeg.org/releases/ffmpeg-8.0.tar.xz

Then, decompress and navigate to the source folder:

tar -Jxf ffmpeg-8.0.tar.xz && cd ffmpeg-8.0

2. Configure the source

Now, configure the source by running command:

./configure --enable-nonfree --enable-cuda-nvcc --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --disable-static --enable-shared

Here, you may add more configure options, e.g.,:

  • --enable-libvpx, need ‘libvpx-dev’ to be installed.
  • --enable-vulkan, need ‘libvulkan-dev’ to be installed.
  • --enable-libjxl, need ‘libjxl-dev’ to be installed.

And even more. See either configure file, or run ./configure --help to list more choices.

Configure the source

3. build & install FFmpeg

If configure is done without error, you may then run the command below to build it:

make -j4

Here j4 means to start 4 threads in parallel. You may replace it with j8, or even j16 depends on your CPU, or use -j$(nproc) to use all CPU cores.

build with ‘make’ command

If everything goes well, finally install FFmpeg by running command:

sudo make install

install ffmpeg via ‘make install’

Step 4: Verify

After installed FFmpeg, run the command below to print its version and configuration.

ffmpeg

If it said error while loading shared libraries, then run command to add /usr/local/lib as LD_LIBRARY_PATH environment variable, which works for current terminal session.

export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"

Or, write the command into end of .profile or .bashrc file in user home to make it permanent for current user.

Finally, try to transcode with GPU acceleration via command (replace input.mp4 with path to an existing media file):

ffmpeg -hwaccel cuda -i input.mp4 -vf scale_npp=-1:720 -c:v h264_nvenc -preset slow output.mkv

Uninstall:

To uninstall, open the source folder again in terminal and run command:

sudo make uninstall

If you’ve already deleted that folder, then manually remove the executable files from /usr/local/bin and libraries from /usr/local/lib:

FFmpeg’s ‘Largest Release’ Yet Brings Vulkan Video Processing

24 August 2025 at 23:22

FFmpeg logo on a purple background; text from ffpmeg command visible.FFmpeg 8.0 introduces Vulkan compute-based codecs for pro-grade video formats, new decoders, Whisper AI transcription, and other assorted improvements.

You're reading FFmpeg’s ‘Largest Release’ Yet Brings Vulkan Video Processing, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

Aviator is a Fast, User-Friendly App for AV1 Video Encoding on Linux

23 August 2025 at 11:20

Av1 logo overlaid on chest of the penguin Linux mascot; colourful gradient background with AV1 logos.Aviator is a user-friendly GTK4 AV1 encoder for Linux that makes it easy to convert convert videos to AV1. Smaller file sizes with minimal quality loss.

You're reading Aviator is a Fast, User-Friendly App for AV1 Video Encoding on Linux, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

FFmpeg 8.0 Released with APV & ProRes RAW Decoder (Ubuntu PPA)

By:Ji m
23 August 2025 at 20:51

FFmpeg, the popular free open-source multimedia library, released new major 8.0 version almost a year since the last 7.1.

The new FFmpeg 8.0, codename “Huffman”, added native decoding support for Samsung’s Advanced Professional Video (APV) codec, Apple’s ProRes RAW, Sanyo LD-ADPCM, RealVideo 6.0, G.728, and ADPCM IMA Xbox.

It also added encoding support for APV (via libopenapv wrapper), libx265 alpha layer, and animated JPEG XL images (through libjxl).

FFmpeg 8.0 also introduced new decoders and encoders based on pure Vulkan compute implementation. It’s a cross-platform, open standard APIs, allowing programs to use GPU hardware accelerated rendering, calculating, and decoding, which can provide very significant speedups on some hardware.

So far, the Vulkan compute-based codecs only supports FFv1 (encoding and decoding) and ProRes RAW (decode only), while ProRes (encode + decode) and VC-2 (encode + decode) will be available in next minor release.

The release as well improved some codecs support by introducing hardware accelerated decoding support for VP9 (Vulkan), VVC (VAAPI), and hardware accelerated encoding support for AV1 (Vulkan). And, both decoding and encoding (hardware accelerated) for the OpenHarmony H264/5 video codecs.

Other changes include improved VVC (aka H.266) support via all content of SCC (Screen Content Coding), including IBC (Inter Block Copy), Palette Mode and ACT (Adaptive Color Transform), and following more:

  • New filters: colordetect, pad_cuda, scale_d3d11, Whisper, and others.
  • APV parser
  • APV in MP4/ISOBMFF muxing and demuxing
  • VVC in Matroska,
  • CENC AV1 support in MP4 muxer.
  • Enhanced FLV v2: Multitrack audio/video, modern codec support.
  • set default prediction method to PAETH for pngenc.

In addition, FFmpeg 8.0 also dropped OpenSSL < 1.1.0, removed yasm support (users need to use nasm), and deprecated OpenMAX encoders. For more, see the official release note.

Get FFmpeg 8.0

FFmpeg only provides the source tarball which is available to download at its website via the link below:

For Linux, besides waiting for your Distro to update the FFmpeg package, Deb Multimedia repository has built the 8.0 release for Debian experimental.

UPDATE: For Ubuntu 22.04, Ubuntu 24.04, and Ubuntu 25.04, FFmpeg 8.0 is available via this unofficial PPA.

NOTE: The PPA contains many updated libraries that may break dependencies! And, the packages are NOT well tested. Use at your own risk!

To add the PPA and install FFmpeg 8.0, run command:

sudo add-apt-repository ppa:ubuntuhandbook1/ffmpeg8
sudo apt update
sudo apt install -t "o=LP-PPA-ubuntuhandbook1-ffmpeg8" ffmpeg
❌