音视频技术之《直播概念和流程框架》

一、了解直播

热门直播产品

1.一个完整直播app功能(来自落影loyinglin分享)

  • 1、
    • 私聊、聊天室、点亮、推送、黑名单等;
  • 2、
    • 普通礼物、豪华礼物、红包、排行榜、第三方充值、内购、礼物动态更新、提现等;
  • 3、
    • 关注、热门、最新、分类直播用户列表等;
  • 4、
    • 录制、推流、解码、播放、美颜、心跳、后台切换、主播对管理员操作、管理员对用户等;
  • 5、
    • 创建房间、进入房间、退出房间、关闭房间、切换房间、房间管理员设置、房间用户列表等;
  • 6、
    • 普通登陆、第三方登陆、注册、搜索、修改个人信息、关注列表、粉丝列表、忘记密码、查看个人信息、收入榜、关注和取关、检索等;
  • 7、
    • 聊天信息、滚屏弹幕、礼物显示、加载界面等;
  • 8、
    • APP业务统计、第三方统计等;
  • 9、
    • 禁播、隐藏、审核等;

2.一个完整直播app原理

:把主播录制的视频,推送到服务器,在由服务器分发给观众观看。

:推流端(采集、美颜处理、编码、推流)、服务端处理(转码、录制、截图、鉴黄)、播放器(拉流、解码、渲染)、互动系统(聊天室、礼物系统、赞)

3.一个完整直播app实现流程

直播流程.png

4.一个完整直播app架构

音视频技术之《直播概念和流程框架》
直播协议对比.png
  • :由Apple公司定义的用于实时流传输的协议,HLS基于HTTP协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件。可实现流媒体的直播和点播,主要应用在iOS系统
    • HLS是来实现直播
    • HLS是,客户端会根据网络状况自动选择不同码率的视频流,条件允许的情况下使用高码率,网络繁忙的时候使用低码率,并且自动在二者间随意切
      换。这对移动设备网络状况不稳定的情况下保障流畅播放非常有帮助。
    • 实现方法是服务器端提供多码率视频流,并且在列表文件中注明,播放器根据播放进度和下载速度自动调整。
  • :HLS主要是延时比较大,RTMP主要优势在于延时低
    • HLS协议的小切片方式会生成大量的文件,存储或处理这些文件会造成大量资源浪费
    • 相比使用RTSP协议的好处在于,一旦切分完成,之后的分发过程完全不需要额外使用任何专门软件,普通的网络服务器即可,大大降低了CDN边缘服务器的配置要求,可以使用任何现成的CDN,而一般服务器很少支持RTSP。
  • :基于HTTP协议流式的传输媒体内容。
    • 相对于RTMP,HTTP更简单和广为人知,内容延迟同样可以做到1~3秒,打开速度更快,因为HTTP本身没有复杂的状态交互。所以从延迟角度来看,HTTP-FLV要优于RTMP。
  • :实时流传输协议,定义了一对多应用程序如何有效地通过IP网络传送多媒体数据.
  • :实时传输协议,RTP是建立在UDP协议上的,常与RTCP一起使用,其本身并没有提供按时发送机制或其它服务质量(QoS)保证,它依赖于低层服务去实现这一过程。
  • :RTP的配套协议,主要功能是为RTP所提供的服务质量(QoS)提供反馈,收集相关媒体连接的统计信息,例如传输字节数,传输分组数,丢失分组数,单向和双向网络延迟等等。

7.解码

* 7.1 解封装 *

  • :从视频流、音频流,字幕流合成的文件()中, 分解出视频、音频或字幕,各自进行解码。

* 7.2 音频编码框架 *

  • :音频编码解码框架,PCM音频数据和AAC音频数据互转

* 7.3 解码介绍 *

  • :用GPU来解码,减少CPU运算
    •  优点:播放流畅、低功耗,解码速度快,
      * 缺点:兼容不好
  • :用CPU来解码
    • 优点:兼容好
      * 缺点:加大CPU负担,耗电增加、没有硬解码流畅,解码速度相对慢

8.播放

  • ijkplayer:一个基于FFmpeg的开源Android/iOS视频播放器
    • API易于集成;
    • 编译配置可裁剪,方便控制安装包大小;
    • 支持硬件加速解码,更加省电
    • 简单易用,指定拉流URL,自动解码播放.

9.聊天互动

  • :(InstantMessaging)即时通讯:是一个实时通信系统,允许两人或多人使用网络实时的传递文字消息、文件、语音与视频交流.
    • 在直播系统中的主要作用是实现观众与主播、观众与观众之间的文字互动.
      * 第三方SDK *
  • 腾讯云:腾讯提供的即时通讯SDK,可作为直播的聊天室
  • 融云:一个比较常用的即时通讯SDK,可作为直播的聊天室

四、如何快速的开发一个完整的直播app

1、利用第三方直播SDK快速的开发

七牛云:七牛直播云是专为直播平台打造的全球化直播流服务和一站式实现SDK端到端直播场景的企业级直播云服务平台.

            熊猫TV,龙珠TV等直播平台都是用的七牛云

网易视频云:基于专业的跨平台视频编解码技术和大规模视频内容分发网络,提供稳定流畅、低延时、高并发的实时音视频服务,可将视频直播无缝对接到自身App.

2、第三方SDK公司为什么要提供SDK给我们/h4>
  • 希望把我们的产品和它绑在一条船上,更加的依赖它。
  • 技术生钱,帮养一大批牛B的程序员

3、直播功能:自研还是使用第三方直播SDK开发/h4>

: 对于一个初创团队来讲,自研直播不管在技术门槛、CDN、带宽上都是有很大的门槛的,而且需要耗费大量的时间才能做出成品,不利于拉投资。

:公司直播平台大,从长远看,自研可以节省成本,技术成面比直接用SDK可控多了。

4.第三方SDK好处

  • 降低成本
    • 使用好的第三方企业服务,将不用再花高价请猎头去挖昂贵的大牛,也不用去安抚大牛们个性化的脾气
  • 提升效率
    • 第三方服务的专注与代码集成所带来的方便,所花费的时间可能仅仅是1-2个小时,节约近99%的时间,足够换取更多的时间去和竞争对手斗智斗勇,增加更大的成功可能性
  • 降低风险
    • 借助专业的第三方服务,由于它的快速、专业、稳定等特点,能够极大地加强产品的竞争能力(优质服务、研发速度等),缩短试错时间,必将是创业中保命的手段之一
  • 专业的事,找专业的人来做
    • 第三方服务最少是10-20人的团队专注地解决同一个问题,做同一件事情。第三方服务所带来的支持效果,绝不是通过1-2个人处理所能对比的,难道不是吗

转自 https://blog.csdn.net/lipengshiwo/article/details/52337572

来源:靑笺画卿颜

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年11月21日
下一篇 2019年11月21日

相关推荐