iOS 直播技术文档
iOS 直播
个人项目可以参考+lflivekit+ljkplayer
第三方推荐使用金山云
im推荐使用容云
网络层(socket或st)负责传输,协议层(rtmp或hls)负责网络打包,封装层(flv、ts)负责编解码数据的封装,编码层(h.264和aac)负责图像,音频压缩。
码率:图片进行压缩后每秒显示的数据量。
帧:每帧代表一幅静止的图像
GOP:(Group of Pictures)画面组,一个GOP就是一组连续的画面,每个画面都是一帧,一个GOP就是很多帧的集合
直播的数据,其实是一组图片,包括I帧、P帧、B帧,当用户第一次观看的时候,会寻找I帧,而播放器会到服务器寻找到最近的I帧反馈给用户。因此,GOP Cache增加了端到端延迟,因为它必须要拿到最近的I帧
GOP Cache的长度越长,画面质量越好
帧率:每秒显示的图片数。影响画面流畅度,与画面流畅度成正比:帧率越大,画面越流畅;帧率越小,画面越有跳动感。
由于人类眼睛的特殊生理结构,如果所看画面之帧率高于16的时候,就会认为是连贯的,此现象称之为视觉暂留。并且当帧速达到一定数值后,再增长的话,人眼也不容易察觉到有明显的流畅度提升了。
分辨率:(矩形)图片的长度和宽度,即图片的尺寸
压缩前的每秒数据量:帧率X分辨率(单位应该是若干个字节)
压缩比:压缩前的每秒数据量/码率 (对于同一个视频源并采用同一种视频编码算法,则:压缩比越高,画面质量越差。)
视频文件格式:文件的后缀,比如.wmv,.mov,.mp4,.mp3,.avi,
主要用处,根据文件格式,系统会自动判断用什么软件打开,
注意: 随意修改文件格式,对文件的本身不会造成太大的影响,比如把avi改成mp4,文件还是avi.
视频封装格式:一种储存视频信息的容器,流式封装可以有TS、FLV等,索引式的封装有MP4,MOV,AVI等,
主要作用:一个视频文件往往会包含图像和音频,还有一些配置信息(如图像和音频的关联,如何解码它们等):这些内容需要按照一定的规则组织、封装起来.
注意:会发现封装格式跟文件格式一样,因为一般视频文件格式的后缀名即采用相应的视频封装格式的名称,所以视频文件格式就是视频封装格式。
视频封装格式和视频压缩编码标准:就好像项目工程和编程语言,封装格式就是一个项目的工程,视频编码方式就是编程语言,一个项目工程可以用不同语言开发。
直播协议选择:
即时性要求较高或有互动需求的可以采用RTMP,RTSP
对于有回放或跨平台需求的,推荐使用HLS
直播的流程
一数据采集:摄像头,话筒
1.音视频采集 avfoundation
2.视频处理(美颜)gpuimage
3.音视频编码压缩 ffmpeg框架(音频压缩) x264 视频压缩
4,发送音视频封装flv,ts rtmp库可以把音视频大成包
二:服务器端(常用的流媒体服务器 sns,bms nginx)
1.数据分发
2.浅黄
3.截屏
4.录制视频
5.实时转码
三播放端流程
用到的框架
ljkplayer播放
ffmpeg视频解码
videotoolbox 视频硬解码
Audiotoolbox 音视频硬解码
1从flv,ts分离中音视频数据
2.音视频解码
3,播放
4,聊天互动
iOS 直播技术文档相关推荐
- iOS 直播技术及Demo
要过年了,新年快乐,今天写一些关于iOS直播技术相关知识,及详细Demo介绍,首先请下载Demo Demo下载地址(点击跳转下载) 一.直播介绍 1.1.直播现状 近年来,直播越来越火,但直播技术却对 ...
- 从转载阿里开源项目 Egg.js 技术文档引发的“版权纠纷”,看宽松的 MIT 许可该如何用?
作者 | 苏宓.彭慧中 出品 | CSDN(ID:CSDNnews) 开源迅速发展的这两年,很多内部问题逐渐凸显出来,如安全.版权.协议使用等. 近日,来自V2EX社区中一位开发者 @an168ban ...
- 市面售价2W的仿抖音短视频原生双端APP源码,带技术文档管理后台和数据库
这个短视频系统源码是2w某站购买来的仿抖音视频app,原生双端开发,带技术文档管理后台和数据库.非常适合用来做类似项目的基础开发框架,能节省大量的开发时间和试错成本. 除了直播没有开通,其他功能都是精 ...
- 一个非常适合IT团队的在线API文档、技术文档工具
独乐乐,不如众乐乐. 之前单独写过一篇文章<介绍几款常用的在线 API 管理工具>,今天又发现个不错的工具,推荐给大家. ShowDoc 每当接手一个别人开发好的模块或者项目,看着那些没有 ...
- android技术文档怎么写,技术文档编写指南
技术文档编写指南 首先请阅读文案风格指南 ##学习产品使用方式 最重要的必备的条件就是: 一定要亲自使用这个产品,至少是一遍通顺的流程要走完,不要求每一个接口都一定使用过,但是一个完整的功能片段是使用 ...
- 在线API文档,技术文档工具源码ShowDoc
介绍: ShowDoc是一个非常适合IT团队的在线API文档.技术文档工具. 通过showdoc,你可以方便地使用markdown语法来书写出美观的API文档.数据字典文档.技术文档.在线excel文 ...
- 看懂英文技术文档,每天只需要10分钟做这件事……
程序员这个行业是很特殊的.之所以说特殊,就是因为它所有的技术大多来自欧美,所以最主流,最新鲜,最正确的技术文章都是英文,遗憾的是,大部分还没有译本. 有些译文还比较差.与其等待别人的翻译,不如直接阅读 ...
- 看懂英文技术文档,每天只需要10分钟做这件事…
程序员这个行业是很特殊的.之所以说特殊,就是因为它所有的技术大多来自欧美,所以最主流,最新鲜,最正确的技术文章都是英文,遗憾的是,大部分还没有译本. 有些译文还比较差.与其等待别人的翻译,不如直接阅读 ...
- HTML5开发APP技术文档
HTML5开发APP技术文档 一.环境参数 1.技术语言:HTML.CSS.ES6.Node.js等: 2.框架:Vue.js 2.x.Cordova: 3.开发系统:mac.windows等: ...
最新文章
- [c#]_ELVE_Message多功能用法
- 上海将打造“泛在化、融合化、智敏化”智慧城市
- 用python画四叶草代码-python—字符串拼接三种方法
- linux常用命令--diff
- Leet Code OJ 231. Power of Two [Difficulty: Easy]
- pacemaker+corosync实现集群管理
- C++不同数据类型的转换
- linux字符界面下安装鼠标,Linux下有趣的命令:安装oneko实现小猫追鼠标
- 《基于MFC的OpenGL编程》Part 18 Reading objects from the OBJ File Format
- asp.net 母版页使用详解--转
- LINUX下载并编译sqlite
- informix 如何下载
- eviews安装教程
- linux 编译cgal,Linux(Ubuntu)安装CGAL
- Java Word Tearing(字分裂)
- 微信小程序踩坑之wxml中有内容,但是页面上不显示
- 简单使用hbuildx把vue-cli项目打包,并使用electron转换成可执行的exe文件
- [置顶]R语言 ggplot2包
- Java Web应用开发——作业四
- 【解决】应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序。
热门文章
- 电脑黑客技术新手入门,自学黑客技术入门教程
- python电影推荐系统 github_GitHub - dawnsky2333/MovieRecommend: 一个电影推荐系统
- 数字人民币,摸着微信支付、支付宝过河
- P2051 [AHOI2009]中国象棋
- 基于STC89C52的土壤酸碱度采集并在LCD显示
- 使用VC2005编译真正的静态Qt程序-Qt中文论坛-夏威夷雪人
- 3D物体之间的引导线(LineRender方法)
- B.FRIENDit壁虎忍者RF600+MA003无线键盘鼠标套装 超薄静音键盘 无线鼠标键盘 台式笔记本电脑办公巧克力键盘黑色
- 阿斯利康英飞凡在华获批用于治疗广泛期小细胞肺癌;​君实生物与嘉晨西海成立合资公司 | 医药健闻...
- PHP数组函数基础知识