ChrisRockC / MyWiki

点-线-面
0 stars 0 forks source link

网易云信(视频直播 IM) #135

Open ChrisRockC opened 7 years ago

ChrisRockC commented 7 years ago

项目中需要用到视频直播和即时通信

  • 网银云信是有视频直播和互动直播区分的。一个是一对多 多对多 所以我们只需要一对多
  • 里面有一个点播的概念: 就是类似播放电视剧一样(例如直播回放)
  • 视频直播已经包括了单聊以及聊天室的功能 所有我们就不需要重新集成了聊天的SDK
  • 现在的思路就是新建一个项目 大多都是使用Demo的基础上进行修改 毕竟Demo下载下来已经120多M,Demo中有的东西是不需要的
  • 差不多了 我们就可以把服务器的地址直接更改为公司的就可以 现在直接用的是网易云信的服务器,前期我们是有一个月的试用期的
ChrisRockC commented 7 years ago
ChrisRockC commented 7 years ago

pod 文件

SVProgressHUD RealReachability Masonry YYCache YYImage YYKeyboardManager YYModel YYText YYWebImage

ChrisRockC commented 7 years ago

Demo 项目结构

MVC S(Service) Base
Catagorys Dao(Demo是没有用到AFN的 所以里面主要做网络请求 数据操作) Helper Section View(项目中一些自定义View , 自己如果UI要定制的话也可以放在这里面)

ChrisRockC commented 7 years ago

由于 NIM SDK 是静态库,且为了方便开发者使用,我们把armv7 i386 x86_64 arm64平台 的静 态库合并成一个Fat Library,导致整个 SDK 比较大。但实际编译时会根据调用功能多少增加 ipa 文件大小,实测大约只会增加2-3M左右。 这个根据你使用到的功能不同打包也不同,具体大小你可以参考一下demo这个app的大小,这个是一个完整的app大小更具有参考性

ChrisRockC commented 7 years ago

名词解释

  • RTMP是Real Time Messaging Protocol(实时消息传输协议)
  • HLS (HTTP Live Streaming),Apple的动态码率自适应技术。 HTTP 渐进下载方法
ChrisRockC commented 7 years ago

前期SDK 头文件导入

直播中有滤镜 伴音 不想增加 是否可以删除相关的lib文件

ChrisRockC commented 7 years ago

推流

ChrisRockC commented 7 years ago

软件编码 硬件编码 由于高清视频的分辨率远远高于一般格式视频,使得高清视频的码率非常高。再加上VC-1和H.264编码的压缩率很高,解码运算的运算量很大。因此常规地直接用CPU解码(即常说的“软解”)会极大地消耗CPU的运算能力,一些较老的CPU软解H.264时CPU占用率往往高达90%以上,更老的可能就放不动了。   “硬解”是硬件解码的简称。简单而言,硬件解码就是通过显卡的视频加速功能对高清视频进行解码。因此硬解能够将CPU从繁重的视频解码运算中释放出来,使电脑具备流畅播放高清视频的能力。显卡的GPU/VPU要比CPU更适合这类大数据量的、低难度的重复工作。视频解码工作从处理器那里分离出来,交给显卡去做,这就叫做“硬解码”,例如NVIDIA的PureVideo、AMD的UVD技术等等。

ChrisRockC commented 7 years ago

视频由三大要素组成,帧率,码率以及分辨率 针对移动互联网应用,受到网络带宽限制,一般选择24fps,640kbps,640*480为最佳参数设置

ChrisRockC commented 7 years ago
ChrisRockC commented 7 years ago
主播意外中断没有推流录制也会自动停止吗?
会等 30s 没有数据上来 就自动停止了