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. AMD R600g/RadeonSI Performance On Linux 3.16 With Mesa 10.3-devel
  2. Intel Pentium G3258 On Linux
  3. SilverStone Precision PS10
  4. ASRock Z97 Extreme6
Latest Linux Articles
  1. Nouveau vs. Radeon vs. Intel Tests On Linux 3.16, Mesa 10.3-devel
  2. KVM Benchmarks On Ubuntu 14.10
  3. X.Org Server 1.16 Officially Released With Terrific Features
  4. Ubuntu With Linux 3.16 Smashes OS X 10.9.4 On The MacBook Air
Latest Linux News
  1. FreeBSD Developing A New Automounter, Other Features
  2. Guix 0.7 Can Now Install The GNU Operating System
  3. X.Org Foundation Still Works Towards Becoming An SPI Project
  4. Open-Source AMD Hawaii Support Should Now Be Working!
  5. KDE Developers Continue Working Toward Wayland Support
  6. Ubuntu 14.04.1 LTS Released
  7. Linux Developers Jump Quickly On ACPI 5.1, Helps Out ARM
  8. Pkg 1.3.0 Released To Improve Package Management On FreeBSD
  9. GOG.com Officially Starts Rolling Out Linux Games
  10. Fedora 21 Has Been Delayed By Three Weeks
Latest Forum Discussions
  1. Updated and Optimized Ubuntu Free Graphics Drivers
  2. AMD "Hawaii" Open-Source GPU Acceleration Still Not Working Right
  3. Radeon related kernel bug??
  4. how the US intellegentia operates:
  5. AMD Publishes Open-Source Linux HSA Kernel Driver
  6. Next-Gen OpenGL To Be Announced Next Month
  7. Open-Source Radeon Performance Boosted By Linux 3.16
  8. Remote gui not accessible in Phoronix Test Suite 5.2