====== VIM3/3L Hardware Encoding ====== ===== Introduction ===== This document mainly introduces Hardware Encoding. You will learn how to use **h264** encoding and **h265** encoding. ===== System Configuration ===== Please make sure you use the latest image, if not please follow [[/products/sbc/common/configurations/upgrade-system|Upgrade The System]] to upgrade your system. ===== For Linux with 5.15 kernel ===== Please check [[products:sbc:vim4:applications:hardware-encoding| Hardware Encoding]]. ===== For Linux with 4.9 kernel ===== ==== H264 Hardware Encoding ==== ```shell $ h264EncoderDemo 1080p.nv21 1080p.h264 1920 1080 10 30 2000000 2000 1 ``` The encoded file is ''1080p.h264''. Get help information ```shell $ h264EncoderDemo Amlogic AVC Encode API usage: output [srcfile][outfile][width][height][gop][framerate][bitrate][num][fmt] options : srcfile : yuv data url in your root fs outfile : stream url in your root fs width : width height : height gop : I frame refresh interval framerate: framerate bitrate : bit rate num : encode frame count fmt : encode input fmt 0:nv12 1:nv21 2:yv12 3:rgb888 4:bgr888 ``` ==== H265 Hardware Encoding ==== ```shell $ h265EncoderDemo 1080p.nv21 1080p.h265 1920 1080 0 30 1000000 2000 0 ``` The encoded file is ''1080p.h265''. Get help information ```shell $ h265EncoderDemo Amlogic AVC Encode API usage: output [srcfile][outfile][width][height][gop][framerate][bitrate][num] options : srcfile : yuv data url in your root fs outfile : stream url in your root fs width : width height : height gop : I frame refresh interval framerate: framerate bitrate : bit rate num : encode frame count fmt : encode input fmt 0:nv21, 1:nv12, 2:RGB888 ``` ==== Library Source Code ==== [[gh>numbqq/encoder_libs_aml]]