# 使用网易易盾视频审核 (/zh-CN/realtime-media/content-moderation/build/netease-yidun-video-moderation)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<_PlatformTabsGroup>
<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="android" />
## 技术原理 [#技术原理]

内容审核视频审核采用 SDK 截图 + 三方审核的模式。集成声网视频 SDK 后，你可以对声网频道内的视频流使用第三方视频审核服务。当频道内有用户发送视频流时，审核结果会由第三方服务器直接返回到你的服务器。具体流程如下：

![视频审核流程](https://web-cdn.agora.io/docs-files/1673867371709)

1. 声网 SDK 从频道内的视频流中截取内容，加密传输至声网服务器。
2. 声网服务器对视频流信息进行封装，然后加密传输至第三方审核服务商。
3. 第三方审核服务商将声网视频流信息和审核结果返回到你的回调服务器。
4. 根据审核结果添加业务逻辑。

:::info[信息]
你需要自行准备接收审核结果回调的业务服务器。
:::

## 前提条件 [#前提条件]

开始前，请先按照[开通服务](/zh-CN/realtime-media/content-moderation/enable-service)中的步骤完成内容审核服务开通。

## 实现步骤 [#实现步骤]

### 1. 集成 SDK [#1-集成-sdk]

第三方视频审核服务需要使用 `4.2.3` 或以上版本的声网视频 SDK。你可以参考对应的集成文档完成集成：

| 视频 SDK 版本 | 下载链接           | 参考文档             |
| ------------- | ------------------------------------ | ----------------------- |
| 4.2.3 或以上（推荐）    | [Android SDK 下载](/zh-CN/realtime-media/rtc/reference/downloads) | [实现视频通话](/zh-CN/realtime-media/rtc/get-started/quick-start) |

:::warning[注意]
通过 SDK 启动内容审核时，当前仅支持使用以 `007` 开头的 RTC Token，即 AccessToken2。详见[使用 Token 鉴权](/zh-CN/realtime-media/rtc/build/setup-and-access/token-authentication)。
:::

### 2. 开始审核 [#2-开始审核]

本节介绍如何对单个频道内的视频流进行审核。

加入频道并发布视频流后，调用 `enableContentInspect` 方法开启视频审核。成功开启视频审核后，SDK 会按照设定的频率进行截图。截图将会由声网云端服务器加密传输到第三方审核服务商。

调用 `enableContentInspect` 方法时，你需要通过 `ContentInspectConfig` 的以下参数配置视频审核服务：

- `ContentInspectModule.type`：必须设为 `CONTENT_INSPECT_TYPE_IMAGE_MODERATION`。
- `ContentInspectModule.interval`：从视频流中截图并送审的时间间隔。
- `extraInfo`：（可选）传入 `cname` 和 `uid` 字段，可用于关联审核频道和发流端。该字段会随审核结果回调一起发送到你的服务器，并在网易易盾回调结果的 `name` 字段中体现，详见[审核结果回调](/zh-CN/realtime-media/content-moderation/build/netease-yidun-video-moderation#3-接收审核结果)。

示例代码如下：

```java
ContentInspectConfig config = new ContentInspectConfig();
config.extraInfo = "{\"cname\":\"YourChannelName\",\"uid\":\"12345\"}";
config.moduleCount = 1;
// 设置功能模块的类型为 SDK 端截图并且使用内容审核视频审核服务对视频流审核
config.modules[0].type = ContentInspectConfig.CONTENT_INSPECT_TYPE_IMAGE_MODERATION;
// 设置本地截图上传的频率为 2 秒一次
config.modules[0].interval = 2;
mRtcEngine.enableContentInspect(true, config);
```

### 3. 接收审核结果 [#3-接收审核结果]

审核结果回调请参考[网易易盾音视频解决方案文档](https://support.dun.163.com/documents/588434277524447232?docId=589231544060317696)中的**异步检测结果请求**和**异步检测结果请求示例**。

## API 参考 [#api-参考]

[enableContentInspect](/zh-CN/api-reference/rtc/android/video/video-prenpro/snapshot#enablecontentinspect)

## 常见问题 [#常见问题]

**问题 1：为什么审核内容要先发送到服务端，审核结果也要先返回给服务端？**

声网采用“服务端——服务端”的传输方案，主要有两个原因：

- 保障服务的安全性，客户端容易被监听。
- 方便自行控制业务逻辑。例如：你可以在业务服务器接收到内容违规的审核结果时，对客户端进行关闭频道、UI 提示、禁言、扣分等操作。

**问题 2：从频道内截取的内容由谁存储？**

第三方审核供应商会提供默认 7 天的 OSS 存储服务。
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="ios" />
本文介绍如何在你的项目中使用网易易盾视频审核。
## 技术原理 [#技术原理-1]

内容审核视频审核采用 SDK 截图 + 三方审核的模式。集成声网视频 SDK 后，你可以对声网频道内的视频流使用第三方视频审核服务。当频道内有用户发送视频流时，审核结果会由第三方服务器直接返回到你的服务器。具体流程如下：

![视频审核流程](https://web-cdn.agora.io/docs-files/1673867371709)

1. 声网 SDK 从频道内的视频流中截取内容，加密传输至声网服务器。
2. 声网服务器对视频流信息进行封装，然后加密传输至第三方审核服务商。
3. 第三方审核服务商将声网视频流信息和审核结果返回到你的回调服务器。
4. 根据审核结果添加业务逻辑。

:::info[信息]
你需要自行准备接收审核结果回调的业务服务器。
:::

## 前提条件 [#前提条件-1]

开始前，请先按照[开通服务](/zh-CN/realtime-media/content-moderation/enable-service)中的步骤完成内容审核服务开通。

## 实现步骤 [#实现步骤-1]

### 1. 集成 SDK [#1-集成-sdk-1]

第三方视频审核服务需要使用 `4.2.3` 或以上版本的声网视频 SDK。你可以参考对应的集成文档完成集成：

| 视频 SDK 版本 | 下载链接           | 参考文档             |
| ------------- | ------------------------------------ | ----------------------- |
| 4.2.3 或以上（推荐）    | [iOS SDK 下载](/zh-CN/realtime-media/rtc/reference/downloads) | [实现视频通话](/zh-CN/realtime-media/rtc/get-started/quick-start) |

:::warning[注意]
通过 SDK 启动内容审核时，当前仅支持使用以 `007` 开头的 RTC Token，即 AccessToken2。详见[使用 Token 鉴权](/zh-CN/realtime-media/rtc/build/setup-and-access/token-authentication)。
:::

### 2. 开始审核 [#2-开始审核-1]

本节介绍如何对单个频道内的视频流进行审核。

加入频道并发布视频流后，调用 `enableContentInspect` 方法开启视频审核。成功开启视频审核后，SDK 会按照设定的频率进行截图。截图将会由声网云端服务器加密传输到第三方审核服务商。

调用 `enableContentInspect` 方法时，你需要通过 `AgoraContentInspectConfig` 的以下参数配置视频审核服务：

- `AgoraContentInspectModule.type`：必须设为 `AgoraContentInspectTypeImageModeration`。
- `AgoraContentInspectModule.interval`：从视频流中截图并送审的时间间隔。
- `extraInfo`：（可选）传入 `cname` 和 `uid` 字段，可用于关联审核频道和发流端。该字段会随审核结果回调一起发送到你的服务器，并在网易易盾回调结果的 `name` 字段中体现，详见[审核结果回调](/zh-CN/realtime-media/content-moderation/build/netease-yidun-video-moderation#3-接收审核结果)。

示例代码如下：

```swift
let inspectExtraConfig = AgoraContentInspectConfig()
inspectExtraConfig.extraInfo = "{\"cname\":\"YourChannelName\",\"uid\":\"12345\"}"
var modules = [AgoraContentInspectModule]()
let module1 = AgoraContentInspectModule()
// 设置功能模块的类型为 SDK 端截图并且使用内容审核视频审核服务对视频流审核
module1.type = .imageModeration
// 设置本地截图上传的频率为 2 秒一次
module1.interval = 2
modules.append(module1)
inspectExtraConfig.modules = modules
agoraKit.enableContentInspect(true, config:inspectExtraConfig)
```

### 3. 接收审核结果 [#3-接收审核结果-1]

审核结果回调请参考[网易易盾音视频解决方案文档](https://support.dun.163.com/documents/588434277524447232?docId=589231544060317696)中的**异步检测结果请求**和**异步检测结果请求示例**。

## API 参考 [#api-参考-1]

[enableContentInspect](/zh-CN/api-reference/rtc/ios/video/video-prenpro/snapshot#api_irtcengine_enablecontentinspect)

## 常见问题 [#常见问题-1]

**问题 1：为什么审核内容要先发送到服务端，审核结果也要先返回给服务端？**

声网采用“服务端——服务端”的传输方案，主要有两个原因：

- 保障服务的安全性，客户端容易被监听。
- 方便自行控制业务逻辑。例如：你可以在业务服务器接收到内容违规的审核结果时，对客户端进行关闭频道、UI 提示、禁言、扣分等操作。

**问题 2：从频道内截取的内容由谁存储？**

第三方审核供应商会提供默认 7 天的 OSS 存储服务。
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="web" />
本文介绍如何在你的项目中使用 网易易盾视频审核。
## 技术原理 [#技术原理-2]

内容审核视频审核采用 SDK 截图 + 三方审核的模式。集成声网视频 SDK 后，你可以对声网频道内的视频流使用第三方视频审核服务。当频道内有用户发送视频流时，审核结果会由第三方服务器直接返回到你的服务器。具体流程如下：

![视频审核流程](https://web-cdn.agora.io/docs-files/1673867371709)

1. 声网 SDK 从频道内的视频流中截取内容，加密传输至声网服务器。
2. 声网服务器对视频流信息进行封装，然后加密传输至第三方审核服务商。
3. 第三方审核服务商将声网视频流信息和审核结果返回到你的回调服务器。
4. 根据审核结果添加业务逻辑。

:::info[信息]
你需要自行准备接收审核结果回调的业务服务器。
:::

## 前提条件 [#前提条件-2]

开始前，请先按照[开通服务](/zh-CN/realtime-media/content-moderation/enable-service)中的步骤完成内容审核服务开通，并准备接收审核结果回调的业务服务器。

## 实现步骤 [#实现步骤-2]

### 1. 集成 SDK [#1-集成-sdk-2]

第三方视频审核服务需要使用**特殊版本**的声网视频 SDK。你可以根据需要选择 SDK 版本并参考对应的集成文档：

| 视频 SDK 版本 | 下载链接 | 参考文档 |
| --- | --- | --- |
| 4.19.0 或以上 | [Web SDK 下载](/zh-CN/realtime-media/rtc/reference/downloads) | [实现视频通话](/zh-CN/realtime-media/rtc/get-started/quick-start) |

:::warning[注意]
通过 SDK 启动内容审核时，当前仅支持使用以 `007` 开头的 RTC Token，即 AccessToken2。详见[使用 Token 鉴权](/zh-CN/realtime-media/rtc/build/setup-and-access/token-authentication)。
:::

### 2. 开始审核 [#2-开始审核-2]

本节介绍如何对单个频道内的视频流进行审核。

加入频道并发布视频流后，确保已经调用 [`play`](/zh-CN/api-reference/rtc/web/interfaces/icameravideotrack#play) 在页面上播放本地视频轨道，再调用 `setImageModeration` 方法开启视频审核。成功开启视频审核后，SDK 会按照设定的频率进行截图，截图将会由声网云端服务器加密传输到第三方审核服务商。

调用 `setImageModeration` 方法时，你需要通过 `ImageModerationConfiguration` 的以下属性配置视频审核服务：

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `interval` | Number | 从视频流中截图并送审的时间间隔，单位为毫秒（ms），最小值为 1000。 |
| `extraInfo` | String | （可选）附加信息，最大长度为 1024 字节。SDK 会将附加信息和截图一起上传至声网服务器；截图并上传完成后，附加信息将会随回调通知一起发送给你的服务器。 |

示例代码如下：

```javascript
// 定义 imageModerationConfig 配置对象
const imageModerationConfig = {
    interval: 2000, // 设置视频截图的时间间隔为 2000 毫秒（2秒），最小值为 1000
    extraInfo: "This is some additional information for content inspection." // （可选）添加附加信息
};

// 调用 setImageModeration 方法并传入 imageModerationConfig
client.setImageModeration(true, imageModerationConfig)
    .then(() => {
        console.log("Content inspection enabled successfully.");
    })
    .catch(error => {
        console.error("Failed to enable content inspection:", error);
    });
```

### 3. 接收审核结果 [#3-接收审核结果-2]

审核结果回调请参考[网易易盾音视频解决方案文档](https://support.dun.163.com/documents/588434277524447232?docId=589231544060317696)中的**异步检测结果请求**和**异步检测结果请求示例**。

## API 参考 [#api-参考-2]

[setImageModeration](/zh-CN/api-reference/rtc/web/interfaces/iagorartcclient#setimagemoderation)

## 常见问题 [#常见问题-2]

**问题 1：为什么审核内容要先发送到服务端，审核结果也要先返回给服务端？**

声网采用“服务端——服务端”的传输方案，主要有两个原因：

- 保障服务的安全性，客户端容易被监听。
- 方便自行控制业务逻辑。例如：你可以在业务服务器接收到内容违规的审核结果时，对客户端进行关闭频道、UI 提示、禁言、扣分等操作。

**问题 2：从频道内截取的内容由谁存储？**

第三方审核供应商会提供默认 7 天的 OSS 存储服务。
<_PlatformProcessedMarker close="true" />
</_PlatformTabsGroup>
