直播学习---基础流程知识点

前言

公司要做直播项目,赶紧趁着还没开始前,再去复习、学习一下之前的直播视频
本着“不做笔记 = 白学”的格言,写点笔记📒


问:如何获取别人家的图片资源?

首先,在PP助手下载.ipa包,解压后,可以拿到部分图片
然鹅,.car里面的图片资源是拿不到的
可以借助github上面的工具:cartool
在这里插入图片描述
即可拿到.car里面的图片资源

问:如何scrollView的轮播图可以无限滚动?

假如现在只有6个轮播图图片,那么collectionViewCell的个数 乘以 1000
这样,就可以无限滚动
而初始化的时候,设定现在在第60个地方,这样就可以往前滚动

那,建立1000个cell会造成内存不够用吗?
不会的,因为只有6个cell有图片,collectionView会循环使用的

iOS中Socket编程

大致有:
BSD Socket 纯C的
CFSocket 苹果官方的,但也有C语言,使用起来稍微麻烦些
AsyncSocket 开源库,很好用,但是很久没有更新了
ysocket 目前swift可使用,并且常用

消息传递

TCP在传输数据时,传输的是字节流
在读取消息的时候,需要知道数据的长度,否则会出现读取不完整或者读取长度过多的情况,因此,读取方法要求我们传入本次读取的消息长度

如何解决?

方案一:客户端发送两次消息
消息一是记录后续消息长度;消息二是真正的消息

方案二:客户端发送一次消息
消息有一个Header,用于记录消息的长度,后续为真实消息内容
Header-Body


直播的大致流程:采集、处理、编码、推流、流分发、播放等环节
在这里插入图片描述

采集

采集的话一般是对摄像头的操作

处理

处理一般是GPUImage做的滤镜

编码
  • 由于采集的视频太大,不编码的话存储起码量大,网络传输更是困难,因此需要对音视频进行编码(其实是压缩)。
  • 编码通过压缩音视频数据来减少数据体积,方便音视频数据的推流、拉流和存储,能大大提高存储传输效率
  • 编码分为硬编码和软编码
  • 视频编码一般有:H.265、H.264、VP8、VP9等
  • 音频编码一般有:AAC、Opus
推流

推流其实就是将本地编码好的数据传输到服务端,是一个传输的过程
既然是传输,就需要有相关的传输协议,最常用的协议有:RTMP、RTSP、HLS

HLS(HTTP Live Streaming):是苹果公司实现的,基于HTTP的流媒体传输协议,可实现流媒体的直播和点播。
原理上是,将视频流分片为一系列HTTP下载文件。HLS比RTMP相比,有较高的延迟
HLS基于HTTP协议实现,传输内容包括两部分:一是M3U8描述文件,二是TS媒体文件

RTMP是Adobe开发的协议,基于TCP
本质上是流协议,主要优势是:
实时性高、支持加密、稳定性高

iOS常用的推流框架:
swift框架:if.swift
OC框架:LFLiveKit

流分发

音视频流到达服务端后,服务端将得到的信息汇总,然后转码成可以为客户端所识别的音视频,如:RTMP、HLS、FLV
当然,也会在服务端做一些例如监黄过滤处理

播放

拉流获取音视频数据后,需要通过解码器解码、渲染,才能在播放器上播放
播放又可细分为:

  • 解协议
  • 解封装:获取到的是 音频和视频 在一起的封装文件
  • 音视频解码:音视频都是经过压缩编码的内容,所以需要解码
  • 音视频同步
  • 音视频播放
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值