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. Trying The Configurable 45 Watt TDP With AMD's A10-7800 / A6-7400K
  2. Sumo's Omni Gets Reloaded
  3. AMD A10-7800 & A6-7400K APUs Run Great On Linux
  4. Radeon Gallium3D Is Running Increasingly Well Against AMD's Catalyst Driver
Latest Linux Articles
  1. AMD's RadeonSI Driver Sped Up A Lot This Summer
  2. Intel's Latest Linux Graphics Code Competes Against OS X 10.9
  3. Intel Sandy Bridge Gets A Surprise Boost From Linux 3.17
  4. Open-Source Radeon Graphics Have Some Improvements On Linux 3.17
Latest Linux News
  1. A New First-Person Mystery Game Might Be Coming To Linux
  2. Patch By Patch, LLVM Clang Gets Better At Building The Linux Kernel
  3. VC4 Gallium3D Driver Now Handles X With GLAMOR
  4. Opera 25 Development Release For Linux
  5. Steam Now Supports VA-API For In-Home Game Streaming
  6. GNOME 3.14 Beta Released
  7. Mesa 10.3 Branched & RC1 Released, Mesa 10.4 On Master
  8. Intel Sandy Bridge Gains On Linux 3.17 Extend Beyond Graphics
  9. LinuxCon: What's Going On With Fedora.Next
  10. Canonical Joined The Khronos Group To Help Mir/Wayland Drivers
Latest Forum Discussions
  1. Btrfs Gets Talked Up, Googler Encourages You To Try Btrfs
  2. Systemd 216 Piles On More Features, Aims For New User-Space VT
  3. American Citizens running AMOK for food stamps
  4. What Linux Distribution Should Be Benchmarked The Most?
  5. OSS radeon driver for A10-7850K (Kaveri)
  6. Company I work for is looking to contribute to Open Source projects... but wrongly?
  7. Microsoft vs. Campaign
  8. Updated and Optimized Ubuntu Free Graphics Drivers