前提條件 ApsaraVideo for Live截圖功能需要將截圖檔案存放在Bucket中,因此需要開通OSS服務並且擁有至少一個Bucket用於儲存這些截圖檔案。更多詳情,請參見開通OSS服務 和建立儲存空間 。
重要
Bucket必須與播流網域名稱的直播中心同地區,不支援跨地區截圖。
直播截圖功能介紹 說明
新配置的截圖模板對進行中的直播流不生效,需要重新推流才生效。
視頻截圖功能配置 配置ApsaraVideo for Live截圖功能可以通過以下兩種方法:
登入ApsaraVideo for Live控制台 。 在左側導覽列選擇功能管理>直播截圖 ,進入直播截圖 頁面,選擇截圖配置 頁簽。
選擇待配置的播流網域名稱。
單擊添加 。
配置截圖模板。
截圖模板參數及說明如下表所示。
參數
描述
AppName
視頻的應用程式名稱,輸入的AppName 必須與直播推流的AppName 保持一致,方可生效。如果您想要進行網域名稱層級截圖配置,輸入星號(*)即可。
截圖頻率
截圖頻率,單位:秒,取值範圍:5~3600。
儲存位置
選擇截圖檔案在OSS上的儲存位置。
OSS Bucket必須與播流網域名稱的直播中心同地區,不支援跨地區截圖。
儲存方式
儲存方式分兩種類型,支援複選。
說明
配置完成後該網域名稱下所有AppName (設定好的AppName),都會按照設定好的模板配置進行截圖並儲存。
截圖設定修改後,會在下次推流後生效。
單擊確定 。
Java
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>" );
addLiveAppSnapshotConfigRequest.setTimeInterval(5 );
addLiveAppSnapshotConfigRequest.setOssEndpoint("<Endpoint>" );
addLiveAppSnapshotConfigRequest.setOssBucket("<BucketName>" );
addLiveAppSnapshotConfigRequest.setOverwriteOssObject("<{AppName}/{StreamName}.jpg>" );
addLiveAppSnapshotConfigRequest.setSequenceOssObject("<{AppName}/{StreamName}/{UnixTimestamp}.jpg>" );
try {
AddLiveAppSnapshotConfigResponse addLiveAppSnapshotConfigResponse = client.getAcsResponse(addLiveAppSnapshotConfigRequest);
System.out.println(addLiveAppSnapshotConfigResponse.getRequestId());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
說明
配置成功後,重新推流將會產生截圖檔案。截圖檔案將會儲存至OSS的<BucketName>中,由於同時配置了覆蓋截圖 和即時截圖 檔案路徑,將會同時產生覆蓋截圖檔案和即時截圖檔案。覆蓋截圖檔案儲存路徑為<{AppName}/{StreamName}.jpg>。即時截圖檔案儲存路徑為<{AppName}/{StreamName}/{UnixTimestamp}.jpg>。
若對覆蓋截圖和即時截圖的區別還不瞭解,請參見文檔開頭部分直播截圖規則 。
更多參數說明請參見AddLiveAppSnapshotConfig 。
截圖檔案管理 查看截圖檔案 您可以通過三種方式查看截圖檔案。
登入ApsaraVideo for Live控制台 。 在左側導覽列選擇功能管理>直播截圖 ,進入直播截圖 頁面,選擇截圖管理 。
選擇待查詢的網域名稱及時間,然後輸入或選擇AppName和StreamName。
單擊查詢 ,查看選擇時間段內的截圖。若截圖無法查看,請確定OSS Bucket讀寫權限是否為公用讀取 ,具體操作,請參見配置OSS bucket讀寫權限 。
將滑鼠移動到某一圖片上方,可以查看大圖或複製截圖的流地址。
重要
目前只支援查詢一年內 其中某一天(EndTime和StartTime之間的間隔不能超過1天)的截圖檔案。
截圖類型配置為覆蓋截圖+ 即時截圖的情況下,只能查詢出即時截圖的檔案內容。若在此情況下要查看覆蓋截圖的截圖檔案,請在OSS中查看,詳情可參見OSS列舉檔案 。
介面暫不支援分頁,且一次最多返回100條資料(預設返回10條資料)。
更多查詢截圖檔案內容介面說明,請參見DescribeLiveStreamSnapshotInfo 。
在配置截圖功能時,您已指定了截圖檔案在OSS中的儲存地址。如果需要在OSS中查看截圖檔案,可參見OSS列舉檔案 。
刪除截圖檔案
ApsaraVideo for Live儲存的是截圖檔案資訊 ,如AppName,StreamName,OSS檔案儲存路徑等,檔案 是儲存在OSS中。如果在刪除截圖時需要同步刪除儲存在OSS中的檔案,則需要建立服務角色AliyunMTSVideoLifecycleRole,並精確授權 AliyunMTSVideoLifecycleRolePolicy系統策略。
在直播控制台刪除截圖或錄製檔案時需要先進行授權,您需要按照如下步驟在RAM控制台建立並授權RAM角色後,再登入直播控制台刪除截圖或錄製檔案。
建立普通服務角色 使用Resource Access Management員登入RAM控制台 。
在左側導覽列,選擇。
在角色 頁面,單擊建立角色 。
在建立角色 頁面,選擇信任主體類型 為雲端服務 ,然後選擇具體的阿里雲服務,最後單擊確定 。
說明
信任主體名稱 下拉框中請選擇“ApsaraVideo for Media Processing”。
在彈出的建立角色 對話方塊,角色名稱 欄中輸入“AliyunMTSVideoLifecycleRole”作為角色名稱,然後單擊確定 。
角色建立成功後,在角色基本資料 頁面下選擇許可權管理 頁簽。
點擊精準授權 ,請按照以下參數配置:
配置完成後,單擊確定 。
您可以通過三種方式刪除截圖檔案:
登入ApsaraVideo for Live控制台 。 在左側導覽列選擇功能管理>直播截圖 ,進入直播截圖 頁面,選擇截圖管理 。
選擇待查詢的網域名稱及時間,然後輸入或選擇AppName和StreamName。
將滑鼠移動到某一圖片上方,單擊刪除按鈕可進行單張刪除。
勾選多張截圖後單擊大量刪除 ,可大量刪除截圖。最多可支援大量刪除200張截圖。
以上樣本實現了對截圖檔案的刪除(同時刪除了儲存在OSS中的檔案)。
您可以為截圖功能設定回調事件,擷取回調參數將截圖資訊儲存至您自己的業務系統(同時儲存時間戳記),在需要刪除檔案時,您就可以根據您系統的策略(如通過定時任務每天定時刪除N個月以前的截圖檔案)查詢出截圖檔案時間戳記對截圖檔案進行刪除。若想瞭解截圖回調,可參見直播截圖回調 開發指南。
一般情況下,不建議您直接刪除儲存在OSS中的截圖檔案。如果需要刪除儲存在OSS中的截圖檔案,可以通過ApsaraVideo for Live刪除截圖檔案時同步刪除儲存在OSS中的檔案。如果您因為業務需求需要直接刪除儲存在OSS中的截圖檔案,可參考文檔OSS刪除檔案 。