全部產品
Search
文件中心

ApsaraVideo Media Processing:截圖常見問題

更新時間:Jun 30, 2024

本文說明了截圖中的常見問題和對應的解決方案。

截圖失敗常見報錯

截圖任務錯誤碼主要包含SnapshotTimeOut、InvalidParameter.ResourceNotFound、InvalidParameter.ResourceContentBad。錯誤碼擷取方式提交截圖任務失敗可以通過查詢截圖任務介面來擷取失敗原因,詳情請參見查詢截圖作業

SnapshotTimeOut

同步截圖任務逾時。目前同步截圖作業會在5s內返回,如果輸入檔案過大可能會逾時。當逾時頻繁,建議採用非同步方式截圖。

InvalidParameter.ResourceNotFound

找不到輸入檔案,導致提交不成功或截圖任務失敗。請根據以下原因進行排查:

原因

解決方案

輸入檔案在提交任務時還沒有完成上傳,或已經被刪除。

請確保檔案已經上傳後再嘗試提交任務。

輸入檔案的OSS路徑拼字錯誤。

請檢查拼字。

輸入檔案的OSS路徑未經過URL Encoding正確轉換。

請參考URL Encoding說明設定。

輸入檔案的OSS Bucket與MPS服務不在同一地區。

請更換地區。

輸入檔案的OSS儲存類型為冷歸檔存深度冷Archive Storage

冷存資料需要先解凍取回後才可被訪問處理。

輸入檔案的OSS儲存類型為Archive Storage,且未開啟資料直讀或解凍取回。

Archive Storage需要開啟OSS資料直讀或先解凍取回才可被訪問處理。

輸入檔案的OSS Bucket開啟了防盜鏈。

工作流程自動觸發需要在輸入媒體Bucket上配置referer,其他提交方式需要在input增加Referer參數。

InvalidParameter.ResourceContentBad

參數設定衝突或者輸入檔案已損壞,導致提交不成功或截圖任務失敗。請根據以下步驟進行排查:

  1. 請先確認輸入檔案是否正常。

  2. 請檢查截圖參數是否配置正確,特別注意截圖時間點Time,主要畫面格IFrameType、Output等資訊。

  3. 如上述方法無法解決問題,請您提供地區+RequestId聯絡阿里雲排查。

提交M3U8檔案同步截圖失敗

M3U8檔案同步截圖必須保證M3U8索引中的TS路徑與M3U8在相同的路徑下,非同步無要求。

提交單張截圖失敗,指定時間超過視頻時間長度

錯誤碼:InvalidParameter.ResourceContentBad

錯誤描述:The resource operated InputFile is bad

原因

解決方案

提交單張截圖任務,截取普通幀,設定time大於視頻時間長度,因為視頻太短,所以截不到圖片,任務失敗。

修改time為小於視頻時間長度的值。或者改為截取主要畫面格(FrameType=intra),當time超過視頻時間長度時,會返回時間點附近最近的主要畫面格圖片。

提交任務不成功,提示OutputFile Object參數問題

錯誤碼:InvalidParameter.ResourceContentBad

錯誤描述:The format of parameter "SnapshotConfig:OutputFile:Object" is invalid

原因

解決方案

提交多張截圖任務(Num>1),但OutputFile的Object未添加{Count}預留位置。參數設定錯誤導致提交不成功。

需要將OutputFile的Object中添加{Count},避免多張截圖路徑相同而被覆蓋。

提交WebVTT任務,將Format設定為vtt,但OutputFile的Object尾碼沒有設定為.vtt。參數設定錯誤導致提交不成功。

需要將OutputFile的Object尾碼設定為.vtt,請檢查參數配置。

提交任務不成功,提示TileOutputFile Object參數問題

錯誤碼:InvalidParameter.ResourceContentBad

錯誤描述:The format of parameter "SnapshotConfig:TileOutputFile:Object" is invalid

原因

解決方案

提交雪碧圖任務,但TileOutputFile的Object未添加{TileCount}預留位置。參數設定錯誤導致提交不成功。

需要將TileOutputFile的Object中添加{TileCount},避免多張雪碧圖路徑相同而被覆蓋。

截圖設定疑問

提交截圖任務如何區分同步非同步

只要在SnapshotConfig中指定了Interval和Num的任何一個參數,則表示使用非同步模式。跟是否設定了piplineId無關。

截圖設定時間點超過了視頻時間長度會如何

  • 單張截圖,設定time大於視頻時間長度:

    • 普通幀截圖:任務失敗。"InvalidParameter.ResourceContentBad",The resource operated InputFile is bad

    • 主要畫面格截圖:任務成功。返回時間點附近最近的主要畫面格圖片

  • 多張截圖,設定Time+Interval*Num>視頻時間長度,任務成功。視頻時間長度內,正常截圖。截取點超過視頻時間長度的,不截圖。截圖完成時返回實際截取的個數

截圖結果與預期不符

截圖數量與設定不一致

請根據以下原因進行排查:

原因

解決方案

需要產生雪碧圖,但雪碧圖路徑與單張圖片的輸出路徑使用同一bucket的同名路徑,導致圖片路徑覆蓋。

OutputFile和TileOutputFile請使用不同bucket或區分路徑命名。

使用了採樣截圖,指定了截圖數量和間隔時間長度。但因為視頻較短,導致截取數量不夠。

結果正常,無需解決。

截取單張圖片時開啟了首幀黑屏檢測。但因為首幀是黑屏被過濾,導致沒截到圖片。

如果業務需要單張截圖不過濾黑幀,可以通過調整黑屏閾值(BlackLevel、PixelBlackThreshold)來實現。

設定了截取主要畫面格(即I幀,FrameType=intra)。但因為:

  • 原視頻的I幀數小於需要截取的I幀數,導致截取數量不夠。

  • 原視頻的GOP不固定(即I幀分布不均勻)。在使用平均截圖時,截圖時間間隔=視頻總時間長度/截取數量,如果I幀並非均勻分布,可能某個間隔中有兩個I幀,某個間隔中沒有I幀,導致截取數量不夠。

  • 截圖時間附近找不到相應主要畫面格圖片,則不返回相應時間點對應的圖片,導致截取數量不夠。

如果要精確時間點截圖,請改為普通幀(FrameType=normal)。

截圖時間點與設定不一致

原因

解決方案

設定了截取主要畫面格(即I幀,FrameType=intra)。視頻中主要畫面格是間隔一段時間才會出現,所以截圖時間點不精確,會在設定的時間點附近尋找相應的主要畫面格。

如果要精確時間點截圖,請改為普通幀(FrameType=normal)。

截圖模糊

原因

解決方案

設定了截取普通幀(即P幀,FrameType=normal)。普通幀的畫質不如主要畫面格。

如果對畫質有要求,請改為主要畫面格(FrameType=intra)。

截圖變形、比例與設定不一致

請根據以下原因進行排查:

原因

解決方案

同時設定了截圖的寬Width、高Height,但與視頻比例不同,導致圖片變形。

建議只設定單邊,另一邊會按照視頻的解析度保持比例不變,避免映像變形。

需要產生雪碧圖,同時設定了Cellwidth、Cellheight但與圖片比例不同,導致雪碧圖中的小圖變形。

建議只設定單邊,另一邊會按照視頻的解析度保持比例不變,避免映像變形。

輸入視頻的dar/sar特性相容問題。

請您提供uid+地區+jobid聯絡阿里雲排查。

截圖旋轉,輸入豎屏視頻但截圖是橫屏

輸入的MP4豎屏視頻帶有旋轉標識,所以輸出截圖是橫屏映像。常見於行動裝置拍攝的視頻。

如何判斷視頻是否帶有旋轉標識:

請調用SubmitMediaInfoJob - 提交媒體資訊作業,查看VideoStream的Rotate資訊,當rotation取值為-90、90時,代表視頻會向左向右旋狀90度,從而導致橫豎方向改變。

同步截圖任務未產生雪碧圖或vtt檔案

提交同步單張截圖任務時設定了雪碧圖、vtt參數。同步截圖僅能截一張圖片,不支援輸出雪碧圖或vtt。請使用非同步任務。