Skip to content
This repository has been archived by the owner on Aug 5, 2022. It is now read-only.
Jun Zhao edited this page Dec 26, 2016 · 10 revisions

Welcome to the ffmpeg_libyami wiki!

Overview

ffmpeg-libyami consists in a collection of libyami based decoder/encoder/yamivpp for ffmpeg.

  • `libyami_h264' decoder is used to decode H.264 AVC video to VA surfaces, depending on the underlying hardware capabilities. This decoder is also able to download the decoded surface to raw YUV buffers(AVFrame) if don't used the pipeline mode.

  • `libyami_hevc' decoder is used to decode HEVC(h265) 8bits/10bits video to VA surfaces, depending on the underlying hardware capabilities. This decoder is also able to download the decoded surface to raw YUV buffers(AVFrame) if don't used the pipeline mode.

  • `libyami_vp8' decoder is used to decode vp8 video to VA surfaces, depending on the underlying hardware capabilities. This decoder is also able to download the decoded surface to raw YUV buffers(AVFrame) if don't used the pipeline mode.

  • `libyami_vp9' decoder is used to decode vp9 8bits/10bits video to VA surfaces, depending on the underlying hardware capabilities. This decoder is also able to download the decoded surface to raw YUV buffers(AVFrame) if don't used the pipeline mode.

  • `libyami_vc1' decoder is used to decode vc1 video to VA surfaces, depending on the underlying hardware capabilities. This decoder is also able to download the decoded surface to raw YUV buffers(AVFrame) if don't used the pipeline mode.

  • `libyami_mpeg2' decoder is used to decode mpeg2 video to VA surfaces, depending on the underlying hardware capabilities. This decoder is also able to download the decoded surface to raw YUV buffers(AVFrame) if don't used the pipeline mode.

  • `libyami_h264' encoder is used to encode into H.264 AVC videos. By default, raw format bitstreams are generated. In the pipeline mode, it's will used VA surfaces as input.

  • `libyami_vp8' encoder is used to encode into vp8 videos. By default, raw format bitstreams are generated. In the pipeline mode, it's will used VA surfaces as input.

  • `libyami_vp9' encoder is used to encode into vp9 videos. By default, raw format bitstreams are generated. In the pipeline mode, it's will used VA surfaces as input.

  • `libyami_hevc' encoder is used to encode into H.265/HEVC 8bit/10bit videos. By default, raw format bitstreams are generated. In the pipeline mode, it's will used VA surfaces as input.

  • `yamivpp' is used to filter VA surfaces, for e.g. scaling, This filter is also used to upload raw YUV pixels into VA surfaces.

Features

  • libyami support master/apache branch (https://github.com/01org/libyami.git)
  • libyami H.264 8bit AVC decoder
  • libyami HEVC 8bit/10bit decoder
  • libyami VP8 8bit decoder
  • libyami VP9 8bit/10bit decoder
  • libyami VC1 8bit decoder
  • libyami mpeg2 8bit decoder
  • libyami H.264 AVC 8bit encoder
  • libyami VP8 8bit encoder
  • libyami VP9 8bit encoder
  • libyami H.265/HEVC 8bit/10bit encoder
  • Support for major HW video decoding solutions on Linux (AMD, Intel, NVIDIA)
  • Support for HW video encoding on Intel HD Graphics hardware
  • Support for VA Video Processing APIs (VA/VPP)
    • Scaling
    • De-noise
    • Sharpness
    • De-interlace

Requirements

Software requirements

  • libva: git clone git://anongit.freedesktop.org/vaapi/libva

  • intel-driver: git clone git://anongit.freedesktop.org/vaapi/intel-driver

  • libyami: git clone -b apache https://github.com/01org/libyami.git

Hardware requirements

  • AMD platforms with UVD2 (XvBA supported)
  • Intel Eaglelake (G45)
  • Intel Ironlake, Sandybridge, Ivybridge, Haswell and Broadwell (HD Graphics)
  • Intel BayTrail, Braswell
  • Intel Apollo Lake
  • Intel Kaby Lake
  • Intel Poulsbo (US15W)
  • Intel Medfield or Cedar Trail
  • NVIDIA platforms with PureVideo (VDPAU supported)

Reporting Bugs

Bugs can be reported in the github system at: <https://github.com/01org/ffmpeg_libyami/issues/new>

Clone this wiki locally