====== 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]]