視頻截圖是截取視頻中特定位置的映像,然後儲存為圖片檔案。

類型

  • 主要畫面格

    因為視頻編碼的特點,主要畫面格映像的優勢是畫質好,執行速度快。由於視頻中主要畫面格是間隔一段時間才會出現,所以劣勢是時間點不太精確,會在設定的時間點附近尋找相應的主要畫面格。

  • 普通幀

    和主要畫面格相反,畫質稍差,執行速度較慢。優點是可以根據設定的時間點精確截取映像。

參數說明

在輸入檔案時,您需要關注以下參數:

Input

設定需要截圖的視頻OSS輸入檔案。
说明 OSS的Location必須和ApsaraVideo for Media Processing服務的地區對應。例如,OSS的oss-cn-hangzhou對應ApsaraVideo for Media Processing的cn-hangzhou。

截圖配置(SnapshotConfig) 中,需要關注以下參數:

  • OutputFile

    設定截圖的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的規則來命名。

截圖-Java

截圖-Python

截圖-PHP