音视频知识点(一)

1 直播中为什么会出现花屏、黑屏、闪屏?

  • 主播没有打开摄像头权限,推流端没有做好权限校验处理。

  • 采集Camera数据,就要开始编码,如果编码失败,没有推送数据,那就会黑屏。

  • 拉流端遇到不支持的视频格式,或者解析出来的数据异常,出现解码失败,导致无法播放视频,出现黑屏。

  • 推流过程中由于网络问题不得不丢帧处理,此时丢失了参考帧,导致后续拉流段解码的时候因为失去参考帧解码出来的数据出现花屏情况。如果需要丢帧,应该一次就丢掉整个GOP的数据,不然就可能出现花屏现象。

  • 播放器拉流的时候首帧不是关键帧,导致花屏,一定要判断首帧是关键帧才开始处理,不然没有关键帧整个GOP的数据解出来都有问题的。

  • 推流端直播size发生变化,拉流端没有重置解码器,导致拉流端解出来的数据异常。

  • 硬解码的兼容性问题,出现编码器无法支持格式,例如相机采集的是NV21,但是编码器只能支持I420,那推出去的视频就会出现色差。

2 音视频软件性能优化

稳定性优化

  • 内存处理:

    • 编码过程中养成良好的习惯,malloc和free对应,new和delete对应。释放内存之后,一定要将对应的指针置空,不然会出现野指针问题。

    • 内存检测工具:asan和memory leaker,功能做完了,记得用这个工具跑一下。

    • 防止内存抖动,频繁的内存抖动暴露了程序中内存申请的不合理,也会拖慢整体的运行效率。

  • ANR处理:

    • pthread_join卡死问题,音视频中经常出现此类问题,释放资源时,子线程卡死了,pthread_join一直卡在那儿,导致主线程ANR。线程设计的时候要特别注意。

    • 主线程一定要谨慎操作,不能做网络请求、IO操作(一些IO操作比较隐蔽,例如解析视频)等。

线程优化:

  • 线程设计,是否一定需要这个线程,能不增加就不增加,增加一个线程要申请一定的资源,而且还会有多线程的问题。

  • C++ Handler Message消息机制。

  • 多线程安全。

  • pthread_join卡死问题,上面提到过。

功耗优化

  • 数据量太大,音视频处理的视频帧现在一般都1080P的,相对比较大。

  • 操作比较多,YUV2RGB的转换比较频繁,如果是GPU的处理还好一点,CPU计算转换则很耗资源。

  • 软编码和软解码消耗大量的CPU资源。

  • 音视频处理中会应用特效、美颜、算法等处理,这些都比较耗资源。

  • 音视频中大量的memory copy操作,也会消耗资源。

3 音视频技术中的卡顿优化

我们还是以直播为例,拉流端有时候会出现卡顿,我们需要从全链路的角度分析这些卡顿。

  • 音视频不同步:

    • 推流端音视频同步没做好,那这种卡顿很危险,会一直持续下去的,而且无法纠正。RTMP推流的时候需要好好分析时间戳的问题,A-V不能相差超过100ms
    • 推流端在弱网丢帧的情况下也要做好音视频同步,一般要丢帧整个GOP,这时候也要相应丢掉对应时间点的音频数据。

    • 拉流端缓冲设计要做好,解码队列中数据不够导致音视频解码时同步总是对不上。

    • 点播情况下有些视频很怪:视频中封装的音频和视频相差比较大,有时候会相差好几秒,这就是这个视频源有问题了。

  • 弱网环境:

    • 弱网情况下,推流端没有适配好的丢帧策略或者说适配了丢帧策略,但是在弱网情况下还是推流较高清的视频,在拉流端播放会出现卡顿。

    • 拉流端没有缓存一段数据,一遇到网络抖动,会出现卡顿。

  • 处理耗时:

    • 推流端处理纹理时比较耗时,加了滤镜、美颜、其他算法处理导致采集比较慢,会出现掉帧卡顿。

    • CDN分发不行,请求负载过大,导致CDN分发出现异常。

4 直播关键技术指标

  • 推流平均码率

  • 丢帧率

  • 自动切换码率频率

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349