-
Notifications
You must be signed in to change notification settings - Fork 88
Encoder
Nyanmisaka edited this page Jan 20, 2025
·
11 revisions
The codecs, profiles, levels, bitrates, resolutions, FPS, AFBC, etc. supported by MPP encoders depend on the specific chip capabilities. This chapter uses RK3588 for demonstration.
V..... h264_rkmpp Rockchip MPP (Media Process Platform) H264 encoder (codec h264)
V..... hevc_rkmpp Rockchip MPP (Media Process Platform) HEVC encoder (codec hevc)
V..... mjpeg_rkmpp Rockchip MPP (Media Process Platform) MJPEG encoder (codec mjpeg)
- Query MPP encoders
./ffmpeg -hide_banner -encoders | grep rkmpp
- Query MPP encoder options by name
./ffmpeg -hide_banner -h encoder=h264_rkmpp
Encoder h264_rkmpp [Rockchip MPP (Media Process Platform) H264 encoder]:
General capabilities: delay hardware
Threading capabilities: none
Supported hardware devices: rkmpp rkmpp drm
Supported pixel formats: gray yuv420p yuvj420p yuv422p yuvj422p yuv444p yuvj444p nv12 nv21 nv16 nv24 yuyv422 yvyu422 uyvy422 rgb24 bgr24 rgba rgb0 bgra bgr0 argb 0rgb abgr 0bgr drm_prime
h264_rkmpp_encoder AVOptions:
-rc_mode <int> E..V....... Set the encoding rate control mode (from 0 to 5) (default 5)
VBR 0 E..V.......
CBR 1 E..V.......
CQP 2 E..V.......
AVBR 3 E..V.......
-qp_init <int> E..V....... Set the initial QP value (from -1 to 51) (default -1)
-qp_max <int> E..V....... Set the max QP value for P and B frame (from -1 to 51) (default -1)
-qp_min <int> E..V....... Set the min QP value for P and B frame (from -1 to 51) (default -1)
-qp_max_i <int> E..V....... Set the max QP value for I frame (from -1 to 51) (default -1)
-qp_min_i <int> E..V....... Set the min QP value for I frame (from -1 to 51) (default -1)
-profile <int> E..V....... Set the encoding profile restriction (from -1 to 100) (default high)
baseline 66 E..V.......
main 77 E..V.......
high 100 E..V.......
-level <int> E..V....... Set the encoding level restriction (from -99 to 62) (default 0)
1 10 E..V.......
1.1 11 E..V.......
1.2 12 E..V.......
1.3 13 E..V.......
2 20 E..V.......
2.1 21 E..V.......
2.2 22 E..V.......
3 30 E..V.......
3.1 31 E..V.......
3.2 32 E..V.......
4 40 E..V.......
4.1 41 E..V.......
4.2 42 E..V.......
5 50 E..V.......
5.1 51 E..V.......
5.2 52 E..V.......
6 60 E..V.......
6.1 61 E..V.......
6.2 62 E..V.......
-coder <int> E..V....... Set the entropy coder type (from 0 to 1) (default cabac) (from 0 to 1) (default cabac)
cavlc 0 E..V.......
cabac 1 E..V.......
-8x8dct <boolean> E..V....... Set the high profile 8x8 transform (default true)
./ffmpeg -hide_banner -h encoder=hevc_rkmpp
Encoder hevc_rkmpp [Rockchip MPP (Media Process Platform) HEVC encoder]:
General capabilities: delay hardware
Threading capabilities: none
Supported hardware devices: rkmpp rkmpp drm
Supported pixel formats: gray yuv420p yuvj420p yuv422p yuvj422p yuv444p yuvj444p nv12 nv21 nv16 nv24 yuyv422 yvyu422 uyvy422 rgb24 bgr24 rgba rgb0 bgra bgr0 argb 0rgb abgr 0bgr drm_prime
hevc_rkmpp_encoder AVOptions:
-rc_mode <int> E..V....... Set the encoding rate control mode (from 0 to 5) (default 5)
VBR 0 E..V.......
CBR 1 E..V.......
CQP 2 E..V.......
AVBR 3 E..V.......
-qp_init <int> E..V....... Set the initial QP value (from -1 to 51) (default -1)
-qp_max <int> E..V....... Set the max QP value for P and B frame (from -1 to 51) (default -1)
-qp_min <int> E..V....... Set the min QP value for P and B frame (from -1 to 51) (default -1)
-qp_max_i <int> E..V....... Set the max QP value for I frame (from -1 to 51) (default -1)
-qp_min_i <int> E..V....... Set the min QP value for I frame (from -1 to 51) (default -1)
-profile <int> E..V....... Set the encoding profile restriction (from -1 to 1) (default main)
main 1 E..V.......
-tier <int> E..V....... Set the encoding profile tier restriction (from 0 to 1) (default high)
main 0 E..V.......
high 1 E..V.......
-level <int> E..V....... Set the encoding level restriction (from -99 to 186) (default 0)
1 30 E..V.......
2 60 E..V.......
2.1 63 E..V.......
3 90 E..V.......
3.1 93 E..V.......
4 120 E..V.......
4.1 123 E..V.......
5 150 E..V.......
5.1 153 E..V.......
5.2 156 E..V.......
6 180 E..V.......
6.1 183 E..V.......
6.2 186 E..V.......
./ffmpeg -hide_banner -h encoder=mjpeg_rkmpp
Encoder mjpeg_rkmpp [Rockchip MPP (Media Process Platform) MJPEG encoder]:
General capabilities: delay hardware
Threading capabilities: none
Supported hardware devices: rkmpp rkmpp drm
Supported pixel formats: yuv420p yuvj420p nv12 yuyv422 uyvy422 rgb444be bgr444be rgb555be bgr555be rgb565be bgr565be rgba rgb0 bgra bgr0 argb 0rgb abgr 0bgr x2rgb10be x2bgr10be drm_prime
mjpeg_rkmpp_encoder AVOptions:
-qp_init <int> E..V....... Set the initial QP/Q_Factor value (from -1 to 99) (default -1)
-qp_max <int> E..V....... Set the max QP/Q_Factor value (from -1 to 99) (default -1)
-qp_min <int> E..V....... Set the min QP/Q_Factor value (from -1 to 99) (default -1)
- 1080p H.264, CQP rate control
./ffmpeg -f lavfi -i testsrc2=s=1920x1080,format=nv12 -c:v hevc_rkmpp -qp_init 26 -profile:v main -level 4.1 -g:v 100 -vframes 5000 -y /tmp/tmp.mp4
- 1080p H.264, CBR rate control
./ffmpeg -f lavfi -i testsrc2=s=1920x1080,format=nv12 -c:v h264_rkmpp -b:v 4M -profile:v high -level 4.1 -g:v 100 -vframes 5000 -y /tmp/tmp.mp4
- 1080p H.264, VBR rate control (low latency, disable async encoding)
./ffmpeg -f lavfi -i testsrc2=s=1920x1080,format=nv12 -c:v h264_rkmpp -flags +low_delay -b:v 4M -minrate 2M -maxrate 5M -profile:v high -level 4.1 -g:v 100 -vframes 5000 -y /tmp/tmp.mp4
- 1080p H.264, VBR rate control
./ffmpeg -f lavfi -i testsrc2=s=1920x1080,format=nv12 -c:v h264_rkmpp -b:v 4M -minrate 2M -maxrate 5M -profile:v high -level 4.1 -g:v 100 -vframes 5000 -y /tmp/tmp.mp4
![](https://private-user-images.githubusercontent.com/14953024/293199398-84ab6253-8609-4a61-bfd5-c47be59b8673.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMDQ4NDIsIm5iZiI6MTczOTAwNDU0MiwicGF0aCI6Ii8xNDk1MzAyNC8yOTMxOTkzOTgtODRhYjYyNTMtODYwOS00YTYxLWJmZDUtYzQ3YmU1OWI4NjczLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDA4NDkwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY1YTQ1ODliMjJlMGMxOTM5MzM5MDI2OWU5NDI4MGNmNWZjNGRmMWZiYTZkZTk1NTVmOTYyZTNmNzMxZjIyMDcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.v3kLBz1sSclcrSaKUAncGj5xn5Q6eNgkhM3kGc_AeOc)
- 4K HEVC, VBR rate control
./ffmpeg -f lavfi -i testsrc2=s=3840x2160,format=nv12 -c:v hevc_rkmpp -b:v 15M -minrate 10M -maxrate 20M -profile:v main -level 5.1 -g:v 100 -vframes 5000 -y /tmp/tmp.mp4
![](https://private-user-images.githubusercontent.com/14953024/293200014-cefaccda-dad4-4d11-9321-e78936b62098.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMDQ4NDIsIm5iZiI6MTczOTAwNDU0MiwicGF0aCI6Ii8xNDk1MzAyNC8yOTMyMDAwMTQtY2VmYWNjZGEtZGFkNC00ZDExLTkzMjEtZTc4OTM2YjYyMDk4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDA4NDkwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWUxODFmMGYyMDQzZDc0M2RmOGE3MDBjOTY4YTI2NGE3MDgyYTNkYTM2Y2NiNGNhMTcyZDFmZDRmYWFhZTAwNzAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.dnLfVjqvjIiftrCS8DsBhF4k6M2plIdInRWKhs9DfQ8)
- 8K HEVC, VBR rate control
./ffmpeg -f lavfi -i testsrc2=s=7680x4320,format=nv12 -c:v hevc_rkmpp -b:v 30M -minrate 25M -maxrate 35M -profile:v main -level 6.1 -g:v 100 -vframes 2000 -y /tmp/tmp.mp4
![](https://private-user-images.githubusercontent.com/14953024/293200675-484d16e8-1a40-45c4-a093-84cb49b0ac7a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMDQ4NDIsIm5iZiI6MTczOTAwNDU0MiwicGF0aCI6Ii8xNDk1MzAyNC8yOTMyMDA2NzUtNDg0ZDE2ZTgtMWE0MC00NWM0LWEwOTMtODRjYjQ5YjBhYzdhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDA4NDkwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc0NmJiYjVlODg3NzZjYjM1ZWM1ZGYxNWQ3MmQzYWE3MDhiZjdjZWIyNGNlMGJiMjczYTg5YjUwZjgyNTk4MGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.llS7SKEVl70ipHqXYfrp-RFSaPj7D_SJEV9TiOK4CUo)
- 1080p MJPEG, CQP rate control (low latency, disable async encoding)
./ffmpeg -f lavfi -i testsrc2=s=1920x1080,format=bgra -c:v mjpeg_rkmpp -flags +low_delay -qp_init 80 -vframes 1000 -y /tmp/tmp%d.jpg
- 1080p MJPEG, CQP rate control
./ffmpeg -f lavfi -i testsrc2=s=1920x1080,format=bgra -c:v mjpeg_rkmpp -qp_init 80 -vframes 1000 -y /tmp/tmp%d.jpg
![](https://private-user-images.githubusercontent.com/14953024/316913480-32d9bfa1-0c9e-401e-ab65-8c9ffadc8ab4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMDQ4NDIsIm5iZiI6MTczOTAwNDU0MiwicGF0aCI6Ii8xNDk1MzAyNC8zMTY5MTM0ODAtMzJkOWJmYTEtMGM5ZS00MDFlLWFiNjUtOGM5ZmZhZGM4YWI0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDA4NDkwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFkZWI3ODM1ZDIwNTg0MzMzMDFhMDUwYTY2ZGFlYmNmNTBlMzg3YTNjM2RkNTYwOGNlOWJhNzk3NWRkZTQyZDAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.unUfxu0_5udQuI8EAvq7OI4sZAFf-AUn2jvd1P_7L6s)