直播截图提供实时截图功能,满足您在观看直播同时的截图需求。本文详细为您介绍视频直播截图功能。
前提条件
视频直播截图功能需要将截图文件存放在Bucket中,因此需要开通OSS服务并且拥有至少一个Bucket用于存储这些截图文件。更多详情,请参见开通OSS服务和创建存储空间。
重要
Bucket必须与播流域名的直播中心同地域,不支持跨地域截图。
直播截图规则
直播截图是针对推流的
AppName
为粒度设置的。您可以设置某个AppName
下所有推流的截图规则。说明如果设置
AppName
为星号(*),则表示截图规则适用于该直播域名下的所有推流。直播截图功能配置时,可以定义覆盖截图和实时截图两种类型。
覆盖截图是每次新生成截图覆盖之前生成的截图文件。
实时截图是每次新生成的截图不覆盖之前生成的截图文件,截图递增存储。
目前直播截图仅支持生成JPG格式。
说明两种类型可同时设置,且必须设置其中之一。
直播截图功能介绍
说明
新配置的截图模板对正在进行的直播流不生效,需要重新推流才生效。
视频截图功能配置
配置视频直播截图功能可以通过以下两种方法:
通过控制台配置。具体操作,请参见配置截图。
//需要将<>内容替换成实际使用的值
DefaultProfile profile = DefaultProfile.getProfile("<regionId>", "<ALIBABA_CLOUD_ACCESS_KEY_ID>", "<ALIBABA_CLOUD_ACCESS_KEY_SECRET>");
IAcsClient client = new DefaultAcsClient(profile);
AddLiveAppSnapshotConfigRequest addLiveAppSnapshotConfigRequest = new AddLiveAppSnapshotConfigRequest();
addLiveAppSnapshotConfigRequest.setDomainName("<DomainName>");
addLiveAppSnapshotConfigRequest.setAppName("<AppName>");
//截图周期,取值(5-3600)
addLiveAppSnapshotConfigRequest.setTimeInterval(5);
addLiveAppSnapshotConfigRequest.setOssEndpoint("<Endpoint>");
addLiveAppSnapshotConfigRequest.setOssBucket("<BucketName>");
//定义覆盖截图存储文件名(小于256 Byte,支持变量匹配,包含{AppName}、{StreamName})
addLiveAppSnapshotConfigRequest.setOverwriteOssObject("<{AppName}/{StreamName}.jpg>");
//定义实时截图存储文件名(小于256 Byte,支持变量匹配,包含{AppName}、{StreamName}、{UnixTimestamp}、{Sequence},其中 {UnixTimestamp}、{Sequence} 必填一个)
addLiveAppSnapshotConfigRequest.setSequenceOssObject("<{AppName}/{StreamName}/{UnixTimestamp}.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();
}
说明
使用Java SDK,具体请参见Java SDK使用说明。
文档内容是否对您有帮助?