概述:
点播转码目前涉及用户上传自动触发转码、经过SubmitTranscodeJobs接口触发转码等方式,会出现用户转码失败的状况,这当中有用户源片的问题、也有用户设置转码参数的缘由以及相关资源性数据受权限制问题致使,本文主要提供点播转码常见的问题排查及处理方式。json
HLS标准加密问题排查
SubmitTranscodeJobs接口错误提示:
- KeyNotFound:出现这种错误提示通常都是使用的加密Service Key 和视频不在同一个区域,例如:华东2的视频,必须使用华东2的KMS生成秘钥。
- NoSuchResource:出现这种错误一般表明用户的某种的资源缺失,能够结合message进行排查,以下所示:
一、"can not find cross service token" :表示用户没有经过RAM受权点播操做用户的KMS致使,须要用户先受权。
二、"can not find customer encrypt master key":表示在用户对应区域的KMS中没有拿到响应的加密Service key,能够在神农鼎生成对应区域的Service Key。
三、"can not find customer encrypt info":表示用户传递的密文秘钥不是使用KMS生成或者秘钥生成和视频存储不在同一个区域,须要用户在视频相应区域生成加密秘钥。
四、"can not find customer plaintext":表示用户生成的秘钥解密不到明文秘钥,须要用户使用GenerateDataKey生成加密秘钥。
五、"The specified resource Template does not exist":表示视频对应区域的转码模板数据不存在,这种问题一般是模板添加或者更新接口异常致使,能够联系点播后台进行数据订正。编码
其余常见问题:
- 文件未加密:生成的文件未加密,通常都是因为转码模板在设置的时候没有选择HLS加密选项(标准加密、私有加密必需要勾选)
- 加密转码失败:视频标准加密失败,通常都是因为用户在调用GenerateDataKey生成的秘钥是非AES_128位的,或者秘钥使用自定义字符串生成
- 解密失败:一般HLS标准加密成功,说明秘钥是没问题的,那么解密失败一般是因为解密接口直接将名称秘钥返回,实际应该是将名称秘钥进行base64decode解码以后返回
- MtsHlsUriToken参数重写失效:可能存在如下两点问题
一、对应的域名没有开通CDN的MtsHlsUriToken参数重写功能,须要到CDN神农鼎设置。
二、域名开启了鉴权,MtsHlsUriToken参数重写和鉴权功能是互斥的。加密
转码失败问题排查:
- 转封装(原画)失败:一般都是因为格式支持问题致使,例如:wmv、rmvb等格式不支持装封装成mp4;mpeg4不能转封装成m3u8
- 条件转码致使转码失败:查看用户是否开启对应的条件转码,若是开启则表模板设置的分辨率、码率是否大于源片的分辨率或者码率,若是大于则模板设置是按照源片转码仍是不转码,不转码则会以失败的结果返回,这种是正常的转码处理步骤,可建议用户修改条件转码阈值或者移除条件转码限制。
- 视频转码失败缘由及排查步骤:
一、查看源片文件大小是否为0,这种视频一般是没有上传成功可是OSS错误的通知底层触发转码致使。
二、点播神农鼎查看源片地址看是否能够播放,不可播放一般转码都会失败,说明源片存在问题
三、使用ffprobe -show_streams -print_format json -i "文件地址"查看源片是否存在多个音频流,目前转码还不能处理多音轨源片
四、使用ffprobe -show_streams -print_format json -i "文件地址" 或者ffprobe -show_frames -print_format -i "文件地址" 查看文件的音视频流、帧信息,若是存在红色异常提示,基本上能够肯定源片封装参数存在问题,例如:源片的NAL数据问题spa

源片流数据有问题code

源片的音视频Codec封装异常:Codec 为data或者binary类型orm
转码成功但文件异常:
- 转码视频变形:缘由是用户设置转码模板同时设置了宽和高,这样会致使源片的画面比例若是和设置的宽高比例不一致,就发生了形变,解决办法是只设置宽或者高,保持另外一边按照源片的画面比例等比输出。
- 视频转码后时间变长:这种视频通常都是因为源片的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卡住,无任何转码结果返回,这种视频一般建议用户排查推流端设置问题。
原文连接视频