Files
esp-idf/examples/peripherals/h264/main/Kconfig.projbuild
2025-06-12 10:43:18 +08:00

97 lines
3.7 KiB
Plaintext

menu "H.264 Example Configuration"
choice H264_ENCODER_TYPE
prompt "H.264 Encoder Type"
default H264_ENCODER_HARDWARE if IDF_TARGET_ESP32P4
default H264_ENCODER_SOFTWARE
help
Select the H.264 encoder type to use.
Hardware encoder is only available on ESP32P4 and provides
better performance and lower power consumption.
Software encoder is available on all targets but requires
more CPU resources.
config H264_ENCODER_HARDWARE
bool "Hardware Encoder (ESP32P4 only)"
depends on IDF_TARGET_ESP32P4
help
Use hardware H.264 encoder.
This option is only available on ESP32P4 which has
dedicated H.264 hardware encoding capabilities.
Provides better performance and lower power consumption
compared to software encoding.
config H264_ENCODER_SOFTWARE
bool "Software Encoder"
help
Use software H.264 encoder using OpenH264 library.
Available on all supported targets (ESP32S3, ESP32P4)
but requires more CPU resources and power consumption
compared to hardware encoding.
endchoice
menu "H.264 Encoder Parameters"
config H264_ENCODER_WIDTH
int "Video Width"
range 64 1920
default 320
help
Video frame width in pixels.
Must be multiple of 16 for optimal performance.
Recommended values: 128, 160, 320, 640, 1280.
config H264_ENCODER_HEIGHT
int "Video Height"
range 64 1080
default 240
help
Video frame height in pixels.
Must be multiple of 16 for optimal performance.
Recommended values: 96, 120, 240, 480, 720.
config H264_ENCODER_FPS
int "Frame Rate (FPS)"
range 1 60
default 30 if H264_ENCODER_HARDWARE
default 15 if H264_ENCODER_SOFTWARE
help
Video frame rate in frames per second.
Hardware encoder can support higher frame rates.
Software encoder performance depends on CPU capability.
config H264_ENCODER_BITRATE
int "Bitrate (bps)"
range 64000 10000000
default 512000 if H264_ENCODER_HARDWARE
default 256000 if H264_ENCODER_SOFTWARE
help
Video bitrate in bits per second.
Higher bitrate provides better quality but larger file size.
Hardware encoder can handle higher bitrates more efficiently.
Typical values: 256K-1M for low quality, 1M-5M for high quality.
config H264_ENCODER_GOP_SIZE
int "GOP Size"
range 1 255
default 30
help
Group of Pictures size. Determines the frequency
of I-frames in the video stream.
Larger GOP size = better compression, higher latency.
Smaller GOP size = lower compression, lower latency.
config H264_ENCODER_QP_VALUE
int "Quantization Parameter (QP)"
range 10 51
default 26 if H264_ENCODER_HARDWARE
default 28 if H264_ENCODER_SOFTWARE
help
Quantization parameter that controls video quality.
Lower values = higher quality, larger file size.
Higher values = lower quality, smaller file size.
Hardware encoder can handle lower QP values more efficiently.
endmenu
endmenu