#pragma once #include "VideoEncoderBase.h" #include "common/commands.h" #include // 创建编码器的请求参数。 struct EncoderRequest { int width = 0; int height = 0; int fps = 30; int bitrate_kbps = 4000; int encodeLevel = LEVEL_H264_SOFT; }; // 按客户端能力 + 本机硬件能力创建一个 VideoEncoderBase。 // // 探测顺序(第一个 open 成功的就用): // AV1 硬编路径 // H.264 硬编(CFFmpegH264Encoder 内部按 nvenc/qsv/amf/mf 探) // x264 软编(CX264Encoder,CPU 兜底) // // 失败路径在日志中可见(Mprintf)。返回 nullptr 仅在 x264 也开不起来时(极少见)。 std::unique_ptr CreateEncoder(const EncoderRequest& req);