H.264 Profile知识点

731 阅读2分钟

背景:近期遇到一个问题,播放录制直播的视频文件,在谷歌浏览器播放绿屏。

原因:比较有绿屏/正常的录制源,编码不同,其中出现绿屏情况对应推流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
  • 出现马赛克现象?

    • 是否类似花屏 ?


出处:juejin.cn/post/684490…

至于其他没有消化的知识点: blog.csdn.net/matrix_labo…

音视频&流媒体的原理以及基础入门知识

zhuanlan.zhihu.com/p/232291020