智能音频流识别产品API文档#

1. 接入前准备#

1.1 数美服务账号申请#

客户经理已提前与贵公司建立联系或当面拜访,可直接将开通账号及服务相关信息提供至客户经理。

开通账号所需信息包括:

公司全称:xxxxxx

公司简称:xxxxxx

接口人邮箱:xxx@xxx.xxx

接口人手机:1xxxxxxxxxx

1.2 渠道配置表#

数美根据客户不同业务场景,配置不同的渠道(channel),制定针对性的拦截策略,同时也方便客户针对不同业务场景的数据进行筛选、分析。需要联系数美服务开通,请使用数美单独提供的传值为准。

1.2 数美服务账号信息接收#

数美客户经理会在1个工作日内为您开通相应数美账号及服务,随后接口人邮箱会收到如下信息:

名称具体值说明
accessKeyxxxxxx数美API服务的认证码,调用数美API时需要传入
organizationxxxxxx数美分配的企业唯一标识码,调用SDK时需要传入
数美管理后台账号xxxxxx用于登陆数美管理后台
数美管理后台密码xxxxxx用于登陆数美管理后台
数美管理后台地址https://console.ishumei.com用于登陆数美管理后台

2. 智能音频流过滤服务接口说明#

数美智能音频流过滤服务方案提供音频流内容检测和音频流关闭通知接口。

2.1 音频流检测请求#

接口描述#

该接口用于提交音频流相关信息,接口会实时检测音频流中是否出现违规内容,并通过回调把违规信息发送给客户指定的url。

请求URL:#

集群URL支持语种
新加坡http://api-audiostream-xjp.fengkongcloud.com/v2/saas/anti_fraud/audiostream中文、英语、阿语
硅谷http://api-audiostream-gg.fengkongcloud.com/v2/saas/anti_fraud/audiostream中文、英语、阿语
上海http://api-audiostream-sh.fengkongcloud.com/v2/saas/anti_fraud/audiostream中文、阿语

字符编码格式#

请求及返回结果都使用UTF-8字符集进行编码

请求方法#

POST

建议超时时长#

3s

通用请求参数#

放在HTTP Body中,采用Json格式,具体参数如下:

参数名称类型是否必选说明
accessKeystringY服务密钥,开通账号服务时由数美提供
typestringN

识别类型,可选值:

EROTIC:色情识别
DIRTY: 辱骂识别

ADVERT:广告识别

AUDIOPOLITICAL:一号领导人声纹识别

POLITY:涉政识别

ADLAW:广告法识别

MOAN:娇喘识别

ANTHEN:国歌识别

MINOR:未成年人识别

BANEDAUDIO:违禁歌曲

如需做组合识别,通过下划线连接即可,例

如 POLITY_EROTIC_MOAN_ADVERT 用于广告、色情和涉政,娇喘识别。

type和 businessType 必须填其一

businessTypestringN

识别类型,可选值:

SING:唱歌

AGE:年龄

LANGUAGE:语种

GENDER:性别

TIMBRE:音色

VOICE:人声属性

AUDIOSCENE:声音场景

type和 businessType 必须填其一

btIdstringY音频唯一标识,用于查询指定音频,限长128位字符长度
appIdstringN

应用标识

用于区分相同公司的不同应用,需要联系数美开通,请以数美单独提供的传值为准

callbackstringY异步检测结果回调通知您的URL,支持HTTP和HTTPS
datajson_objectY请求数据内容,最长1MB

其中,data的内容如下:

参数名称类型是否必选说明
streamTypestringY流类型,可选择:
普通流:NORMAL,目前支持rtmp、rtmps、hls、http、https协议,支持flv,m3u8等格式
声网录制:AGORA
即构录制:ZEGO
腾讯录制:TRTC
火山引擎录制:VOLC
巨人录制:GIN

注意:使用RTC的SDK录制方案的时候,会在RTC侧产生额外的录制费用,具体费用请咨询相关RTC厂商

urlstringY要检测的音频流url地址(当streamType为NORMAL时必传)
agoraParamjson_objectY声网录制参数(当streamType为AGORA时必传),详见扩展参数
ginParamjson_objectY巨人录制参数(当streamType为GIN时必传),详见扩展参数
zegoParamjson_objectY即构录制参数(当streamType为ZEGO时必传),详见扩展参数
trtcParamjson_objectY腾讯录制参数(当streamType为TRTC时必传),详见扩展参数
volcParamjson_objectY火山引擎录制参数(当streamType为VOLC时必传),详见扩展参数
tokenIdstringY客户端用户账号唯一标识,
channelstringY见渠道配置表
langstringN可选值如下,(默认值为zh):
zh:中文
en:英文
ar:阿拉伯语
hi:印地语
es:西班牙语
fr:法语
ru:俄语
pt:葡萄牙语
id:印尼语
de:德语
ja:日语
tr:土耳其语
vi:越南语
it:意大利语
th:泰语
tl:菲律宾语
ko:韩语
ms:马来语
extrajson_objectN辅助参数 详见extra参数

扩展请求参数#

放在data下,其中具体参数如下:

参数名称类型是否必选说明
roomstringN房间号,强烈建议传入
returnAllTextboolN

取值为true时返回全量的音频流片段识别结果和文本内容;

取值为false时返回riskLevel为非pass的音频流片段识别结果和文本内容,默认是false

建议传入true (默认为false,在静音的情况下不会产生回调)

returnPreTextboolN

值为true时,返回的content字段包含违规音频前一个片段10秒文本内容;

值为false时,返回的content字段只包含违规音频片段文本内容,默认值为false(对于TRTC流该功能无效,当客户使用间隔审核功能时,即使returnPreAudio是true情况下,也不返回该字段)

returnPreAudioboolN

值为true,返回违规音频前一个片段10秒链接;值为false时,只返回违规片段音频链接。默认值为false(对于TRTC流该功能无效),

当客户使用间隔审核功能时,即使returnPreText为true情况下,也只返回当前片段文本,不返回前一个片段的文本。

returnFinishInfoboolN

音频流结束回调通知

可选值(默认为false):
false:审核结束时不发送结束通知

true:审核结束时发起结束通知,回调参数增加statCode状态码

建议传入true(默认为false,在流结束时不会产生回调)

initDomainintN当即构客户端init初始化支持隔离域名和随机userId该字段必传,可选值:
0:默认版本
1:仅支持客户端初始化有隔离域名
2:支持客户端初始化有隔离域名和随机userId功能
3:更新SDK,修复一些bug
4:支持客户自定义传入SEI信息
5:支持vad静音检测,token会有唯一性校验,每次上传鉴黄必须重新生成
推荐使用5进行接入; 为兼容老客户使用,默认值为0
audioDetectStepintN音频每个步长只会检测一次,取值范围1-36的整数,默认每个片段都审核(备注)
举例:该参数设置为1,会审核第一个片段、第三个片段、第五个片段,以此类推。该参数设置为2,会审核第一个片段、第四个片段、第个七个片段,以此类推。

其中data.agoraParam内容如下:

参数名称类型是否必选说明
appIdstringY声网提供的appId,注意与数美的appId区分开
channelstringY声网提供的频道名,注意与数美channel区分开。
tokenstringN安全要求较高的用户可以使用 token进行认证,生成方式详见声网文档: https://docs.agora.io/cn/Interactive%20Broadcast/token_server?platform=All%20Platforms
建议将token的有效期设置超过频道的持续时间,防止token失效导致无法拉流。当前声网支持的最大token有效期为24小时,因此当频道持续时间超过24小时的时候,需要处理token失效的问题。处理方法:在请求参数中设置开启音频流结束回调通知(设置returnFinishInfo为true)。当回调接收到审核结束通知(statCode为1),并且原因是由于拉流的token无效或过期(auxInfo下errorCode状态码返回3005),如果频道仍然存在并且需要继续审核,则生成新的token,将频道重新送审。
uidintN用户 ID,32 位无符号整数。当token存在时,必须提供生成token时所使用的用户ID。注意,此处需要区别实际房间中的用户uid,提供给服务端录制所用的uid不允许在房间中存在。
isMixingEnabledboolN

单流/合流录制,默认合流录制。

true:合流

false:分流

合流是指一个直播房间一路流,分流是指一个麦位一路流

channelProfileintN

声网录制的频道模式,取值:

0: 通信(默认),即常见的 1 对 1 单聊或群聊,频道内任何用户可以自由说话;

1: 直播,有两种用户角色: 主播和观众。

默认以通信模式录制,即默认值为0。

subscribeModestringN

订阅模式:

AUTO: 自动订阅房间内的所有流,不设置subscribeMode时候的默认行为

UNTRUSTED: 配合untrustedUserIdList只订阅该列表指定的用户流,仅在声网分流里生效

TRUSTED: 配合trustedUserIdList只订阅该列表以外的用户流,仅在声网分流中生效

trustedUserIdListstring_arrayN

信任用户的列表,subscribeMode=TRUSTED时生效,允许为空,数美不会订阅房间内该列表指定的用户流。其中每个元素uid的范围应为uint32的范围,但类型为string。例如:["123","456"]

untrustedUserIdListstring_arrayN

非信任用户的列表,subscribeMode=UNTRUSTED时生效,不允许为空,数美只订阅房间内该列表指定的用户流。其中每个元素uid的范围应为uint32的范围,但类型为string。例如:["123","456"]

其中data.ginParam内容如下:

参数名称类型是否必选说明
tokenIdstringY房间token,用于拉流端登陆房间,需要巨人提供
roomIdstringY房间编号,唯一对应一个房间,服务端以房间为单位拉流录制
isMixingEnabledboolY

录制模式,可能取值:

false:分流,房间内每个用户单独录制审核

true:合流,房间内所有用户合成一路流录制审核

ipstringY指定服务器ip
portstringY指定端口

其中data.zegoParam内容如下

参数名称类型是否必选说明
tokenIdstringYzego提供的身份验证信息,获取zego的identify_token用于登录,生成方式详见zego文档:https://doc-zh.zego.im/article/15258 。注意tokenId唯一标识审核请求,每次请求都需要重新生成。
streamIdstringN音频流编号,唯一对应一路音频流,streamId与roomId至少传入其中之一。
roomIdstringN房间编号,唯一对应一个房间。
isMixingEnabledboolN录制模式,可能取值(不传默认为true):
true:合流,房间内所有用户合成一路流录制审核。此时如果streamId与roomId单独存在时则单独生效;但当streamId与roomId同时存在时,则以streamId为有效值。
false:分流,房间内每个用户单独录制审核。此时roomId为必传,且以roomId为有效值。

其中 data.trtcParam内容如下

参数名称类型是否必选说明
sdkAppIdintY腾讯提供的sdkAppId
demoSencesintY

录制类型可选值:

分流录制:2
合流录制:4

userIdstringY分配给录制端的userId,限制长度为32bit,只允许包含(a-zA-Z),数字(0-9)以及下划线和连词符
userSigstringY录制userId对应的验证签名,相当于登录密码
uidstringN指定需要审核的用户ID,如果不传该参数,则默认拉取并审核房间中所有推流用户的流。如果需要审核同一房间内的一部分用户,请使用不同的录制端userId和userSig分多次请求。注意此参数和userId的区别
roomIdintY

房间号码,取值范围:【1-4294967294】

roomId与strRoomId必传一个,若两者都有值优先选用roomId

strRoomIdstringY

房间号码
取值说明:只允许包含(a-zA-Z),数字(0-9)以及下划线和连词符

若您选用strRoomId时,需注意strRoomId和roomId两者都有值优先选用roomId

trtc流会根据下述逻辑去重:

  • uid不存在时:sdkAppIduserIdroomIdstrRoomId进行去重
  • uid存在时,会根据sdkAppIduidroomIdstrRoomId进行去重

其中data.volcParam内容如下:

参数名称类型是否必选说明
appIdstringY火山引擎提供的appId,注意与数美的appId区分开
roomIdstringY房间号
tokenstringY火山引擎token,详见:https://www.volcengine.com/docs/6348/70121
userIdstringY分配给录制端的userId
subscribeModestringN

订阅模式:

AUTO: 自动订阅房间内的所有流,不设置subscribeMode时候的默认行为。

UNTRUSTED: 配合untrustedUserIdList只订阅该列表指定的用户流,此种模式下如果untrustedUserIdList列表为空,参数错误,因为无法订阅任何流。

TRUSTED: 配合trustedUserIdList只订阅该列表以外的用户流,此种模式下如果一定时间下没有untrustedUserIdList名单外的用户进入房间,数美将主动结束审核。

trustedUserIdListstring_arrayN信任用户的列表,subscribeMode=TRUSTED时生效,允许为空,数美不会订阅房间内该列表指定的用户流。
untrustedUserIdListstring_arrayN非信任用户的列表,subscribeMode=UNTRUSTED时生效,不允许为空,数美只订阅房间内该列表指定的用户流。
data中,extra的内容如下:
请求参数名类型是否必传规范
passThroughjson_objectN透传字段,该字段下所有内容会通过回调返回

返回参数#

放在HTTP Body中,采用Json格式,具体参数如下:

参数名称类型是否必选说明
codeintY返回码
messagestringY返回码详情描述
requestIdstringY请求唯一标识
detailjson_objectN描述详细信息

detail结构如下:

参数名称类型是否必选说明
errorcodeintY状态码
dupRequestIdstringN表示重复的requestId
当errorcode为1001,表示重复推流时,会返回dupRequestId字段
例如当第一次请求的时候没有收到返回,但该音频流实际已经开始审核了,没有requestId无法主动关闭审核
可以再次请求,收到重复推流的信息,通过返回的dupRequestId调用关闭审核接口

errorcode对应说明如下:

codemessage
1001重复推流

回调策略#

当用户收到推送结果,并返回HTTP状态码为200时,表示推送成功;否则

系统将进行最多12次推送。

请求方法#

POST

字符编码格式#

请求及返回结果都使用UTF-8字符集进行编码

回调参数#

放在HTTP Body中,采用Json格式,具体参数如下:

参数名称类型是否必选说明
codeintY返回码
messagestringY返回码详情描述
requestIdstringY流片段唯一标识
scoreintN

风险分数(code 为 1100 且riskLevel=REJECT时存在)

取值范围[0,1000],分数越高风险越大

riskLevelstringY

风险级别(code 为 1100 时存在)

可能返回值:PASS,REVIEW,REJECT

PASS:正常内容,建议直接放行

REVIEW:可疑内容,建议人工审核

REJECT:违规内容,建议直接拦截

statCodeintN

审核状态:

0 :审核中:

1 :审核结束

detailjson_objectY风险详情
auxInfojson_objectN辅助信息

其中,detail 的内容如下:

参数名称类型是否必选说明
beginProcessTimeintY开始处理的时间(13位时间戳)
finishProcessTimeintY结束处理的时间(13位时间戳)
audioUrlstringY

音频片段地址,returnAllText不传或为false时只返回违规音频片段地址,

returnAllText为true时返回所有音频片段地址

preAudioUrlstringN返回的是当前片段与前一片段的20秒音频片段地址(该参数只有在请求参数中returnPreAudio是true情况下存在)
audio_endtimestringY违规内容结束时间(绝对时间)
audio_starttimestringY违规内容开始时间(绝对时间)
audioTextstringN音频片段文本
contentstringNreturnPreText为true时返回违规内容前一个片段10秒文本和违规内容片段文本
descriptionstringY策略规则风险原因描述
注:该参数为旧版 API 返回参数,兼容保留,
后续版本将去除,请勿依赖此参数,仅供人了解风险原因时作为参考,程序请勿依赖该参数的值做逻辑处理
descriptionV2stringY策略规则风险原因描述
注:该参数为 API 返回参数
请勿依赖此参数,仅供人了解风险原因时作为参考,程序请勿依赖该参数的值做逻辑处理
matchedItemstringN命中的具体敏感词(该参数仅在命中敏感词时存在)
matchedListstringN命中敏感词所在的名单名称(该参数仅在命中
敏感词时存在)
hitsjson_arrayY展示风险详情,请勿依赖此参数,仅供参考
modelstringY规则标识,用来标识文本命中的策略规则。
注:该参数为旧版 API 返回参数,兼容保留,
后续版本将去除,请勿依赖此参数,仅供参考
isSingintNtype取值包含SING时存在,取值0表示检测不存在唱歌片段,取值1表示检测存在唱歌片段
requestParamsjson_objectY返回请求参数data中的所有字段
riskTypeintY

标识风险类型,可能取值:
风险类型,静音时不返回,可能取值:
0:正常

100:涉政/国歌

110:暴恐

200:色情

210:辱骂

250:娇喘

260:一号领导声纹

270:人声属性

280:违禁歌曲

300:广告

400:灌水

500:无意义

520:未成年人

600:违禁

700:其他

720:黑账号

730:黑IP

800:高危账号

900:自定义

riskTypeDescstringN风险原因描述
roomstringY房间号
userIdintNAGORA分流情况下存在。返回的userId是实际房间中的用户id,与请求参数agoraParam中的uid无关。
strUserIdstringNTRTC、ZEGO、VOLC、GIN分流情况下存在。返回的strUserId是实际房间中的用户id。当流类型为TRTC分流,与请求参数trtcParam中的uid无关。
vadCodeintN

静音状态:

0 :静音片段

1 :非静音片段

seiInfoarrayN

(需要联系数美开通)

展示流片段插入的SEI信息

languagejson_arrayN语种识别与概率值列表,在type下传入返回。
minorLabelintN

当type传入MINOR且命中未成年人标签时,才会返回;

1:未成年人

businessLabelsjson_arrayY音频业务标签返回
tokenProfileLabelsjson_arrayN账号属性标签,仅在开启功能时返回
tokenRiskLabelsjson_arrayN账号风险标签,仅在开启功能时返回
riskSourceintY

风险来源

1000:无风险

1001:文字

1003:音频

speakersjson_arrayN

该音频片段中说话人uid以及音量信息,每秒采集一次,一个片段不超过10次。

该结构是个数组,最多10个元素,按照相对时间排序,每个元素也是一个数组,包含当前说话人uid和音量大小

备注:目前仅在声网合流中生效

detail.language数组中每一项具体参数如下:

参数名称类型是否必选说明
labelintY

语种识别类别标识,可能取值:

0:普通话

1:英语

2:粤语

3:藏语

4:维语

5:蒙语

6:朝鲜语

-1:其他语种

confidenceintY对应语种标签可能性大小,取值0-100,数值越高表示概率越大。

其中,businessLabels详细内容如下:

参数名类型参数说明是否必返备注
businessLabel1string一级业务标签N
businessLabel2string二级业务标签N
businessLabel3string三级业务标签N
businessDescriptionstring业务标签描述N中文标签描述,仅供人了解风险原因时作为参考,程序请勿依赖该参数的值做逻辑处理

其中,tokenProfileLabels,tokenRiskLabels 详细内容如下

参数名类型参数说明是否必返备注
label1string一级标签N
label2string二级标签N
label3string三级标签N
descriptionstring标签描述N账号标签描述,仅供人了解风险原因时作为参考,程序请勿依赖该参数的值做逻辑处理
timestampint打标签时间戳N13位Unix时间戳,单位:毫秒

其中,auxInfo 的内容如下:

参数名称类型是否必选说明
errorCodeintY

状态码

3001:流地址访问失败,例如资源HTTP状态码404、403

3002:流数据无效,例如“Invalid data found when processing input”

3003:流不存在,例如zego返回197612错误码

3004:流未返回音频数据

3005:拉流token无效或过期,建议使用新token重新开启审核,例如声网token过期或者trtc usersig无效

streamTimeintN流结束后最后一次返回,代表送审时长,如有间隔审核逻辑时,和流真实时长可能不一致

其中,speakers 是个二维数组,每个元素的详细内容如下

参数名类型参数说明是否必返备注
uidint说话人uidY
volumeint音量大小Y取值范围为 [0,255]

code和message的列表如下:

Codemessage
1100成功
1901QPS超限、流路数超限
1902参数不合法
1903服务失败
1904拉流失败
9100余额不足
9101无权限操作

示例#

请求示例#

curl 'http://api-audiostream-bj.fengkongcloud.com/v2/saas/anti_fraud/audiostream' -d'{
"accessKey": "",
"type": "POLITY_EROTIC_MOAN_ADVERT",
"appId": "default",
"btid": "",
"callback": "http://10.141.16.179:8900/",
"data": {
"streamType": "TRTC",
"trtcParam": {
"sdkAppId": 1400498247,
"demoSences": 4,
"userId": "12345",
"userSig": "",
"roomId": 517067780
},
"returnPreText": true,
"returnPreAudio": true,
"tokenId": "shumei-test",
"channel": "",
"returnAllText": true,
"callbackParam": {
"test1": 1,
"test2": "qew",
"test3": true
},
}
}'

返回示例#

{
"code":1100,
"message":"成功",
"requestId":" a78eef377079acc6cdec24967ecde722"
}

回调接口返回的内容示例#

{
"code": 1100,
"message": "成功",
"requestId": "a78eef377079acc6cdec24967ecde722_12345_0",
"riskLevel": "REJECT",
"detail": {
"audioUrl": "[http://xxxx.mp3](http://xxxx.mp3/)",
"preAudioUrl": "[http://prexxxx.mp3](http://prexxxx.mp3/)",
"audio_endtime": "2018-09-18 17:54:31",
"audio_starttime": "2018-09-18 17:54:21",
"content": "啥鸡巴破地方啊,我发现我进传销了,兄弟们跟我过来当老板",
"description": "色情内容",
"matchedItem": "鸡巴",
"matchedList": "色情",
"model": "M1020_20",
"requestParams":{
"streamType": "TRTC",
"trtcParam": {
"sdkAppId": 1400498247,
"demoSences": 4,
"userId": "12345",
"userSig": "",
"roomId": 517067780
},
"returnPreText": true,
"returnPreAudio": true,
"tokenId": "shumei-test",
"channel": "",
"returnAllText": true,
"callbackParam": {
"test1": 1,
"test2": "qew",
"test3": true
},
},
"riskType": 200,
"riskTypeDesc": "色情",
"room": "16037880",
"speakers":[
[
{
"uid":2,
"volume":100
},
{
"uid":1,
"volume":255
},
{
"uid":3,
"volume":50
}
],
[
{
"uid":2,
"volume":200
},
{
"uid":3,
"volume":50
}
],
[
{
"uid":4,
"volume":255
}
]
]
}
}

2.2 音频流关闭通知接口#

接口描述#

该接口用于客户端通知服务端某个音频流已关闭。

请求URL#

上海集群:

http://api-audiostream-sh.fengkongcloud.com/v2/saas/anti_fraud/finish_audiostream

硅谷集群:

http://api-audiostream-gg.fengkongcloud.com/v2/saas/anti_fraud/finish_audiostream

新加坡:

http://api-audiostream-xjp.fengkongcloud.com/v2/saas/anti_fraud/finish_audiostream

字符编码格式#

请求及返回结果都使用UTF-8字符集进行编码

请求方法#

POST

建议超时时长#

1s

请求参数#

放在HTTP Body中,采用Json格式,具体参数如下:

参数名称类型是否必选说明
accessKeystringY用于权限认证,开通账号服务时由数美提供
requestIdstringY关闭的音频流的requestId

返回参数#

放在HTTP Body中,采用Json格式,具体参数如下:

参数名称类型是否必选说明
codeintY返回码
messagestringY返回码详情描述
requestIdstringY请求唯一标识

code和message的列表如下:

Codemessage
1100成功
1901QPS超限、流路数超限
1902参数不合法
1903服务失败
1904拉流失败
9100余额不足
9101无权限操作或accessKey错误

示例#

请求示例#

curl 'http://api-audiostream-sh.fengkongcloud.com/v2/saas/anti_fraud/finish_audiostream' -d'{
"accessKey": "xxxxx",
"requestId": "yyyy"
}'

返回示例#

{
"code":1100,
"message":"成功",
"requestId":" a78eef377079acc6cdec24967ecde722"
}

3. FAQ#

3.1 调用接口返回参数错误(1902)#

答:调用数美接口时,code返回1902参数不合法,一般为客户输入的参数格式存在问题,客户可自行分析一下请求格式是否按照接口文档输入,或将请求的数据及返回数据反馈给数美分析解决。

3.2 调用接口返回无权限操作(9101)#

答:调用数美接口时,code返回9101无权限操作,一般为调用了未开通的服务,沟通确认客户调用的服务接口,开通相应的服务。

3.3 调用接口超时问题#

答:有如下两个常见问题:

1)DNS问题:

客户通过公网调用数美接口进行测试,客户DNS解析域名较慢,导致第一次请求超时,建议客户更换DNS,不建议客户在host中将域名和ip做绑定,数美更换接口IP导致无法请求接口。

2)网络问题:

客户通过公网调用数美接口,公网网络延迟较长,导致少量请求存在超时。可以建议客户ping数美不同的集群网络,建议客户接入网络延迟较低的数美集群。

3.4 数美接口支持哪些网络协议?#

数美音频流测试接口支持http、https、RTMP、HLS、HDL(HTTP-FLV)、RTP等所有主流网络协议。

在线咨询