====== Edge2 Hardware Encoding ====== ===== Introduction ===== This document mainly introduces how to use hardware encoding on Edge2. ===== Encoding ===== If encounter error, please add sudo and try again. 1. Check encoder. ```shell khadas@Khadas:~$ gst-inspect-1.0 | grep mpp rockchipmpp: mpph264enc: Rockchip Mpp H264 Encoder rockchipmpp: mpph265enc: Rockchip Mpp H265 Encoder rockchipmpp: mppjpegdec: Rockchip's MPP JPEG image decoder rockchipmpp: mppjpegenc: Rockchip Mpp JPEG Encoder rockchipmpp: mppvideodec: Rockchip's MPP video decoder rockchipmpp: mppvp8enc: Rockchip Mpp VP8 Encoder typefindfunctions: audio/x-musepack: mpc, mpp, mp+ ``` 2. Encoding format ''NV12'' to ''H264''. ```shell khadas@Khadas:~$ gst-launch-1.0 -v filesrc location=./test.yuv ! videoparse width=1920 height=1080 format=nv12 ! mpph264enc ! h264parse ! queue ! filesink location=./test.h264 Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... Redistribute latency... New clock: GstSystemClock 0:00:16.1 / 0:12:05.0 (2.2 %) ^Chandling interrupt. (2.8 %) ``` 3. Get data from USB camera and encode. ```shell khadas@Khadas:~$ gst-launch-1.0 v4l2src device=/dev/video33 io-mode=mmap num-buffers=300 ! image/jpeg, width=1920, height=1080, framerate=30/1 ! mppjpegdec ! mpph264enc ! filesink location=./test.h264 ``` ```shell khadas@Khadas:~$ gst-launch-1.0 v4l2src device=/dev/video60 io-mode=mmap num-buffers=300 ! image/jpeg, width=1920, height=1080, framerate=30/1 ! mppjpegdec ! mpph264enc ! filesink location=./test.h264 ``` Other encoding formats are used similarly. Just replace the corresponding encoder.