效果图如下

NowGif.gif

->

4349FA93-F15B-4287-9162-3AA27B223A72.png

FA783124-4B81-455F-A6E6-461ACA874478.png

处理了对IPad版本的适配

img_0257.png

img_0258.png

随着直播市场的火热,市场大军都逐步进入直播市场 ,腾讯旗下的NOW直播也不例外

先说说直播设计底层

一 、流媒体

1 - 伪流媒体

1.1 扫盲:边下载边播放
1.2 伪流媒体:视频不是实时播放的,先把视频放在数据库,再供客户端访问,比如:优酷,爱奇艺等

1.3 特点:

边下边存,文件会保存.
遵守了 HTTP 协议,但是没有遵守 RTMP 和 HLS 协议
能够实现快进和快退的功能
实现简单,成本低

2 实时流媒体

2.1 真正的流媒体,边下边播,但不会保存下载的文件

2.2 特点:

下载的文件不会保存
遵守了 RTMP 或者 HLS 协议
只能实现实时播放,不能快进或者快退
实现成本比较高,实现复杂

3 常见的流媒体协议: HLS(苹果基于 HTTP 开发的流媒体协议),RTMP(Adobe 的私有协议),MMS (微软).

HLS协议
1 HLS: HTTP Live Streaming 是苹果公司实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用在iOS系统,为iOS设备提供音视频直播和点播方案.

2 直播原理:通过相关设备采集摄像头的视频和麦克风的音频,并实时进行 H264视频编码和 AAC 音频音频编码,并按照 HLS协议规范,转换为标准的 TS文件以及m3u8(是一个地址,里面记录了服务器多对应的文件)索引文件.

3 HLS 点播:就是对 HTTP 进行分段播放,不同的就是在于对 HTTP 进行的分段非常小,因此可以说, HLS 点播的重点就是对 HTTP 进行分段.(现在的分段技术比较常见不在赘述)

4 HLS 直播原理:和其他的常见的直播协议(如: RTMP,RTSP,MMS)不同, 遵守HLS 协议的直播在客户端接收到的并不是完整的数据流. 即HLS 协议的服务器将最新获取到的片段进行分割为小片段,客户端获取服务器刚编好的最新的片段进行播放.这样服务器端不断的获取新的数据进行分割成新的片段,客户端不断的从服务器端获取最近的片段进行播放.由此可以说 HLS 是以点播的形式实现的直播.

5 HLS 的特点:由于数据是通过 HTTP 传输的,所以不用考虑防火墙和代理的问题,由于分割的时长很短,所以客户端可以很快的实现码率切换,以适应不同的带宽.HLS 协议的延迟一般会高于其他协议的流媒体直播.
6 HLS 实现步骤采取视频源和音频源数据对原始数据尽心 H264和 ACC 编码视频和音频数据封装为 MPEG-TS 包 HLS 分段生成策略以及 m3u8索引文件 HTTP 传输协议
注:需要说明的是 HLS 分段策略的分段时长以10S 为最好.

二 、RTMP 协议

1 RTMP 实时消息传输协议,是现在比较常用的协议
2 RTMP使用原理:首先推流到 RTMP 服务器,然后再有 RTMP 服务器提供 RTMP 视频服务.
注:需啊说明的是:RTMP 也提供 HLS, 将音视频切位 ts 流,然后用户可以直接播放 m3u8流媒体.3 RTMP协议规定
3.1 建立一个网络连接
3.2 建立一个网络流(发送多媒体的通道)
注:只能建立一个网络连接,但是可以建立多个网络流4 RTMP 协议使用步骤
4.1 握手:RTMP 协议都是以握手开始的客户端先发送 C0,C1两个数据块,服务器收到 C1或者 C2块的时候开始发送 S0和 S1
客户端收齐 S0和 S1的时候开始发送 C2,当服务器收齐 C0和 C1的时候开始发送 S2
当客户端收到 S2同时服务器收到 C2 的时候,握手完成
4.2 建立连接:建立客户端和服务器端的网络连接> 客户端发送命令消息中的”connect”,到服务器,请求与一个服务器应用实例建立连接
> 服务器接收到请求后,发送确认消息,同时连接到请求中的连接实例
> 服务器发送设置带宽协议消息到客户端
> 客户端接收到 设置带宽 消息之后,发送确认消息到服务器
> 服务器发送用户控制消息中的”stream”消息到客户端
> 服务器发送消息命令中的”结果”消息到客户端4.3 建立流:建立客户端和服务器端的”流连接”> 客户端发送消息命令中的”创建流”到服务器
> 服务器接收到”创建流”命令后,发送”结果”命令到客户端4.4 播放传输音视频数据> 客户端发送”播放”命令到服务器
> 服务器收到消息后,发送 设置消息大小协议消息
> 服务器发送” streambegin”,告知客户端流 ID
> 若播放成功的话,服务器发送”响应状态”到客户端.告知客户端播放成功
> 服务器发送客户端要播放是数据

流媒体的播放

1 HLS 的流媒体通过AVPlayer/AVPlayerViewController 和 MPMviePlayerController/MPMoviePlayerViewController 来实现.
2 RTMP 的流媒体要用第三方框架实现 如 FFMpeg ,IJKPlayer和 VLC 等
3 常用的流媒体框架:百度/阿里/腾讯/网易/斗鱼直播伴侣/七牛云等

-项目主要是基于ijkplayer 的. 最好是打包成framework
. 我也准备好了一份打包好的分享给大家
-百度云盘链接: https://pan.baidu.com/s/1jIEZN8M 密码: igcq

精简了项目,进行了快速开发,整个项目仅用了一天时间

打开项目记得用真机测试哦,不然模拟器会有语言跟不上 失真的现象哦
github -> https://github.com/ChinaArJun/Tencent-NOW

iOS【IOS视频直播:高仿腾讯旗下NOW直播映客直播类型】相关推荐

  1. IOS视频直播:高仿腾讯旗下NOW直播映客直播类型

    效果图如下 处理了对IPad版本的适配 随着直播市场的火热,市场大军都逐步进入直播市场 ,腾讯旗下的NOW直播也不例外 先说说直播设计底层 一 .流媒体 1 - 伪流媒体 1.1 扫盲:边下载边播放 ...

  2. 一款高仿腾讯漫画的漫画阅读类 APP

    早上好,骚年,我是小菜,我的公众号「菜鸟翻身」会推荐 GitHub 上有用的项目,一分钟 get 一个优秀的开源项目,挖掘开源的价值. 我的引语 项目中成长是最快的,实践是王道,项目中成长是最快的,多 ...

  3. C# 高仿腾讯QQ (TextBox控件美化)(附源码)

    接上一篇<C# 高仿腾讯QQ (Bottom控件美化) > 这篇来说一下QQ皮肤TextBox控件的美化: (1).已修正 每次窗口最小化以后再还原会发现窗口底部往下移了几十个像素(但还不 ...

  4. 高仿腾讯 QQ,已经实现了纯文本,表情,图片,语音,位置等信息的发送。

    QQ 项目地址:HuTianQi/QQ 简介:高仿腾讯 QQ,已经实现了纯文本,表情,图片,语音,位置等信息的发送. 一款高仿腾讯 QQ 的 IM 软件,基于 bmob SDK,已经实现聊天,表情,图 ...

  5. 【Android进阶】如何写一个很屌的动画(3)---高仿腾讯手机管家火箭动画

    系列中其他文章: [Android进阶]如何写一个很屌的动画(1)-先实现一个简易的自定义动画框架 [Android进阶]如何写一个很屌的动画(2)-动画的好帮手们 [Android进阶]如何写一个很 ...

  6. 仿腾讯QQ竖直滑动导航菜单

    菜单就像qq软件的分组,鼠标经过自动显示相应组的内容. 效果体验网址:http://keleyi.com/a/bjad/nf86w2dv.htm 以下是源代码: 1 <html> 2 &l ...

  7. iOS视频直播:高仿喵播APP

    效果图 gif1 gif2 由于licecap录制的GIF失帧太严重, 都模糊掉了, 再放两张高清截图 png1 png2 前言 今年三月份,斗鱼获腾讯领投的1亿美元融资的消息被各大平台报道转载,在电 ...

  8. 共建音视频技术生态,腾讯云成国内首家直播+点播全线支持AV1视频处理业务公有云

    日前,腾讯视频云直播.点播.媒体处理全线产品均已支持AV1标准,据悉,腾讯云也是国内首家直播+点播同时支持AV1视频处理业务的公有云厂商. 据悉,AV1(Alliance for Open Media ...

  9. html5仿腾讯,高仿腾讯QQ Xplan(X计划)的H5页面(1):threejs创建地球

    上个月底,在朋友圈看到一个号称"这可能是地球上最美的h5"的分享,点进入后发现这个h5还很别致,思考了一会,决定要不高仿一个? 到今天为止,高仿基本完成, 除了手机端的media控 ...

最新文章

  1. java swt 画按钮_向表中添加按钮(java swt)
  2. 图像处理中,SIFT,FAST,MSER,STAR等特征提取算法的比较与分析(利用openCV实现)
  3. 目录访问共享C#怎么访问共享目录
  4. 关于×××隧道技术在使用中的优势
  5. caffe 使用cudnn 加速报错
  6. 销售服务器 以次充好 判刑,销售假冒产品怎么判刑处罚,法律怎么规定的?
  7. bzoj 1010: [HNOI2008]玩具装箱toy(斜率dp)
  8. Spring @Autowired批注
  9. saltstsck执行sls配置
  10. STM32f103 串口接收不定长数据
  11. [华为] 华为交换机接口配置报错指南
  12. 一份ERP系统总体解决方案
  13. 回复git@vger.kernel.org的注意事项
  14. 有你智居告诉你,智能门禁是如何做到出入小区只需1秒钟的?
  15. 一文看懂各种传感器工作原理!
  16. 新用户注册之验证码短信、语音解决方案
  17. 硅谷的程序员, 入职第一天都在干什么?
  18. 支付宝支付和微信支付
  19. 用python输出斐波那契数列的前20项_python输出斐波那契数列
  20. putty软件下载和教程

热门文章

  1. 你想要的Python面试题都在这里了!
  2. 性格内向的我选择了学习瓦工
  3. java中super的用途
  4. 利用java8特性Stream流对list集合进行多个属性组装数据
  5. Adaptive Two-Stage Filter for De-snowing LiDAR Point Clouds(DNNOR)
  6. code ELIFECYCLE报错
  7. MVC北京络捷斯特第三方物流系统技术解析(八)返单
  8. flex actionscript时间处理
  9. python私有成员变量_python类的私有变量
  10. git提交指定分支代码