視頻截圖是截取視頻中特定位置的映像,然後儲存為圖片檔案。
類型
-
主要畫面格
因為視頻編碼的特點,主要畫面格映像的優勢是畫質好,執行速度快。由於視頻中主要畫面格是間隔一段時間才會出現,所以劣勢是時間點不太精確,會在設定的時間點附近尋找相應的主要畫面格。
-
普通幀
和主要畫面格相反,畫質稍差,執行速度較慢。優點是可以根據設定的時間點精確截取映像。
參數說明
在輸入檔案時,您需要關注以下參數:
在 截圖配置(SnapshotConfig) 中,需要關注以下參數:
-
設定截圖的OSS輸出檔案。OSS的Object除了設定為固定的檔案名稱外,還支援按照一些規則自訂檔案名稱,參見 截圖Output詳情。
-
Time
設定單幀截圖的時間點,也是多幀截圖的開始時間點。整數類型,單位:毫秒。
-
Interval、Num
設定多幀截圖的間隔時間(單位:秒)和數量。分以下幾種情況:
-
不設定Num時,表示按照間隔時間,一直截取到視頻結尾。
-
Num大於1時,表示按照間隔時間,截取到指定數量的映像時就停止截圖。
-
設定Num=1時,按照非同步方式執行單幀截圖。
-
-
Width、Height
設定單幀截圖或多幀截圖輸出的圖片寬和高,單位:像素。
寬和高都是以輸入視頻為參考。
-
如果寬和高都不設定時,圖片的尺寸和視頻相同。
-
如果只設定寬(或高)時,另一邊會按照視頻的解析度保持比例不變,避免映像變形。
说明 建議您不要同時任意設定寬和高的值,以免引起映像比例失真。-
如果MP4的豎屏視頻帶有旋轉標識,截圖是橫屏映像。
-
如果MP4的豎屏視頻不帶有旋轉標識,則截圖保持豎屏映像。
-
- FrameType
設定截圖的類型:主要畫面格或普通幀。預設:主要畫面格。
- TileOutputFile、TileOut
設定雪碧拼圖的OSS輸出檔案和 配置(TileOut)。
- SubOut、Format
- 如果您需要使用webVTT格式的縮圖,設定Format=“VTT”。
- 如果webVTT格式需要以雪碧圖的方式顯示,要同時設定Format和SubOut的值。
使用情境
- 單幀截圖
設定一個明確的截圖時間點,截取對應的視頻映像。
- 多幀截圖
按照設定的間隔時間,均勻的截取對應視頻的多幀映像,每幀映像都是一個圖片檔案。也叫批量截圖、序列截圖。
- 雪碧拼圖
多幀截圖的映像以雪碧圖的方式拼成一張大圖輸出。這樣可以一次請求擷取多幀映像,降低圖片請求次數,提高用戶端效能。
- WebVTT縮圖
HTML5標準的字幕檔案格式,也被很多H5播放器作為縮圖預覽的格式,參見 JWPlayer文檔。
WebVTT只是檔案格式,縮圖可以是多張圖片,也可以是雪碧圖方式拼成的一張大圖。
執行方式
參見 作業和管道 中作業執行和結果
。
- 同步
調用API時,同步返回截圖作業Id以及截圖結果。
同步方式只支援單幀截圖的情境。
- 非同步
調用API時,僅返回截圖作業Id。截圖結果的查詢,可以使用訊息通知服務,也可以通過截圖作業Id查詢。
單幀截圖、多幀截圖、雪碧拼圖、WebVTT縮圖都支援非同步執行方式。
範例程式碼
有一個720P(1280x720)
時間長度10秒的視頻,設定截圖高度360像素,從第2秒開始,按照每1秒截取一張圖的方式,最多截取3幀。最終會輸出3張圖片,時間點分別是2、3、4秒。檔案名稱也會按照00001、00002、00003的規則來命名。