iOS直播技术学习笔记 直播总体概览(一)
####概述
- 直播的现状
- 2016年,是一个直播年。直播行业快速发展,同时也滋生了大大小小上千家相关的公司。
- 中国互联网络信息中心发布的报告显示,截至今年6月,我国网络直播用户规模达到3.25亿,占网民总体的45.8%。
- 直播的技术
- 直播技术概况来说,可以分为 采集,前处理,编码,传输,解码,渲染 这几个环节 ####技术整体概览
- 图例:
####分步解析 #####音视频采集
- 音视频的采集是直播架构的第一个环节,也是直播的视频来源
- 采集的来源包括:
- PC端:屏幕摄像头(摄像头驱动适配)
- iOS端:摄像头采集(屏幕采集?)
- Android端:屏幕摄像头采集(硬件过多,适配一堆坑) #####前处理
- 使用美颜相机&美图秀秀已经是网络发照片&发视频必备技能了
- 80%的主播没有美颜简直不能看(当然还是有美女的)
- 不能看如何吸引用户&观众
- 对视频进行美颜,已成标配
- 处理主要包括,美颜、模糊效果、水印等
- 总之就是让人变美、变帅
- 各个平台处理方式
- PC端:美颜镜头、一些美颜软件
- iOS端:图像处理库是GPUImage,提供了丰富的预处理效果,也可利用该库自定义设计
- Android端:Google开源的grafika,是一个非常强大的图形处理库 #####编码
- 不经编码的视频非常庞大,存储起来都麻烦,更何况网络传输
- 编码通过压缩音视频数据来减少数据体积,方便音视频数据的推流,拉流和存储,能大大提高存储传输效率
- 音视频必须经过压缩编码才能进行存储和传输
- 编码方式:
- 硬编码:使用非CPU进行编码,如显卡GPU、专用的DSP芯片等
- 软编码:使用CPU进行编码(手机容易发热)
- 各个平台处理:
- iOS端:硬件兼容性较好,可以直接进行硬编码
- Android端:硬编码较难,难找到统一的库兼容各个平台(推荐使用软编)
- 编码标准:
- 视频编码:H.265、H.264、VP8、VP9等
- 音频编码:AAC、Opus #####传输
- 从推流端到服务端
- 数据经过推流端采集和预处理,编码之后推流到服务端
- 流传输就涉及到相应的传输协议,最常用的协议是RTMP、RTSP、HLS
- 搭建nginx+rtmp服务器进行推流演示 #####流分发
- 音频流推到服务器后,为了适配各个平台端各种不同协议,需要在服务端做一些流处理工作,比如转码成不同格式支持不同协议如 RTMP、HLS 和 FLV,以适应各个平台
- 比如:iOS、Android、PC、网页
- 甚至,为了配合一些运营需求,比如一些监管部门的要求,我们在服务端也提供了内容识别如鉴黄的功能 #####播放
- 拉流获取音视频数据后,需要通过解码器解码,渲染才能在播放器上播放
- 总体步骤概览:
- 解协议:取出网络传输过程中一些无用信息
- 解封装:获取到的是音频&视频放在一起的封装文件
- 音视频解码:音视频都是经过压缩编码的内容,解码后才能进行播放
- 音视频同步:视频&音频文件需要通过播放
- 音视频播放:声卡&显卡等对音视频进行播放
转载于:https://juejin.im/post/5a334831f265da43294e1826
iOS直播技术学习笔记 直播总体概览(一)相关推荐
- 直播技术学习笔记(一)
播放器相关技术: 1.开源项目 jjdxm_ijkplayer是基于 ijkplayer简单的UI界面: ijkplayer是一个基于 FFmpeg n2.6 的开源 Android/iOS 视频播放 ...
- iOS直播技术学习笔记 美颜滤镜效果(三)
GPUImage的介绍 GPUImage 是一个开源的基于GPU的图片或视频的处理框架,其本身内置了多达120多种常见的滤镜效果 GPUImage是利用GPU,使在图片和视频上应用不同的效果和滤镜变得 ...
- 直播技术学习笔记(直播协议+流媒体服务器+音视频处理+FFmpeg)
直播协议 RTMP(Real Time Messaging Protocol) 简介 Time Messaging Protocol,实时消息传送协议 RTMP是Adobe公司为Flash播放器和服务 ...
- SpringBoot整合第三方技术学习笔记(自用)
SpringBoot整合第三方技术学习笔记 搬运黑马视频配套笔记 KF-4.数据层解决方案 KF-4-1.SQL 回忆一下之前做SSMP整合的时候数据层解决方案涉及到了哪些技术?MySQL数据库与My ...
- 图解密码技术学习笔记
主题:图解密码技术 简介:密码技术入门学习 参考:译者分享 作者:ybb 时间:2021年12月15日 周自恒直播课学习笔记 4.分组密码的模式 4.1 DES和AES作为对称加密时使用的分组密码只能 ...
- 小五思科技术学习笔记之SSH
下面介绍一下相关概念: SSH的概念: SSH的英文全称为Secure Shell,SSH使用TCP的22号端口,其目的是要在非安全的网络上提供安全的远程登陆和其他安全的网络服务, 为什么要使用SSH ...
- iOS App Clips学习笔记
一.什么是App Clip? App Clip是一个App的轻量版,用来提供一些用户所需功能,我们可以把它看成苹果的小程序.它不需要下载就直接能打开.这样即可达到不下载完整版APP便可体验APP的部分 ...
- R语言与抽样技术学习笔记(Jackknife)
R语言与抽样技术学习笔记(Randomize,Jackknife,bootstrap) Jackknife算法 Jackknife的想法在我很早的一篇博客<R语言与点估计学习笔记(刀切法与最小二 ...
- java mvc框架代码_JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码)
原标题:JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码) JavaEE体系结构包括四层,从上到下分别是应用层.Web层.业务层.持久层.Struts和SpringMVC是Web层的 ...
最新文章
- 太形象!打工人入职前后的心理变化 | 每日趣闻
- 关于loadtxt编码问题的解决方法
- 关于ajax里面嵌套ajax
- 释疑のABAP内表的比较
- 局部放大_Origin教程|巧用ZOOM功能做数据对比和快速绘制局部放大图
- SpringBoot2.0.3 + SpringSecurity5.0.6 + vue 前后端分离认证授权
- 华为nova 5i Pro发布:麒麟810+4800万像素AI四摄
- HttpClient 入门与正确使用姿势
- 【数据结构】二叉树题目代码总结 (快速排序与汉诺塔的非递归 、判断完全二叉树 、二叉链表交换左右孩子 、01背包问题)
- Vagrant安装CentOS7镜像
- 电子商务概论(农)之章节课后题
- 百度AI-语音识别图片搜索(Java)
- 07-图4 哈利·波特的考试(25 分)
- vs2019中出现PyTorch is not linked with support for cuda devices的解决方法
- l10n php download,在PHP,WordPress,phpMyAdmin,C,i18n,L10n等双下划线?
- CNUOJ 2020 LJX的高精度
- U盘什么格式最好?U盘格式介绍
- 大数据应用统一集成平台CDAP简介
- 第一篇博客——C语言实现简单的学生成绩管理系统
- Java课设对对碰_java 对对碰游戏