如果轉碼失敗,可能是因為源檔案本身問題導致,例如:視頻流缺失、metadata存在問題、幀錯誤、視頻頭部資訊缺失等。通過閱讀本文,您可以瞭解轉碼異常、轉碼格式支援及其他常見問題及對應解決方案。
轉碼異常問題
使用SubmitJobs API提交轉碼作業,轉碼失敗後如何排查?
確認轉碼源檔案能否在本地正常播放(非常重要),經統計大部分轉碼失敗是因為源檔案本身有問題(如:視頻流缺失、metadata存在問題、幀錯誤、視頻頭部資訊缺失等),會觸發轉碼效率監控,導致轉碼退出。
使用
ffprobe -show_streams -show_format -of json -i [filePath]命令檢查檔案meta資訊,是否有moov缺失、流異常等問題。使用
ffprobe -show_packets -i [filePath]命令查看資料碼流是否有問題,碼流時間長度與metadata時間長度是否一致。說明metadata中的時間長度與實際持續的碼流時間長度不一致可能導致轉碼失敗,對於metadata有問題的檔案,建議您先本地使用ffmpeg工具處理,再進行上傳轉碼。
協議不支援。
在錯誤碼錶中找到對應的錯誤碼,分析具體失敗原因。
如果您添加的文本浮水印中包含特殊字元,可能會導致浮水印輸出截斷或失敗,需要在輸入前對特殊字元進行轉義,或提交工单聯絡阿里雲客服進行相容處理。
加密轉碼失敗常見錯誤原因如下:
自訂密鑰
加密的清除金鑰必須使用GenerateDataKey產生,不能使用自訂字串產生加密金鑰,否則加密轉碼失敗。
加密失敗
標準加密轉碼失敗或沒有任何加密檔案產生,請確認GenerateDataKey產生的密鑰類型是否為AES_128密鑰,否則加密轉碼會失敗導致不會產生任何加密檔案。
解密失敗
標準加密檔案解密播放失敗,請確認是解密介面應該將KMS產生的清除金鑰再次base64decode之後給播放器解密播放,不然解密播放會失敗。
重複產生
標準加密轉碼觸發都是由使用者主動觸發,如果重複產生加密檔案,請確認是否重複調用 提交轉碼作業介面。
轉碼狀態一直顯示已提交,沒有更新。
已提交狀態說明轉碼任務正在準備中(視頻下載、視頻分析等),單視頻過大、位元速率、模板設定等都可能導致轉碼緩慢,請耐心等待。
源視頻有兩個音頻流,轉碼完成後只剩下一個音頻流怎麼解決?
提交轉碼作業時,將參與轉碼的音頻流設定為0,即在Output參數中添加音頻流配置"AudioStreamMap":"0:a:0"。
轉碼之後,視頻的寬高為什麼和設定的不一樣?
在轉碼模板中,可以設定橫豎屏自適應(LongShortMode)。如果開啟了橫豎屏自適應,則只需設定寬或高其中的一個,另一個留空(不設定)即可。如果想要輸出指定的解析度,則需要關閉橫豎屏自適應。例如:您需要輸出豎屏視頻,就設定轉碼模板的寬度,即短邊;如果您需要輸出橫屏,就設定轉碼模板的高度,即長邊。
mp4轉碼後的m3u8檔案播放黑屏,應該如何排查?
請先檢查您的源檔案視頻流是否正常。如果源檔案第一個ts沒有視頻流資料,會導致播放器認為沒有畫面。如果出現這種情況,可以先將源檔案先進行一次mp4轉碼,再進行m3u8轉碼,即可正常播放。
視頻轉碼成功後,播放失敗,是什麼原因導致的?
播放失敗可能是因為HTTPS認證到期或配置錯誤,只能使用HTTP協議進行播放。
源檔案為HDR,轉SDR後過曝或亮度過暗?
亮度過曝是因為模板未配置自適應導致的,請提交工单聯絡阿里雲客服後台配置自適應;過暗時由於非HDR源檔案使用了HDR模板轉碼導致的,需要在轉碼前識別源檔案是否為HDR檔案,再確定要不要進行SDR轉碼。
ApsaraVideo for Media Processing能判斷moov box位置嗎?沒有moov的檔案怎麼辦?
轉碼後預設會將moov box放置在mp4檔案頭部,不支援自訂配置。沒有moov的檔案暫時無法處理,會導致轉碼失敗。
視頻轉為音頻後時間長度與源視頻不一致?
當前MPS轉碼邏輯為了保證時間長度的一致性,會根據輸入檔案中音頻流時間長度最短的來計時轉碼。如果源檔案中部分切片時間戳記不連續,會導致無法擷取視頻流的媒體資訊,影響對於轉碼時間長度的估計,產生時間長度偏差的問題。
轉碼時設定的音頻碼率未生效?
如果轉碼前後的音頻編碼器一致且轉碼後的音頻碼率大於轉碼前的音頻碼率,音頻碼率將會被重設,設定的音頻碼率不會生效。更多參數資訊,請參見提交轉碼作業。
當API返回資料為空白時,應該怎麼辦?
如果遇到返回資料為空白或資源不存在的問題,請檢查您的UID、請求地區、資源ID是否正確。
為什麼我的作業一直失敗?
作業失敗有多種原因,請留意返回錯誤資訊。如果您收到預先處理失敗的錯誤,說明我們無法解碼您的源檔案。
基礎問題
什麼是轉碼資源?
轉碼資源是ApsaraVideo for Media Processing執行轉碼作業的計算節點,一個轉碼資源同一時間可執行一個轉碼作業。目前推出的是共用型轉碼資源。媒體轉碼為每個使用者佈建了共用型轉碼資源的配額,使用者最多能同時處理的作業數量不超過該限額。在系統繁忙時,能同時處理的作業數量可能小於共用型轉碼資源限額。
什麼是轉碼預置模板?
預置模板是一種內建轉碼模板,其中包含您希望媒體轉碼在轉碼過程中應用的各種設定,例如轉碼輸出檔案的格式、解析度和轉碼器。ApsaraVideo for Media Processing會智能分析視頻特徵,推薦該視頻適配各種播放終端及網路頻寬條件的預置碼模板。您建立作業時,可以指定推薦使用的預置模板。在提交轉碼作業時,若指定不在推薦範圍內的預置模板則會返回錯誤。請參見預置模板詳情。
如果你們提供的轉碼預置模板都不適合,我該怎麼辦?
您可以建立您自己的自訂轉碼模板。要瞭解有關自訂轉碼模板的更多資訊,請參見自訂轉碼模板。
如何將我的媒體檔案上傳到OSS?
您可以通過ApsaraVideo for Media Processing控制台或OSS控制台進行檔案上傳。詳細操作,請參見上傳視頻 。
ApsaraVideo for Media Processing能處理多大的媒體檔案?
ApsaraVideo for Media Processing支援不超過100 GB的輸入檔案。如果您需要處理更大的媒體檔案,請提交工单聯絡我們。
是否可以使用CDN來分發媒體檔案?
我們推薦使用阿里雲CDN服務來分發您的內容,您可以將儲存轉碼輸出內容的OSS Bucket作為阿里雲CDN的原站,縮短使用者查看媒體檔案的延遲,提高使用者訪問的響應速度,解決網路頻寬小、使用者訪問量大、網點分布不均等問題。更多資訊,請參見CDN產品詳情頁面。具體操作,請參見配置加速網域名稱。
一個轉碼作業需要多長時間才能完成?
許多因素都會影響到轉碼速度,例如輸入檔案時間長度、解析度以及位元速率、轉碼模板設定等。一般的作業時間長度為輸入檔案時間長度的0.5倍到2倍之間。如果收到大量作業,它們將被排序處理。
能否即時查詢轉碼進度?
目前不提供即時查詢轉碼進度的介面,您可根據轉碼進度百分比判斷轉碼進度。
轉碼進度0%:說明轉碼任務在準備中(視頻下載、視頻分析等)。
轉碼進度20%:說明已經開始執行轉碼,請您耐心等待。
轉碼進度100%:說明轉碼任務已完成。
ApsaraVideo for Media Processing的輸入和輸出檔案是一一對應的嗎?能否為一個作業建立多個輸出?
每一個轉碼作業都對應一個輸入檔案、一個轉碼模板和一個轉碼輸出檔案。媒體轉碼支援一次提交多個輸出,系統會為每個輸出建立一個作業。
ApsaraVideo for Media Processing可以同時處理幾個作業?
每個使用者都有預設的轉碼資源限制,轉碼資源分派給管道使用,各管道相互獨立。每個管道同時處理的作業數量最多不超過分配給該管道的資源限額。詳細說明請參見使用限制。
什麼是轉碼資源?
轉碼資源是ApsaraVideo for Media Processing執行轉碼作業的計算節點,一個轉碼資源同一時間可執行一個轉碼作業。目前推出的是共用型轉碼資源。媒體轉碼為每個使用者佈建了共用型轉碼資源的配額,使用者最多能同時處理的作業數量不超過該限額。在系統繁忙時,能同時處理的作業數量可能小於共用型轉碼資源限額。
什麼是轉碼預置模板?
預置模板是一種內建轉碼模板,其中包含您希望媒體轉碼在轉碼過程中應用的各種設定,例如轉碼輸出檔案的格式、解析度和轉碼器。ApsaraVideo for Media Processing會智能分析視頻特徵,推薦該視頻適配各種播放終端及網路頻寬條件的預置碼模板。您建立作業時,可以指定推薦使用的預置模板。在提交轉碼作業時,若指定不在推薦範圍內的預置模板則會返回錯誤。請參見預置模板詳情。
如果你們提供的轉碼預置模板都不適合,我該怎麼辦?
您可以建立您自己的自訂轉碼模板。要瞭解有關自訂轉碼模板的更多資訊,請參見自訂轉碼模板。
是否可以提供為我專用的轉碼器?
ApsaraVideo for Media Processing不支援轉碼器定製和獨佔服務。
是否支援即時編碼?
ApsaraVideo for Media Processing目前是基於檔案的轉碼服務,暫不支援即時轉碼。
ApsaraVideo for Media Processing支援在哪些地區使用?
詳細資料,請參見服務地區。
ApsaraVideo for Media Processing建立訊息主題出現“Only one topic can be created!”錯誤。
目前ApsaraVideo for Media Processing每個使用者只能開一個管道,無法建立多管道,所以會出現Only one topic can be created!這個錯誤。開啟管道或添加管道,請參見建立管道。
ApsaraVideo for Media Processing服務中AliyunAudioCodec中Profile欄位的說明。
ApsaraVideo for Media Processing中的音頻編解碼配置類型中支援以下五種Profile:
aac_low
aac_he
aac_he_v2
aac_ld
aac_eld
格式支援
ApsaraVideo for Media Processing支援的輸入格式
容器格式
3GP、AVI、FLV、MP4、M3U8、MPG、ASF、WMV、MKV、MOV、TS、WebM等。
視頻編碼格式
H.264/AVC、H.263、 H.263+、MPEG-1、MPEG-2、MPEG-4、MJPEG、VP8、VP9、Quicktime、RealVideo、Windows Media Video等。
音頻編碼格式
AAC、AC-3、ADPCM、AMR、DSD、MP1、MP2、MP3、PCM、RealAudio、Windows Media Audio
ApsaraVideo for Media Processing支援的輸出格式
我們建議為P裝置輸出FLV 檔案,為Android裝置輸出MP4檔案,為IOS裝置輸出TS(M3U8)檔案。視頻編碼格式預設為H.264/AVC,音頻編碼格式預設為AAC。
ApsaraVideo for Media Processing格式支援詳細列表
媒體轉碼支援格式的完整列表,請參見格式支援。
建立MP4檔案時,是否支援邊播邊下?
我們將MP3的MOOV原子定位於檔案的開頭,從而使您的播放器能夠立即開始播放,無需等到整個檔案下載完成。
ApsaraVideo for Media Processing是否支援立體聲格式?
從ApsaraVideo for Media Processing輸出的已轉碼音頻支援雙通道AAC、MP3格式。
安全性
我的媒體檔案是否安全?
所有的媒體資源都儲存於您自己的OSS Bucket中。您可以通過RAM來授予ApsaraVideo for Media Processing轉碼訪問您特定Bucket中指定的檔案。
是否支援加密媒體檔案?
ApsaraVideo for Media Processing服務暫不支援加密的輸入檔案。