1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

An Interview With The Developers Of FFmpeg

Michael Larabel

Published on 11 March 2009
Written by Michael Larabel
Page 2 of 3 - 15 Comments

Blu-ray On Linux

Blu-ray movies are playable on Linux right now, but there is no broad support, some movies will lack audio support, and a lot of manual intervention is required. If there is Digital Rights Management on the Blu-ray disc, the end-user must install a utility to dump and decrypt the high-definition files, manually input the DRM AACS key, and take other steps to watch a legally purchased movie. When it comes to FFmpeg support, Blu-ray discs using DTS-HD MA for their audio format do not work. A few months back there was some code proposed to the FFmpeg project that would partially address this problem, but FFmpeg developers rejected the code. Neither Diego, Baptiste, nor Robert have a Blu-ray drive, so at this point they have no personal interest in Blu-ray support. Diego reiterated they are interested in supporting "every format under the Sun and thus certainly Blu-ray," but their bar to accept patches is quite high and they will only reject patches if there are technical issues. All three of the developers though agree that Blu-ray support will appear in FFmpeg, but are unsure of when there will be proper support.

OpenCL & GPGPU Computing

After talking about Blu-ray, the discussion turned to another new standard: OpenCL. The Open Computing Language is an emerging C99-based industry standard for parallel programming and particularly targeting GPGPU computing. NVIDIA, ATI/AMD, and Intel are all working on making their graphics cards and drivers compatible with OpenCL that will transform their graphics processors into powerful processors exposed to OpenCL code. With GPGPU support via OpenCL, audio/video encoding could be done much faster by leveraging a modern graphics processor. At this time, however, they are unaware of any developers working on such support. Robert noted though that OpenCL and CUDA (NVIDIA's Compute Unified Device Architecture) are interesting and hold potential.

VDPAU, VA-API, & XvBA

While on the subject of GPU support in FFmpeg, Baptiste reiterated that VDPAU support was recently added and VA-API support is currently being integrated. The Video Decode and Presentation API for Unix was created by NVIDIA for their graphics driver (though Intel may implement VDPAU support) and it allows much of the GPU encoding and video playback work to be offloaded to the GPU. In our tests we have found that we can even play HD videos on a $20 CPU and $30 GPU using this technology.

The developers have not been contacted by AMD regarding their forthcoming XvBA (X-Video Bitstream Acceleration) video API, but they hope to see support for it within FFmpeg not too long after the drivers land in the wild. FFmpeg developers have also been developing a new hardware acceleration API that eventually will make it easier to integrate support for new acceleration interfaces like XvBA.

Multi-Threading

Discussing GPUs and improving FFmpeg's performance then lead to a brief conversation about ffmpeg-mt, which is a frame-level multi-process decoding branch of FFmpeg that provides significantly better performance on multi-core systems. This frame-level multi-threaded decoding is similar to what is done by the CoreAVC decoder. The maintainer of ffmpeg-mt does not have this branch up-to-date constantly, but Robert Swain may eventually be working on this branch through his work at the Finnish-based Open Source Partners Oy.

The results from ffmpeg-mt are very promising, but it touches a lot of the core FFmpeg code and the developers are concerned it could decrease the performance on single-threaded systems. The multi-threaded enhancements will eventually help with MJPEG, MPEG-1, MPEG-2, MPEG-4, MPEG-4 Part 2, MPEG-4 Part 10 (H.264), and most other macroblock-based codecs.

The ffmpeg-mt branch could be polished and updated within months, but the simple review process could also take months. Diego Biurrun felt that this multi-threaded version of FFmpeg may still be years away.

Latest Linux Hardware Reviews
  1. Even With Re-Clocking, Nouveau Remains Behind NVIDIA's Proprietary Linux Driver
  2. The Power Consumption & Efficiency Of Open-Source GPU Drivers
  3. AMD R600g/RadeonSI Performance On Linux 3.16 With Mesa 10.3-devel
  4. Intel Pentium G3258 On Linux
Latest Linux Articles
  1. Updated Source Engine Benchmarks On The Latest AMD/NVIDIA Linux Drivers
  2. Nouveau vs. Radeon vs. Intel Tests On Linux 3.16, Mesa 10.3-devel
  3. KVM Benchmarks On Ubuntu 14.10
  4. X.Org Server 1.16 Officially Released With Terrific Features
Latest Linux News
  1. GNOME/GTK On Wayland Gains Focus At GUADEC
  2. GNOME Stakeholders Take Issue With Groupon Over their Gnome
  3. GStreamer VA-API Plug-In Update Adds New Features
  4. Qt 5.4 Going Into Feature Freeze Next Week With Exciting Changes
  5. OpenSUSE Factory Turns Into Rolling Release Distribution
  6. "The World's Most Highly-Assured OS" Kernel Open-Sourced
  7. NVIDIA Is Working Towards VDPAU H.265/HEVC Support
  8. Hawaii Bug-Fixes Start Hitting Mainline RadeonSI Gallium3D
  9. The FFmpeg vs. Libav War Continues In Debian Land
  10. Grand Theft Auto Running On Direct3D Natively On Linux Shows Gallium3D Potential
Latest Forum Discussions
  1. AMD Athlon 5350 APU On Linux
  2. Grand Theft Auto Running On Direct3D Natively On Linux Shows Gallium3D Potential
  3. Linus Torvalds On GCC 4.9: Pure & Utter Crap
  4. Updated and Optimized Ubuntu Free Graphics Drivers
  5. Debian + radeonsi
  6. Open-source drivers on ATI R7 260X
  7. List of Linux friendly Kickstarter projects
  8. Porting Mesa to the Playstation 2