通常情况下程序员在开发直播软件时,优化卡顿和延迟是比较多的,只要是优化欠佳,就会导致前端APP运行出问题,为了帮助程序员在开发过程中能更加合理有效的优化,小编在这里从开发的层面简要介绍一下影响直播体验的因素。

对于直播APP前端来说,主要是会出现卡顿、延迟、首屏耗时,下面简单介绍一下。

1.首屏耗时,即第一次点击播放后,用户肉眼看到画面之前所等待的时间。技术上是指播放器解码第一帧渲染显示画面所花的耗时。所谓的秒开,也是指点击播放后,一秒内即可看到播放画面。同样的,首屏打开速度越快,用户的产品体验越好。

2.卡顿即视频播放过程中出现画面滞帧,也就是我们通常提到的直播画面很卡的情况。单位时间内的播放卡顿次数统计称之为卡顿率。造成卡顿的原因可能有以下三点:

(1)推流端发送数据中断

(2)公网传输拥塞或者是网络抖动异常

(3)终端设备的解码性能太差

3.影响直播产品体验的另一个指标是延迟,即数据从信息源发送到目的地所需的时间。大部分用户都属于“视觉动物”重视第一印象,这也是为什么大多数开发者在进行直播软件开发时会格外注意了。由于 RTMP/HLS 是基于 TCP 之上的应用层协议,TCP 三次握手,四次挥手,慢启动过程中的每一次往返来回,都会加上一次往返耗时 ,这些交互过程都会增加延迟。再加上出现网络抖动也可能导致丢包重传,间接导致延迟加大。

影响直播软件体验的三个指标:

直播软件开发采用不同芯片平台会出现编码差异

iOS端和Android端应用的差异,导致芯片的选取也会有所不同。iOS端必然要选择Apple公司出厂的芯片了,由于是同一家公司出品的,所以在ios端无论是硬编还是软编,几乎不存在因为芯片平台不同而导致的编码差异。

但是在Android端就不同了,不同的芯片平台上编码差异表现很大。不同的厂家使用不同的芯片,而不同的芯片平台上Android MediaCodec表现略有差异。再加上Android MediaCodec硬编层面的H.264编码画质参数是固定的baseline ,所以画质比较一般。因此在直播软件开发时, Android端大都推荐使用软件编码,不仅画质可调控而且兼容性还好。

低端设备上高性能采集和编码的方法

在采集过程中,采集的频次很高且编码帧率也很高,每张图如果都经过编码器,那么编码器可能会出现过载情况。此时,可以在不影响画质的前提下进行选择性丢帧,以此来降低编码环节的功耗开销,这种方式在直播软件开发时的应用,也能很好的提升用户实际的直播平台体验。

弱网下保障高清流畅推流的方法

在移动端观看直播时,经常会遇到网络不稳定、断线重连、连接被充值等情况。还有就是用户在进行移动网络切换时, 带宽可能也会出现瓶颈。如果带宽不够, 那么帧率或码率较高的内容就无法及时发送出去,这个时候就需要可变码率进行支持。即在推流端,检查网络状态和简单测速后,选择动态切换码率,从而保障网络切换时的推流流畅。

首屏打开速度越快,直播不延迟,不卡顿,用户的产品体验越好,为了用户能在使用直播APP时体验更好,在开发过程中要格外注意以上问题。

ios查看帧率的软件_程序员必看!直播软件开发弱网下保障高清流畅推流的方法...相关推荐

  1. 静态方法与非静态方法的区别_程序员必看之ThinkPHP5中model与Db的区别

    在ThinkPHP5的使用过程中,很多使用者刚接触到数据库操作时,不能很好调用相关的方法进行数据库的交互.下面就分享一下ThinkPHP5中Db与模型的区别 关于db与model的选择 使用DB方式是 ...

  2. 程序员必看:如何降低APP软件开发的成本?

    程序员必看:如何降低APP软件开发的成本? 作为一名曾经的程序猿,一直想写一点东西给大家分享一下,今天终于动笔了,写写我们在开发的过程中怎样才能更快更好的进行开发,降低app开发成本.无论是个人开发者 ...

  3. 讲解虚拟服务器的书_程序员不得不看的书

    俗话说:书山有路勤为径,学海无涯苦作舟.面对飞速发展的技术,程序员怎能不看书呢.秉承活到老学到老的信念,给大家推荐一些程序员必看的书籍. 代码整洁之道 英文书名<Clean Code>,作 ...

  4. java软件学习网站_Java程序员必看的十大学习网站

    无论是作为资深Java程序员,还是刚刚Java入门的小白,都不可缺少平时学习的网站.以下小编收集了Java程序员必看的十大学习网站,这些网站可以提供信息.以及一些很棒的讲座 , 还能解答一般问题.面试 ...

  5. 程序员必看的书籍推荐

    程序员必看的书籍推荐: 推荐1:Python 网络数据采集 作者:Ryan Mitchell 译者:陶俊杰,陈小莉 原书4.6星好评,一本书搞定数据采集 涵盖数据抓取.数据挖掘和数据分析 提供详细代码 ...

  6. 程序员必看,学习的方法

    程序员必看,学习的方法 0.引言 在学习编程语言的路上,发现初学者(包括俺)问 得最多的问题莫过于"如何学习编程?Java该如何学习?".类似的问题回答多了,难免会感觉厌烦,就萌生 ...

  7. java中的model_Java程序员必看之springmvc中的Model对象在重定向中的数据

    原标题:Java程序员必看之springmvc中的Model对象在重定向中的数据 在springmvc框架中,一个handler方法中的参数可以内置接收Model类型的对象,主要用于存储数据之用,主要 ...

  8. java架构师之路:JAVA程序员必看的15本书的电子版下载地址

    java架构师之路:JAVA程序员必看的15本书的电子版下载地址 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一 ...

  9. JAVA程序员必看的15本书

    java架构师之路:JAVA程序员必看的15本书的电子版下载地址 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一 ...

最新文章

  1. 用Flutter改造ZS项目小记一:界面显示一张图片
  2. 类 Class 对象、定义、方法
  3. mysql 分析执行计划的效率_MySQL执行计划分析
  4. PHP中文处理工具函数的用法总结
  5. spring boot+mybatis整合
  6. 设计模式:模板方法模式(Template Method)
  7. 在 xml 视图里指定 SAP UI5 VizType 实例
  8. 程序员制作出价值5亿外卖神器却不能取消订单,你知道吗?
  9. EF批量插入太慢?那是你的姿势不对
  10. 短线买股赚钱的概率有多大?python带你来分析
  11. mybatis ------ 懒加载(八)
  12. JavaScript(九):JavaScript中的内置对象
  13. spring MVC interceptor post遇到问题
  14. 每天一道算法题(10)——数对之差的最大值
  15. 73本免费的语言无关的优秀编程书籍汇总
  16. 谷歌浏览器好用的复制粘贴插件_关于谷歌浏览器(chrome)的一些好用的插件推荐...
  17. 斗兽棋 java_GitHub - java-a/project1: 基于命令行的斗兽棋
  18. EasyExcel工具类(开箱即用)
  19. Vmware虚拟机文件介绍、克隆及文件名称更改方法
  20. 《2022 中小企业快成长之年,上云 选对平台是关键,这次我站华为云》

热门文章

  1. Install GIT in Ubuntu
  2. 大数据开发hadoop核心的分布式消息系统:Apache Kafka 你知道吗
  3. linux消息队列操作
  4. DIY走向高端化:用料成为比拼焦点
  5. ISA Server出现12250错误的解决方法
  6. Windows域内的时间同步
  7. python3 redis_python3_redis随手学习笔记
  8. 【MM模块】Reservation 预留
  9. PO条件在交货后更改控制点
  10. 释疑の删除多余的ALV布局以及选择条件变式