NVEnc: libnvidia-encode-* or just CUDA runtime. The acceleration libraries may also need some drivers for them to work: nvenc_h264 NVIDIA NVENC H.264 encoder (codec h264)Īdding support for more is possible and should not be a big problem, but needs someone with the right hardware to verify the implementation. If FFMpeg is correctly installed, you can see the available HW encoders by calling ffmpeg -hide_banner -encoders | grep 264. Some information about various aspects of the acceleration support by FFMpeg can be found on their HWAccelIntro wiki page. If the libavcodec/FFMpeg your system has doesn't support HW acceleration, you're out of luck until you get a version that supports some. The support for HW-accelerated encoding is based on what the local installation of libavcodec (and your hardware) offers. Whether to use a specialized HW surface. In order to get HW accelerated encoding working, you need to get 3 things right: Configuring hardware acceleration What needs to be configured HW acceleration should provide you with higher encoding performance, potentially leaving more CPU power to the rest of your program/simulation, while taking a bit of GPU memory (video encoding uses different chips than 3D graphics or CUDA computations, so performance-wise, the rest of the GPU should be unaffected). In both cases, HW-accelerated encoding can be set up. You can either use the VideoEncoder class directly, or you can "meet it" in the video recorder plugin in Ignition Gazebo.
This tutorial will show how to configure the encoder for HW acceleration and will present ready-made commandlines for some typical use-cases. By default, only software encoders are used. When recording video using the ignition::common::VideoEncoder class, you can opt-in to use hardware (HW) acceleration for the encoding process.