更新时间:2019-10-25 19:01
下面将以直播流为例,描述对直播流进行预测的场景。
CreateStreamPredictRequest request = new CreateStreamPredictRequest();
// 直播控制台拷贝出来的StreamId。
request.setStreamId(streamId);
// 设置视频流来源, 监控服务:VS, 直播服务:Live
request.setStreamType("Live");
// 检测的模型,可以通过获取迭代列表接口"DescribeIterations"获取迭代的模型ID,一次最多支持5个模型的检测。
request.setModelIds(modelId);
// 设置推流到VS或者Live, 是否自动触发识别任务
request.setAutoStart("false");
// 流预测时,保存结果有问题的地址前缀。
request.setOutput("http://ivison-test.oss-cn-beijing.aliyuncs.com/ivision-test/");
// 配置消息通知,当前只支持MNS队列。
JSONObject notify = new JSONObject();
notify.put("MNSQueue", "ivison-test-queue");
request.setNotify(notify.toJSONString());
CreateStreamPredictResponse response = vars.getClient().getAcsResponse(request);
String predictId = response.getPredictId();
StartStreamPredictRequest request = new StartStreamPredictRequest();
// 创建流预测时,返回的预测ID。
request.setPredictId(predictId);
StartStreamPredictResponse response = vars.getClient().getAcsResponse(request);
MNS如何接收消息见MNS收消息示例代码。具体的消息格式见预测流消息回调格式说明。
// 收到的消息,转换为列表
JSONArray resultArray = JSONObject.parseArray(message.getMessageBodyAsString());
DescribeStreamPredictResultRequest request = new DescribeStreamPredictResultRequest();
request.setPredictId(predictId);
request.setModelId(vars.getModelId());
request.setAcceptFormat(FormatType.JSON);
DescribeStreamPredictResultResponse response;
do {
response = vars.getClient().getAcsResponse(request);
for (DescribeStreamPredictResultResponse.StreamPredictData data : response.getStreamPredictDatas()) {
System.out.println(JSON.toJSONString(data));
}
request.setNextPageToken(response.getNextPageToken());
} while(response.getNextPageToken() != null) ;
StopStreamPredictRequest request = new StopStreamPredictRequest();
request.setPredictId(predictId);
StopStreamPredictResponse response = vars.getClient().getAcsResponse(request);
DescribeStreamPredictsRequest request = new DescribeStreamPredictsRequest();
request.setPredictIds(predictId);
DescribeStreamPredictsResponse response = vars.getClient().getAcsResponse(request);
List<DescribeStreamPredictsResponse.StreamPredict> streamPredicts = response.getStreamPredicts();
for (DescribeStreamPredictsResponse.StreamPredict streamPredict : streamPredicts) {
System.out.println(JSON.toJSONString(streamPredict));
}
DeleteStreamPredictRequest request = new DeleteStreamPredictRequest();
request.setPredictId(predictId);
DeleteStreamPredictResponse response = vars.getClient().getAcsResponse(request);
在文档使用中是否遇到以下问题
更多建议
匿名提交