點播轉碼相關常見問題及排查方式

概述:
點播轉碼目前涉及用戶上傳自動觸發轉碼、通過SubmitTranscodeJobs接口觸發轉碼等方式,會出現用戶轉碼失敗的情況,這當中有用戶源片的問題、也有用戶設置轉碼參數的原因以及相關資源性數據授權限制問題導致,本文主要提供點播轉碼常見的問題排查及處理方式。

HLS標準加密問題排查
SubmitTranscodeJobs接口錯誤提示:
KeyNotFound:出現這種錯誤提示一般都是使用的加密Service Key 和視頻不在同一個區域,例如:華東2的視頻,必須使用華東2的KMS生成祕鑰。
NoSuchResource:出現這種錯誤通常代表用戶的某種的資源缺失,可以結合message進行排查,如下所示:
1、"can not find cross service token" :表示用戶沒有通過RAM授權點播操作用戶的KMS導致,需要用戶先授權。
2、"can not find customer encrypt master key":表示在用戶對應區域的KMS中沒有拿到響應的加密Service key,可以在神農鼎生成對應區域的Service Key。
3、"can not find customer encrypt info":表示用戶傳遞的密文祕鑰不是使用KMS生成或者祕鑰生成和視頻存儲不在同一個區域,需要用戶在視頻相應區域生成加密祕鑰。
4、"can not find customer plaintext":表示用戶生成的祕鑰解密不到明文祕鑰,需要用戶使用GenerateDataKey生成加密祕鑰。
5、"The specified resource Template does not exist":表示視頻對應區域的轉碼模板數據不存在,這種問題通常是模板添加或者更新接口異常導致,可以聯繫點播後臺進行數據訂正。

其他常見問題:
文件未加密:生成的文件未加密,一般都是由於轉碼模板在設置的時候沒有選擇HLS加密選項(標準加密、私有加密必須要勾選)
加密轉碼失敗:視頻標準加密失敗,一般都是由於用戶在調用GenerateDataKey生成的祕鑰是非AES_128位的,或者祕鑰使用自定義字符串生成
解密失敗:通常HLS標準加密成功,說明祕鑰是沒問題的,那麼解密失敗通常是由於解密接口直接將名稱祕鑰返回,實際應該是將名稱祕鑰進行base64decode解碼之後返回
MtsHlsUriToken參數重寫失效:可能存在以下兩點問題
1、對應的域名沒有開通CDN的MtsHlsUriToken參數重寫功能,需要到CDN神農鼎設置。
2、域名開啓了鑑權,MtsHlsUriToken參數重寫和鑑權功能是互斥的。

轉碼失敗問題排查:
轉封裝(原畫)失敗:通常都是由於格式支持問題導致,例如:wmv、rmvb等格式不支持裝封裝成mp4;mpeg4不能轉封裝成m3u8
條件轉碼導致轉碼失敗:查看用戶是否開啓對應的條件轉碼,如果開啓則表模板設置的分辨率、碼率是否大於源片的分辨率或者碼率,如果大於則模板設置是按照源片轉碼還是不轉碼,不轉碼則會以失敗的結果返回,這種是正常的轉碼處理步驟,可建議用戶修改條件轉碼閾值或者移除條件轉碼限制。
視頻轉碼失敗原因及排查步驟:
1、查看源片文件大小是否爲0,這種視頻通常是沒有上傳成功但是OSS錯誤的通知底層觸發轉碼導致。
2、點播神農鼎查看源片地址看是否可以播放,不可播放通常轉碼都會失敗,說明源片存在問題
3、使用ffprobe -show_streams -print_format json -i "文件地址"查看源片是否存在多個音頻流,目前轉碼還不能處理多音軌源片
4、使用ffprobe -show_streams -print_format json -i "文件地址" 或者ffprobe -show_frames -print_format -i "文件地址" 查看文件的音視頻流、幀信息,如果存在紅色異常提示,基本上可以確定源片封裝參數存在問題,例如:源片的NAL數據問題

點播轉碼相關常見問題及排查方式

源片流數據有問題
點播轉碼相關常見問題及排查方式
源片的音視頻Codec封裝異常:Codec 爲data或者binary類型

轉碼成功但文件異常:
轉碼視頻變形:原因是用戶設置轉碼模板同時設置了寬和高,這樣會導致源片的畫面比例如果和設置的寬高比例不一致,就發生了形變,解決辦法是隻設置寬或者高,保持另一邊按照源片的畫面比例等比輸出。
視頻轉碼後時間變長:這種視頻一般都是由於源片的pkt_pts_time顯示時間過大導致,可以通過ffprobe -show_frames -print_format json -i "源文件地址"查看pkt_pts_time是否異常,一般都是大於源片的真實時長,正常的pkt_pts_time是均勻遞增,最大爲視頻總時長。
視頻轉封裝成m3u8的ts分片大小差別大:一般都是源片的關鍵幀分佈不均勻導致的,可以通過查看ffprobe -show_frames -print_format json -i "源文件地址"命令查看幀信息,看key_frame=1的幀信息中pakt_pts_time是否均勻遞增,如果非均勻一般會導致轉封裝ts切片不均勻。
直播轉點播有音頻無畫面:一般都是用戶側推流的前面幾個ts分片全是音頻無視頻畫面導致,而底層轉碼只會抓取前面幾個ts分片的編碼信息,如果前面幾個ts分片無視頻流,則轉碼器只會讀取音頻流,從而導致整個視頻輸出無畫面。
其他
轉碼任務卡住,一直處於轉碼中:通常發生在直播轉點播錄製的視頻,這種視頻限於推流端配置的問題,導致pts_time非均勻增加,而是跳變,這種情況會導致底層轉碼ffmpeg卡住,無任何轉碼結果返回,這種視頻通常建議用戶排查推流端設置問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章