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. NVIDIA GeForce GTX 970 Offers Great Linux Performance
  2. CompuLab Intense-PC2: An Excellent, Fanless, Mini PC Powered By Intel's i7 Haswell
  3. From The Atom 330 To Haswell ULT: Intel Linux Performance Benchmarks
  4. AMD Radeon R9 285 Tonga Performance On Linux
Latest Linux Articles
  1. AMD Moves Forward With Unified Linux Driver Strategy, New Kernel Driver
  2. MSI: Update Your BIOS From The Linux Desktop
  3. NVIDIA vs. AMD 2D Linux Drivers: Catalyst Is Getting Quite Good At 2D
  4. 15-Way GPU Comparison With Mesa 10.3 + Linux 3.17
Latest Linux News
  1. Features Of The Linux 3.18 Kernel
  2. Automatic Feedback Directed Optimizer Merged Into GCC
  3. Debian Now Defaults To Xfce On Non-x86 Desktops
  4. Phoenix Is Trying To Be An Open Version Of Apple's Swift
  5. Linux 3.19 To Have Skylake Graphics, PPGTT Enablement
  6. Ubuntu 16.04 Might Be The Distribution's Last 32-Bit Release
  7. Imagination Releases Full ISA Documentation For PowerVR Rogue GPUs
  8. Features GNOME Developers Want In The Linux Kernel
  9. GTK+ Gains Experimental Overlay Scrollbars
  10. Phoronix Test Suite 5.4 M3 Is Another Hearty Update
Latest Forum Discussions
  1. Users/Developers Threatening Fork Of Debian GNU/Linux
  2. Proof that strlcpy is un-needed
  3. xbox one tv tuner
  4. HOPE: The Ease Of Python With The Speed Of C++
  5. Bye bye BSD, Hello Linux: A Sys Admin's Story
  6. Updated and Optimized Ubuntu Free Graphics Drivers
  7. NVIDIA Presents Its Driver Plans To Support Mir/Wayland & KMS On Linux
  8. AMD Is Restructuring Again, Losing 7% Of Employees