rocDecode is a high-performance video decode SDK for AMD GPUs. Using the rocDecode API, you can access the video decoding features available on your GPU.
Note
The published documentation is available at rocDecode in an organized, easy-to-read format, with search and a table of contents. The documentation source files reside in the rocDecode/docs
folder of this repository. As with all ROCm projects, the documentation is open source. For more information on contributing to the documentation, see Contribute to ROCm documentation.
- H.265 (HEVC) - 8 bit, and 10 bit
- H.264 (AVC) - 8 bit
- AV1 - 8 bit, and 10 bit
- VP9 - 8 bit, and 10 bit
-
Linux distribution
- Ubuntu -
22.04
/24.04
- RHEL -
8
/9
- SLES -
15 SP5
- Ubuntu -
Important
gfx908
or higher GPU required
- Install ROCm
6.3.0
or later with amdgpu-install: Required usecase - rocm
Important
sudo amdgpu-install --usecase=rocm
- Video Acceleration API -
libva-amdgpu-dev
is an AMD implementation for VA-APIsudo apt install libva-amdgpu-dev
Note
- RPM Packages for
RHEL
/SLES
-libva-amdgpu-devel
libva-amdgpu
is strongly recommended over systemlibva
as it is used for building mesa-amdgpu-va-driver
- AMD VA Drivers
sudo apt install libva2-amdgpu libva-amdgpu-drm2 libva-amdgpu-wayland2 libva-amdgpu-x11-2 mesa-amdgpu-va-drivers
Note
RPM Packages for RHEL
/SLES
- libva-amdgpu mesa-amdgpu-va-drivers
-
CMake Version
3.10
or latersudo apt install cmake
-
AMD Clang++ Version
18.0.0
or later - installed with ROCm -
sudo apt install pkg-config
-
FFmpeg runtime and headers - for tests and samples
sudo apt install ffmpeg libavcodec-dev libavformat-dev libavutil-dev
Important
- On
Ubuntu 22.04
- Additional package required:libstdc++-12-dev
sudo apt install libstdc++-12-dev
Note
- All package installs are shown with the
apt
package manager. Use the appropriate package manager for your operating system.
For your convenience, we provide the setup script, rocDecode-setup.py, which installs all required dependencies. Run this script only once.
python3 rocDecode-setup.py --rocm_path [ ROCm Installation Path - optional (default:/opt/rocm)]
--runtime [ Setup runtime requirements - optional (default:ON) [options:ON/OFF]]
--developer [ Setup Developer Options - optional (default:OFF) [options:ON/OFF]]
The installation process uses the following steps:
-
ROCm-supported hardware install verification
-
Install ROCm
6.3.0
or later with amdgpu-install with--usecase=rocm
Important
Use either package install or source install as described below.
To install rocDecode runtime, development, and test packages, run the line of code for your operating system.
- Runtime package -
rocdecode
only provides the rocdecode librarylibrocdecode.so
- Development package -
rocdecode-dev
/rocdecode-devel
provides the library, header files, and samples - Test package -
rocdecode-test
provides CTest to verify installation
sudo apt install rocdecode rocdecode-dev rocdecode-test
sudo yum install rocdecode rocdecode-devel rocdecode-test
sudo zypper install rocdecode rocdecode-devel rocdecode-test
Note
Package install auto installs all dependencies.
Important
RHEL
/SLES
package install requires manual FFMPEG
dev install
To build rocDecode from source and install, run:
git clone https://github.com/ROCm/rocDecode.git
cd rocDecode
python3 rocDecode-setup.py
mkdir build && cd build
cmake ../
make -j8
sudo make install
make test
Important
make test requires FFMPEG
dev install
Note
To run tests with verbose option, use make test ARGS="-VV"
.
sudo make package
The installer copies:
- Libraries into
/opt/rocm/lib
- Header files into
/opt/rocm/include/rocdecode
- Samples folder into
/opt/rocm/share/rocdecode
- Documents folder into
/opt/rocm/share/doc/rocdecode
To verify your installation using a sample application, run:
mkdir rocdecode-sample && cd rocdecode-sample
cmake /opt/rocm/share/rocdecode/samples/videoDecode/
make -j8
./videodecode -i /opt/rocm/share/rocdecode/video/AMD_driving_virtual_20-H265.mp4
To verify your installation using the rocdecode-test
package, run:
mkdir rocdecode-test && cd rocdecode-test
cmake /opt/rocm/share/rocdecode/test/
ctest -VV
You can access samples to decode your videos in our GitHub repository. Refer to the individual folders to build and run the samples.
FFmpeg is required for sample applications and make test
. To install
FFmpeg, refer to the instructions listed for your operating system:
-
Ubuntu:
sudo apt install ffmpeg libavcodec-dev libavformat-dev libavutil-dev
-
RHEL/SLES:
Install ffmpeg development packages manually or use
rocDecode-setup.py
script
You can find rocDecode Docker containers in our GitHub repository.
- Linux
- Ubuntu -
22.04
/24.04
- RHEL -
8
/9
- SLES -
15 SP5
- Ubuntu -
- ROCm:
6.3.0
- libva-amdgpu-dev -
2.16.0
- mesa-amdgpu-va-drivers -
1:24.3.0
- FFmpeg -
4.4.2
/6.1.1
- rocDecode Setup Script -
V2.4.0