背景:近期遇到一个问题,播放录制直播的视频文件,在谷歌浏览器播放绿屏。
原因:比较有绿屏/正常的录制源,编码不同,其中出现绿屏情况对应推流h264编码profile是baseline,level是5.1。转码为main 4.0后在chrome播放无绿屏。
问题1:那多种不同的Profile的区别在于哪里? AVC/H.264 规定了多种不同的Profile:最低Profile、主要Profile、扩展Profile、高端Profile(这些Profile 本身还要划分数个等级)。
-最低Profile,也叫做底线Profile(Baseline Profile)支持I/P 帧,只支持无交错(Progressive)和CAVLC;
-扩展Profile(Extended Profile)支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC;
-主要Profile(Main Profile)提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),同样提供对于CAVLC和CABAC 的支持;
-高端Profile(High Profile)在主要Profile 的基础上增加了8x8 内部预测、自定义量化、无损视频编码和更多的YUV 格式;
问题2:产生绿屏的主要是: 无法渲染的画面有些用黑色填充,有些用绿色填充,有些用上一帧画面填充。
视频参数改变, 而解码端的SPS&PPS信息未及时重新获取更新,会导致画面无法正常渲染,继而导致绿屏的现象出现。
说人话 就是解码异常了。
参考自:
blog.csdn.net/yun6853992/…
谷歌浏览器会默认打开硬件加速(硬解解码),不支持最低Profile,需要调整到Main Profile才可正常使用(好了 至于为什么我还要有空再看看)
音视频测试常见问题和解决方案
-
出现花屏、绿屏问题
- 采集问题、编解码问题、声网传输丢帧问题
-
声画不同步
- 采集问题,或者公有云SDK问题
-
画面有时候有点糊
- 弱网,码率的自适应
-
有声音没有画面
- 弱网,触发了丢帧策略
-
画面播放有时候卡顿
- CPU消耗过高导致卡顿,比如AR模块
- 弱网
-
网络连接不上
- 弱网
- 或者代码有Bug,或者公有云SDK有Bug
-
出现马赛克现象?
- 是否类似花屏 ?
至于其他没有消化的知识点: blog.csdn.net/matrix_labo…