ffmpeg推拉流优化方案

文章目录

  • ffmpeg推拉流优化方案
    • 一、卡顿优化
      • 设备老旧
      • 视频流音视频不同步
      • 网络
    • 二、延时优化
    • 三、传输协议优化
    • 四、首屏秒开优化
      • 服务器做优化
      • 客户端优化
    • 五、弱网优化
    • 六、DNS劫持优化
    • 七、服务端cdn优化

主要从以下几点来优化

  • 卡顿优化
  • 延时优化
  • 传输协议优化
  • 首屏秒开优化
  • 弱网优化
  • DNS劫持优化
  • 服务端cdn优化

一、卡顿优化

视频播放端卡顿主要有以下几点原因:

设备老旧

设备太老,CPU和GPU处理性能过低,计算解码时间过长,导致音视频卡顿

视频流音视频不同步

  • 服务端编码视频流参数配置有问题
  • 拉取的视频流音画不同步。例声音连续播放,但是画面卡住

上述需要优化的点有:

  • 设置合理的配置参数,合理的帧率、码率、分辨率和I帧(关键帧)的间隔。
  • 调整编解码算法,如按照视频编码H.264/H.265规范,编码完整的视频数据

网络

当网络状况不好时,可以监听网络变化,切换低码率的视频流拉取,减少卡顿的出现

二、延时优化

低延时是直播播放的主要要求之一。实现低延时需要需要根据响应的阶段执行不同的优化方案

1.采集处理数据阶段 – 处理数据的延时-美颜、滤镜等

在采集到音视频数据后,需要增加一些视频效果,如美颜、水印、滤镜等效果,这些操作会耗费大量的CPU资源,可以将这部分交由GPU处理,可以大大减少处理数据的延时

2.编码阶段 – 编码耗时的帧,设置了不合理的参数值

  • 编码前丢帧,减少编码的耗时。例如丢掉B帧,B帧解码时需要依赖前后视频帧(I或P帧),会增加延时。所以在编码前丢弃B帧,不仅能降低编解码耗时,同时也能降低带宽开销。
  • ffmpeg有两个参数
    probesize:获得文件内容的大小,适当的大小可以减少延迟,太大会增加延时,太小会造成卡顿的现象
    analyzeduration:解析媒体所需要花销的时间,这里设置的值越高,解析的越准确,如果在直播中为了降低延迟,这个可以设置得低一些

三、传输协议优化

应用层传输协议采用HTTP-FLV协议或者RTMP协议,这两个协议延时低,可以再网络请求和响应时快速传输数据,减少延时

RTMP(Real Time Message Protocol、实时信息传输协议)是应用层协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题。

四、首屏秒开优化

在直播中,往往需要快速的显示首屏画面,防止黑屏带来的用户体验差,这个时候需要做首屏秒开优化

服务器做优化

GOP即Group of picture(图像组),指两个I帧之间的距离,Reference(参考周期)指两个P帧之间的距离。一个I帧所占用的字节数大于一个P帧,一个P帧所占用的字节数大于一个B帧。

所以在码率不变的前提下,GOP值越大,P、B帧的数量会越多,平均每个I、P、B帧所占用的字节数就越多,也就更容易获取较好的图像质量;Reference越大,B帧的数量越多,同理也更容易获得较好的图像质量。

  • 服务器缓存GOP,GOP的第一帧是关键帧(I帧),所以无需下载整个GOP,只需下载收个关键帧解码播放,就能达到首帧秒开

客户端优化

  • 为了加快渲染速度,在做首帧渲染时,不做音视频同步,后面再进行同步

由于人们对音频的变化比较明显,音视频同步通常采用视频追音频的方案进行同步,所以在首帧不做音视频同步,可以快速的渲染出图像,而不必等待音频解码,做同步再渲染

  • 当网络比较差时,对带宽进行监测,根据带宽切换合适的码率播放视频,缩短首帧的渲染时间

  • 在首帧渲染之前,做预加载或者延迟加载。减少同时带宽和CPU的暂用,达到首屏快速加载渲染

五、弱网优化

  • 前面提到的根据带宽,拉取合适的码率、帧率和分辨率来播放

  • 推流端使用H.265协议,可以节约40%带宽,但是并不是所有的手机都支持H.265协议,所以需要做额外的控制层。

  • 播放端可以通过缓存一定的数据之后再进行播放,减少卡顿次数。但是这种不减少卡顿时间

六、DNS劫持优化

运营商被劫持会向包中加入一些广告和其他无用的东西。需要屏蔽这些无用数据。可以采取以下措施:

  • 使用HTTPS通讯

HTTPS在应用层增加了SSL协议,不同于TCP/IP三次握手,它需要其次握手,在连接阶段,采用非对称加密,来防止中间人攻击,但是相对的也会增加性能损耗。

  • 数据安全校验-MD5、SHA校验

    匹配数据的md5值,防止被篡改

  • 使用HttpDNS技术

    使用自建的httpDNS服务器或者阿里云DNS服务器,防止运营商解析DNS被劫持

七、服务端cdn优化

在分发的时候使用cdn服务,通过DNS重定向技术访问用户最近的CDN节点,同时用户和这个节点做交互。

ffmpeg推拉流优化方案相关推荐

  1. ffmpeg推拉流 视频合成

    ffmpeg推拉流 视频合成 多路合并- 推拉流指令 ffmpeg -re -rtsp_transport tcp -i "rtsp://admin:**********/h264/ch1/ ...

  2. java 推拉流_libsrt+ffmpeg推拉流(一)

    srt相关以及其他问题可参考两篇文章: 下面介绍具体操作: 一:ffmpeg的windows版本支持srt已经编译好的下载地址:https://ffmpeg.zeranoe.com/builds/:如 ...

  3. 开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享

    开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享 一.优秀的流媒体博客资源 1.1 EasyNVR:专注于安防视频互联网化的技术 1 ...

  4. 视频直播技术干货:一文读懂主流视频直播系统的推拉流架构、传输协议等

    1.引言 随着移动网络网速的提升与资费的降低,视频直播作为一个新的娱乐方式已经被越来越多的用户逐渐接受.特别是最近这几年,视频直播已经不仅仅被运用在传统的秀场.游戏类板块,更是作为电商的一种新模式得到 ...

  5. 视频直播技术分享:一文读懂主流视频直播系统的推拉流架构、传输协议等

    本文由蘑菇街前端开发工程师"三体"分享,原题"蘑菇街云端直播探索--启航篇",有修订. 1.引言 随着移动网络网速的提升与资费的降低,视频直播作为一个新的娱乐方 ...

  6. 一个小时开发的直播推拉流软件来了

    一.简介 目前市面上直播推流的软件有很多,拉流也很常见.近期因为业务需要,需要搭建一整套服务端推流,客户端拉流的程序.随即进行了展开研究,花了一个小时做了个基于winfrom桌面版的推拉流软件.另外稍 ...

  7. Nginx搭建RTMP推拉流服务器

    如题,今天就来实现一个推拉流服务器,模拟下推流后被客户端拉流看到效果. 详细步骤如下 - 安装Nginx - 安装FFmpeg - 安装VLC客户端 安装Nginx 在Mac上有一个很好用的包管理插件 ...

  8. 浅析主流视频直播系统的推拉流架构、传输协议

    随着移动网络网速的提升与资费的降低,视频直播作为一个新的娱乐方式已经被越来越多的用户逐渐接受.特别是最近这几年,视频直播已经不仅仅被运用在传统的秀场.游戏类板块,更是作为电商的一种新模式得到迅速成长. ...

  9. SRS流媒体服务器——WebRTC推拉流演示

    SRS流媒体服务器--WebRTC推拉流 目录 WebRTC推拉流配置 WebRTC拉流演示 WebRTC推流演示 SRS官方WebRTC文档:https://github.com/ossrs/srs ...

  10. 音视频学习之rtsp推拉流学习2(流媒体服务器ZLMediaKit)

    公司项目需要实现一个只是rtsp推流和rtsp拉流的业务机制,据说ZLMediaKit能满足rtsp推拉流的相关业务. 对ZLMediaKit流媒体服务器进行安装以及了解. 0:从开源库Readme中 ...

最新文章

  1. 机器人流程自动化崛起,中国是否准备好迎接智能自动化时代?
  2. 用机器学习做信用评分
  3. 论文笔记:ResNet v2
  4. linux indent格式化代码
  5. 用汇编的眼光看C++(之拷贝、赋值函数)
  6. 动态切换父元素隐藏和显示里面的子元素的动画会再一次执行吗?
  7. 李猛:从MongoDB迁移到ES后,我们减少了80%的服务器
  8. Oracle10.2.0.1开始可以在线删除数据文件
  9. 如何上好网课 — 老师录课和在线上课教学经验谈
  10. 如何利用计算机系统原理做文件保护,计算机系统设计原理(影印版).docx
  11. 白天做安全,晚上去挖洞
  12. 像素越多越好?像元的面积越小越好?
  13. LoadRunner 11压测时碰到错误Error: missing newline in *:\*****\*.dat
  14. EViews8.0程序安装及注意事项
  15. 适用mac微信用户的免登陆多开防撤回插件-WeChatTweak
  16. [中文/英文]VC6 sp6补丁下载|VS6 sp6补丁下载 [防VC6link死机]
  17. 16位华人获“诺奖风向标”斯隆奖,4人来自北大数院
  18. 2023年天津天狮学院专升本专业课如何线上考试考前准备的要求
  19. C# 命名空间中不存在类型或命名空间名,是否缺少程序集引用
  20. Ps和Excel结合,快速制作透明表格

热门文章

  1. Activiti6记录
  2. 4.1 NI-USRP简介
  3. svn回退到指定版本idea版
  4. 【基本算法】概率算法
  5. Java开发框架!高级java工程师简历模板
  6. 软件测试必须知道的精华总结
  7. ansys linux17.2 字体,ubuntu16.04安装Ansys17.2教程,及遇到的问题(安装非完美)
  8. 在Win2016上安装SVNServer21步骤
  9. 招商银行网络科技笔试
  10. 【Turbo】基于MATLAB的turbo编译码算法的仿真