隨著互聯網視頻的迅速發展,越來越多的應用場景需要對高清長視頻進行剪輯和編輯。WebSDK支持通過預覽低清視頻的方式實現對高清長視頻進行剪輯,本文為您介紹如何使用該功能。
操作步驟
注冊高清文件至資源庫。
調用RegisterMediaInfo接口將高清視頻文件注冊至資源庫,生成高清素材MediaID。
request('RegisterMediaInfo', { InputURL: mediaUrl,// 待注冊的高清媒資地址。 MediaType: "video", }).then((res) => { setMediaId(res.data.MediaId);// 保存高清素材的MediaId,待注冊低清預覽視頻時使用。 })
生成及關聯低清預覽視頻。
生成低清預覽視頻。
調用SubmitTranscodeJob接口對高清視頻進行轉碼,生成低清預覽視頻。
request('SubmitTranscodeJob', { InputGroup: JSON.stringify([{ Type: "Media", Media: mediaId,// 高清素材的MediaId。 }]), OutputGroup: JSON.stringify([{ Output: { Type: "Media", Media: mediaId,// 高清素材的MediaId。 }, ProcessConfig: { Transcode: { TemplateId: "S00000001-200010" // 低清視頻的轉碼模板ID,按照業務實際需要填寫。 } } }]) }).then((res) => { // 接入方業務處理邏輯。 });
說明如果您的高清視頻分辨率超過1080P,或碼率超過5000 kbps,需要進行轉碼,生成低清預覽視頻。
低清預覽視頻分辨率建議為480P,格式為MP4,且會產生轉碼費用。詳情請參見轉碼。
如果您已有低清預覽視頻,則無需再調用接口生成,可以直接上傳關聯。
如果您要預覽低清視頻,必須確保轉碼任務完成。
關聯低清預覽和高清視頻。
調用RegisterMediaStream綁定低清預覽視頻和高清視頻mediaId。
request('RegisterMediaStream', { InputURL: mediaDqUrl,// 已存在的低清媒資地址。 MediaId: mediaId // 高清素材的MediaId。 }).then((res) => { // 接入方業務處理邏輯。 })
通過WebSDK指定低清預覽視頻。
將getDynamicSrc接口的mediaId參數進行透明傳輸,調用GetPlayInfo接口獲取低清預覽視頻的播放地址。
window.AliyunVideoEditor.init({ //.... useDynamicSrc: true, // 媒資庫默認情況下播放地址會過期,所以需要動態獲取。 getDynamicSrc: (mediaId) => { return request('GetPlayInfo', { MediaId: mediaId }).then((res) => { // 以下代碼主要是根據代碼的清晰的優先度選擇優先播放高清還是低清視頻,代碼僅供參考。 /*** 清晰度 ● FD:流暢 ● LD:標清 ● SD:高清 ● HD:超清 ● OD:原畫 */ const DefinitionLevels = {'FD': 0, 'LD': 1, 'SD': 2, 'HD': 3, 'OD': 4}; // 遍歷播放列表,選擇最流暢的視頻進行預覽,默認采用第一個視頻作為底線。 const PlayItem = res.data.PlayInfoList.reduce((result, item) => { if (!result) { return item; } else if (DefinitionLevels[item.Definition] < DefinitionLevels[result.Definition]) { return item; } return result; }, null); // 獲取播放地址。 return PlayItem.PlayURL; }); }, })
提交剪輯合成作業。
調用SubmitMediaProducingJob接口,傳入
Timeline
(Timeline中視頻MediaId為高清視頻ID),啟動視頻合成任務。
文檔內容是否對您有幫助?