Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Xilinx/ABR-video-transcode


https://github.com/Xilinx/ABR-video-transcode

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

        


ABR Video Transcode (UG1311)




1. Overview
2. VYUsync Decoder
3. NGCodec HEVC and VP Encoder
4. Xilinx ABR Scaler
5. FFmpeg Integration


6. System Requirements
7. Installation and Getting Started
8. Using FFmpeg with Xilinx Accelerated Video Transcoding
9. Known Issues and Limitations
10. Additional Resources

## Introduction

ABR stands for adaptive bit rate streaming. It is a protocol for video streaming over HTTP where the source content is encoded at multiple bit rates and resolutions. This document describes the Xilinx video transcoding system that can accelerate ABR transcoding from H.264 to HEVC, or from H.264 to VP9. The system supports live video input streams of up to 1920x1080 at 60 frames per second.

## Overview
The streaming client is made aware of the available streams at differing bit rates. At the start, the client requests the lowest bit rate stream. If the client finds the download speed is greater than the bit rate of the stream, it requests the next higher bit rate. Later, if the client finds the download speed for a stream is lower than the bit rate (because the network throughput has deteriorated, for example) it requests a lower bit rate stream.

![](./images/transcode-flow.png)

The three main functional parts of an ABR video transcoder are a decoder, a scaler, and an encoder. A typical transcoding pipeline works as follows:

1. The original 1080p60 H.264 elementary stream is decoded.
2. The scaler takes the uncompressed 1080p and produces multiple renditions of the content by scaling to resolutions of 720p, 480p, 320p, and 240p.
3. These renditions are then encoded by a single instance of the VP9 (or HEVC) encoder by time division multiplexing the hardware.

Xilinx has integrated the video transcoding accelerators into FFmpeg. FFmpeg is an open source software project, containing a vast suite of libraries, plugins, and programs for handling video, audio, and other multimedia files and streams. The FFmpeg program itself, designed for command-line-based processing of video and audio files, is widely used for transcoding. FFmpeg is part of the workflow of many software projects, and its libraries are a core part of software media players such as VLC, for example.

The next sections provide more details on the following video transcoding accelerators:

* The H.264 video decoder provided by our partner [VYUsync](https://www.vyusync.com/).
* The [Xilinx](https://www.xilinx.com/) ABR scaler.
* The HEVC and VP9 encoders provided by our partner [NGCodec](https://ngcodec.com/).

:arrow_forward:**Next Topic:** [2. VYUSync Decoder](vyusync-decoder.md)