虚拟背景与美颜功能提供了丰富的视频增强和美化功能,包括虚拟背景、美颜滤镜、数字人、视频降噪、暗光增强等。这些功能能够显著提升视频通话的视觉效果和用户体验,适用于各种会议场景。
在启用高级视频功能前,先检查GPU支持:
// 获取GPU信息 - 获取当前GPU硬件信息
NemoSdkAdaptor::getInstance()->getGPUInfo();
// 开启GPU加速 - 启用GPU硬件加速
NemoSdkAdaptor::getInstance()->setEnableGPUs(true);
配置虚拟背景模式:
// 设置虚拟背景模式 - 设置为模糊背景模式
NemoSdkAdaptor::getInstance()->setVirtualBgMode(XYVirtualBgMode_Blur);
// 设置自定义背景图片 - 设置自定义背景图片路径
NemoSdkAdaptor::getInstance()->setVirtualBgImg("/path/to/background.jpg");
配置美颜和滤镜效果:
// 设置美颜效果 - 自然美颜风格,强度5
NemoSdkAdaptor::getInstance()->setVideoBeautyEffect(XYBeautyStyle_Natural, 5);
// 设置滤镜效果 - 暖色调滤镜,强度3
NemoSdkAdaptor::getInstance()->setVideoFilterEffect(XYFilterStyle_Warm, 3);
API: setWaylandMode
接口定义:
virtual void setWaylandMode(bool enable) = 0;
参数:
enable
: bool - 是否启用Wayland模式示例:
// 启用Wayland模式
NemoSdkAdaptor::getInstance()->setWaylandMode(true);
// 禁用Wayland模式
NemoSdkAdaptor::getInstance()->setWaylandMode(false);
API: getGPUInfo
接口定义:
virtual void getGPUInfo() = 0;
示例:
NemoSdkAdaptor::getInstance()->getGPUInfo();
API: setEnableGPUs
接口定义:
virtual void setEnableGPUs(bool enable) = 0;
参数:
enable
: bool - 是否启用GPU加速示例:
// 开启GPU加速
NemoSdkAdaptor::getInstance()->setEnableGPUs(true);
// 关闭GPU加速
NemoSdkAdaptor::getInstance()->setEnableGPUs(false);
API: setVirtualBgMode
接口定义:
virtual void setVirtualBgMode(XYVirtualBgMode mode) = 0;
参数:
mode
: XYVirtualBgMode - 虚拟背景模式示例:
// 设置模糊背景
NemoSdkAdaptor::getInstance()->setVirtualBgMode(XYVirtualBgMode_Blur);
// 设置纯色背景
NemoSdkAdaptor::getInstance()->setVirtualBgMode(XYVirtualBgMode_Color);
// 关闭虚拟背景
NemoSdkAdaptor::getInstance()->setVirtualBgMode(XYVirtualBgMode_None);
API: setVirtualBgImg
接口定义:
virtual void setVirtualBgImg(const char* imgPath) = 0;
参数:
imgPath
: const char* - 背景图片路径示例:
// 设置自定义背景图片
NemoSdkAdaptor::getInstance()->setVirtualBgImg("/path/to/background.jpg");
// 清除背景图片
NemoSdkAdaptor::getInstance()->setVirtualBgImg("");
API: setVideoBeautyEffect
接口定义:
virtual void setVideoBeautyEffect(XYBeautyStyle style, int level) = 0;
参数:
style
: XYBeautyStyle - 美颜风格level
: int - 美颜等级 (0-10)示例:
// 设置自然美颜,等级5
NemoSdkAdaptor::getInstance()->setVideoBeautyEffect(XYBeautyStyle_Natural, 5);
// 设置精致美颜,等级8
NemoSdkAdaptor::getInstance()->setVideoBeautyEffect(XYBeautyStyle_Delicate, 8);
// 关闭美颜
NemoSdkAdaptor::getInstance()->setVideoBeautyEffect(XYBeautyStyle_None, 0);
API: setVideoFilterEffect
接口定义:
virtual void setVideoFilterEffect(XYFilterStyle style, int level) = 0;
参数:
style
: XYFilterStyle - 滤镜风格level
: int - 滤镜等级 (0-10)示例:
// 设置暖色滤镜,等级3
NemoSdkAdaptor::getInstance()->setVideoFilterEffect(XYFilterStyle_Warm, 3);
// 设置冷色滤镜,等级5
NemoSdkAdaptor::getInstance()->setVideoFilterEffect(XYFilterStyle_Cool, 5);
// 关闭滤镜
NemoSdkAdaptor::getInstance()->setVideoFilterEffect(XYFilterStyle_None, 0);
参数:
options
: 数字人配置选项示例:
// 启用数字人
XYDigitalHumanOptions options;
options.enable = true;
options.style = XYDigitalHumanStyle_Professional;
NemoSdkAdaptor::getInstance()->setDigitalHumanOptions(options);
// 禁用数字人
options.enable = false;
NemoSdkAdaptor::getInstance()->setDigitalHumanOptions(options);
参数:
options
: 降噪配置选项示例:
// 启用视频降噪
XYVideoDenoiserOptions options;
options.enable = true;
options.level = 5;
NemoSdkAdaptor::getInstance()->setVideoDenoiserOptions(options);
API: setVideoLowLightEnhanceOptions
参数:
options
: 暗光增强配置选项示例:
// 启用暗光增强
XYVideoLowLightEnhanceOptions options;
options.enable = true;
options.level = 3;
NemoSdkAdaptor::getInstance()->setVideoLowLightEnhanceOptions(options);
API: setRemoteContentSharpenEnabled
参数:
enable
: 是否启用内容锐化示例:
// 启用内容锐化
NemoSdkAdaptor::getInstance()->setRemoteContentSharpenEnabled(true);
// 禁用内容锐化
NemoSdkAdaptor::getInstance()->setRemoteContentSharpenEnabled(false);
class VirtualBgBeautyManager {
private:
bool _isGPUEnabled = false;
bool _isVirtualBgEnabled = false;
bool _isBeautyEnabled = false;
bool _isFilterEnabled = false;
bool _isDigitalHumanEnabled = false;
XYVirtualBgMode _currentBgMode = XYVirtualBgMode_None;
XYBeautyStyle _currentBeautyStyle = XYBeautyStyle_None;
XYFilterStyle _currentFilterStyle = XYFilterStyle_None;
int _beautyLevel = 0;
int _filterLevel = 0;
public:
// 初始化GPU加速
void initializeGPU() {
NemoSdkAdaptor::getInstance()->getGPUInfo();
NemoSdkAdaptor::getInstance()->setEnableGPUs(true);
_isGPUEnabled = true;
}
// 设置虚拟背景
void setVirtualBackground(XYVirtualBgMode mode, const QString& imagePath = "") {
_currentBgMode = mode;
_isVirtualBgEnabled = (mode != XYVirtualBgMode_None);
NemoSdkAdaptor::getInstance()->setVirtualBgMode(mode);
if (!imagePath.isEmpty()) {
NemoSdkAdaptor::getInstance()->setVirtualBgImg(imagePath.toStdString());
}
}
// 设置美颜效果
void setBeautyEffect(XYBeautyStyle style, int level) {
_currentBeautyStyle = style;
_beautyLevel = level;
_isBeautyEnabled = (style != XYBeautyStyle_None);
NemoSdkAdaptor::getInstance()->setVideoBeautyEffect(style, level);
}
// 设置滤镜效果
void setFilterEffect(XYFilterStyle style, int level) {
_currentFilterStyle = style;
_filterLevel = level;
_isFilterEnabled = (style != XYFilterStyle_None);
NemoSdkAdaptor::getInstance()->setVideoFilterEffect(style, level);
}
// 启用数字人
void enableDigitalHuman(bool enable, XYDigitalHumanStyle style = XYDigitalHumanStyle_Professional) {
_isDigitalHumanEnabled = enable;
XYDigitalHumanOptions options;
options.enable = enable;
options.style = style;
NemoSdkAdaptor::getInstance()->setDigitalHumanOptions(options);
}
// 设置视频降噪
void setVideoDenoiser(bool enable, int level = 5) {
XYVideoDenoiserOptions options;
options.enable = enable;
options.level = level;
NemoSdkAdaptor::getInstance()->setVideoDenoiserOptions(options);
}
// 设置暗光增强
void setLowLightEnhance(bool enable, int level = 3) {
XYVideoLowLightEnhanceOptions options;
options.enable = enable;
options.level = level;
NemoSdkAdaptor::getInstance()->setVideoLowLightEnhanceOptions(options);
}
// 设置内容锐化
void setContentSharpen(bool enable) {
NemoSdkAdaptor::getInstance()->setRemoteContentSharpenEnabled(enable);
}
// GPU信息结果回调
void onGPUInfoResult(const XYString& code, const XYString& gpuInfo) {
QString errCode(code.str());
QString info(gpuInfo.str());
if (errCode == SDKError_NoError) {
qDebug() << "GPU info result:" << info;
emit gpuInfoReceived(info);
} else {
qDebug() << "GPU info failed:" << errCode;
emit gpuInfoFailed(errCode);
}
}
// Getter方法
bool isGPUEnabled() const { return _isGPUEnabled; }
bool isVirtualBgEnabled() const { return _isVirtualBgEnabled; }
bool isBeautyEnabled() const { return _isBeautyEnabled; }
bool isFilterEnabled() const { return _isFilterEnabled; }
bool isDigitalHumanEnabled() const { return _isDigitalHumanEnabled; }
XYVirtualBgMode getCurrentBgMode() const { return _currentBgMode; }
XYBeautyStyle getCurrentBeautyStyle() const { return _currentBeautyStyle; }
XYFilterStyle getCurrentFilterStyle() const { return _currentFilterStyle; }
int getBeautyLevel() const { return _beautyLevel; }
int getFilterLevel() const { return _filterLevel; }
};
模式 | 说明 |
| 关闭虚拟背景 |
| 模糊背景 |
| 纯色背景 |
| 图片背景 |
风格 | 说明 |
| 关闭美颜 |
| 自然美颜 |
| 精致美颜 |
| 清新美颜 |
风格 | 说明 |
| 关闭滤镜 |
| 暖色滤镜 |
| 冷色滤镜 |
| 复古滤镜 |
| 明亮滤镜 |
风格 | 说明 |
| 专业风格 |
| 休闲风格 |
| 正式风格 |
虚拟背景功能允许用户替换或模糊视频背景,提供:
美颜功能提供智能化的面部美化,包括:
滤镜功能提供多种视觉风格,包括:
数字人功能提供虚拟形象,适用于:
视频增强功能提升视频质量,包括:
方法 | 描述 | 链接 |
设置Wayland模式 | ||
设置虚拟背景模式 | ||
设置用户自定义虚拟背景图片路径 | ||
设置滤镜的风格和滤镜效果等级 | ||
设置美颜的风格和效果等级 | ||
启用/禁用虚拟数字人 | ||
设置本地视频降噪选项 | ||
设置本地视频暗光增强选项 | ||
设置远端内容流锐化是否开启 | ||
获取gpu信息 | ||
开启gpu加速 |
回调 | 描述 | 链接 |
GPU信息结果回调 |
枚举 | 描述 | 链接 |
虚拟背景模式枚举 | ||
美颜风格枚举 | ||
滤镜风格枚举 | ||
数字人风格枚举 |
数据结构 | 描述 | 链接 |
数字人配置选项 | ||
视频降噪配置选项 | ||
暗光增强配置选项 |