视频直播常见问题与解决办法汇总【系列二—直播截图】

别来无恙 提交于 2019-12-06 04:59:18

摘要: 使用场景 用户常需要对视频直播的内容进行分析。例如,需要对直播中的某一帧的内容作为封面图片或者对于直播内容进行鉴黄以查看内容合法性等需求。因此,视频直播提供了实时截图功能满足用户的截图需求。 截图功能介绍 截图功能配置 配置视频直播的截图功能可以通过两种方法: 通过控制台创建:详情参考 控制台配置截图。

使用场景

用户常需要对视频直播的内容进行分析。例如,需要对直播中的某一帧的内容作为封面图片或者对于直播内容进行鉴黄以查看内容合法性等需求。因此,视频直播提供了实时截图功能满足用户的截图需求。

截图功能介绍

截图功能配置

配置视频直播的截图功能可以通过两种方法:

通过控制台创建:详情参考 控制台配置截图

通过API/SDK:API/SDK提供了添加、删除、查询和更新截图配置的接口,详情分别参考 添加截图配置删除截图配置查询截图配置更新截图配置。下面提供使用Java SDK添加截图配置的示例代码。

IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou","<AccessKeyId>", "<AccessKeySecret>");
      IAcsClient client = new DefaultAcsClient(profile);
      AddLiveAppSnapshotConfigRequest addLiveAppSnapshotConfigRequest = new AddLiveAppSnapshotConfigRequest();
      addLiveAppSnapshotConfigRequest.setDomainName("<DomainName>");
      addLiveAppSnapshotConfigRequest.setAppName("<AppName>");
      addLiveAppSnapshotConfigRequest.setTimeInterval(5);
      addLiveAppSnapshotConfigRequest.setOssEndpoint("<Endpoint>");
      addLiveAppSnapshotConfigRequest.setOssBucket("<BucketName>");
      addLiveAppSnapshotConfigRequest.setOverwriteOssObject("{AppName}/{StreamName}.jpg");
      try {
          AddLiveAppSnapshotConfigResponse addLiveAppSnapshotConfigResponse = client.getAcsResponse(addLiveAppSnapshotConfigRequest);
          System.out.println(addLiveAppSnapshotConfigResponse.getRequestId());
          // todo something.
      } catch (ServerException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      } catch (ClientException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }

查看截图文件

上述截图配置完成后新发起的推流即可生成截图,查看截图的方法包括以下三种:

1.OSS控制台提供截图管理功能,详情参考 截图管理
2.API/SDK提供了查询截图信息的接口,详情参考 查询截图信息
3.在知晓截图录制地址时可以直接在该媒体Bucket的对应目录查看生成结果,请参考下图。

常见问题

直播截图是针对于推流的AppName为粒度设置的,用户可以设置某个AppName下的所有StreamName的截图规则。并且AppName支持“*”通配符,表示该截图规则是针对于该直播域名下的所有推流均生效的,截图生效需要注意推流的AppName需要与配置的AppName匹配。

与直播录制功能类似,截图功能也需要将截图结果存放在媒体Bucket中。因此,截图功能也需要开通OSS服务,并且在媒体Bucket中设置输入媒体Bucket,详情参考 媒体Bucket的增删改操作

配置截图功能时,ObjectName可以定义为覆盖和非覆盖两种类型,其中覆盖是按照截图频率每次新生成的截图将覆盖之前生成的截图文件,因此仅会得到一张截图文件;而不覆盖则是每次新产生的截图将不覆盖之前生成的截图文件,各截图文件使用{Sequence}区分,{Sequence}将通过1,2,……,n的方式表示。

使用API/SDK配置截图配置是需要输入OSS的Endpoint,OSS的Endpoint为不包括Bucket名称的OSS访问地址,详情参考 OSS Endpoint设置,并且这里请不要加http:// 或者 https:// 协议头。
使用API/SDK配置截图时OverwriteOssObject参数和SequenceOssObject参数必须二者选一进行配置,暂时没有默认值设置。

0.1元开启直播之旅

开年采购季,为了让更多用户能够体验和享受到视频直播云服务的便利,视频产品推出了0.1元体验包,配置清单如下:

点击了解活动详情

阅读更多干货好文,请关注扫描以下二维码:

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!