直播入门体系杂谈
2017-03-15 16:55
246 查看
1、视频直播过程
整个过程:采集、处理、编码、封装、推流、传输、播放器、延迟优化
采集:从摄像头、屏幕、麦克风等采集流。摄像头或屏幕按帧数采集后形成原始得yuv格式得图片。
音频按照一定赫兹采集后得到AAC格式文件。
采集用yasea推送摄像头视频流和音频流到流媒体服务器
处理:适用滤镜等,进行美白、祛斑。此过程同时可以鉴黄。
编码:将直播视频进行压缩。原始格式太大,无法是存储、传输都不方便。
常用编码有libavcodec(免费)、h264(免费)、h245(收费)。
常见编码算法:时间冗余、空间冗余、逻辑冗余等等。
封装:将编码后的直播视频封装为flv等格式
推流:从客户端或PC端推流到流媒体服务器,由流媒体服务器再去分发到其他端。
可以是安卓客户端、IOS客户端或者PC端推流。
传输:推流所走的过程。
播放器:常见播放器如bilibili的ijkplayer(支持播放点播、直播等)被广泛应用在各个直播平台。
2、直播术语
视频是1s内连续图片个数>24帧,也就是>24个图片形成视频。
推流、拉流、分发
视频格式:flv、mp4等
压缩标准:视频、图像都采用MPEG国际标准。
adobe体系
AMF:是一种标准格式、rtmp传输过程中会将视频图片封装成AMF格式。
Flash:一种标准
Flv:一种视频格式
Flex:IDE开发平台
ActionScript:视频开发语言、开发技术。
3、直播技术杂谈
1)追溯视频直播:flv、mp4对大多数播放器支持。最早rtmp是adobe提出的私有化协议。后被西班牙工程师破解,开发出librtmp。完全从抓流分析出rtmp协议。后期苹果推出支持ios和h5的hls协议,开源。还有微软联合其他公司推出的rtsp协议,开源。再后来adobe放开了rtmp协议,不过据说至今没有全部开放。
2)关于ffmpeg:鼎鼎大名的ffmpeg是什么?ffmpeg是一个工具集、集合了从采集到传输的各个过程。是一个工具集。
3)关于直播每秒带宽:一般直播服务器每个用户连接观看直播消耗带宽500k~1.5M左右,视视频服务器、直播视频清晰度而定。
4)常见流媒体服务器:
收费:
鼎鼎大名的adobe的fms
开源免费:
RED5
基于java采用mina、spring框架编写的red5.部署繁琐。1000M带宽支持600~700用户并发连接。代码更新较慢
SRS(simple rtmp server)
国人编写的,速度很快,远超nginx-rtmp、远超red5。部署简单。单点支持9000+连接。代码更新较快
Nginx-RTMP
nginx的rtmp插件。部署适中。单点支持3000+连接。代码更新较快
fms没有用过,但是red5配置比较麻烦,srs可满足大部分需求并且性能不错。
5)关于ijkplayer:播放器这块,要注意不同的cpu架构对应的底层库也不相同。安卓设备大都相同。
6)流媒体类型分为顺序流媒体、实时流媒体
顺序流媒体常用于点播、实时流媒体常用于直播。
7)关于视频
常见的涉及视频的业务有:点播、直播、录屏
4、ijkplayer为播放器,可播放直播、点播。如果客户端需要主播能够直播推流,可使用github的yasea项目。进行推流到流媒体服务器。
整个过程:采集、处理、编码、封装、推流、传输、播放器、延迟优化
采集:从摄像头、屏幕、麦克风等采集流。摄像头或屏幕按帧数采集后形成原始得yuv格式得图片。
音频按照一定赫兹采集后得到AAC格式文件。
采集用yasea推送摄像头视频流和音频流到流媒体服务器
处理:适用滤镜等,进行美白、祛斑。此过程同时可以鉴黄。
编码:将直播视频进行压缩。原始格式太大,无法是存储、传输都不方便。
常用编码有libavcodec(免费)、h264(免费)、h245(收费)。
常见编码算法:时间冗余、空间冗余、逻辑冗余等等。
封装:将编码后的直播视频封装为flv等格式
推流:从客户端或PC端推流到流媒体服务器,由流媒体服务器再去分发到其他端。
可以是安卓客户端、IOS客户端或者PC端推流。
传输:推流所走的过程。
播放器:常见播放器如bilibili的ijkplayer(支持播放点播、直播等)被广泛应用在各个直播平台。
2、直播术语
视频是1s内连续图片个数>24帧,也就是>24个图片形成视频。
推流、拉流、分发
视频格式:flv、mp4等
压缩标准:视频、图像都采用MPEG国际标准。
adobe体系
AMF:是一种标准格式、rtmp传输过程中会将视频图片封装成AMF格式。
Flash:一种标准
Flv:一种视频格式
Flex:IDE开发平台
ActionScript:视频开发语言、开发技术。
3、直播技术杂谈
1)追溯视频直播:flv、mp4对大多数播放器支持。最早rtmp是adobe提出的私有化协议。后被西班牙工程师破解,开发出librtmp。完全从抓流分析出rtmp协议。后期苹果推出支持ios和h5的hls协议,开源。还有微软联合其他公司推出的rtsp协议,开源。再后来adobe放开了rtmp协议,不过据说至今没有全部开放。
2)关于ffmpeg:鼎鼎大名的ffmpeg是什么?ffmpeg是一个工具集、集合了从采集到传输的各个过程。是一个工具集。
3)关于直播每秒带宽:一般直播服务器每个用户连接观看直播消耗带宽500k~1.5M左右,视视频服务器、直播视频清晰度而定。
4)常见流媒体服务器:
收费:
鼎鼎大名的adobe的fms
开源免费:
RED5
基于java采用mina、spring框架编写的red5.部署繁琐。1000M带宽支持600~700用户并发连接。代码更新较慢
SRS(simple rtmp server)
国人编写的,速度很快,远超nginx-rtmp、远超red5。部署简单。单点支持9000+连接。代码更新较快
Nginx-RTMP
nginx的rtmp插件。部署适中。单点支持3000+连接。代码更新较快
fms没有用过,但是red5配置比较麻烦,srs可满足大部分需求并且性能不错。
5)关于ijkplayer:播放器这块,要注意不同的cpu架构对应的底层库也不相同。安卓设备大都相同。
6)流媒体类型分为顺序流媒体、实时流媒体
顺序流媒体常用于点播、实时流媒体常用于直播。
7)关于视频
常见的涉及视频的业务有:点播、直播、录屏
4、ijkplayer为播放器,可播放直播、点播。如果客户端需要主播能够直播推流,可使用github的yasea项目。进行推流到流媒体服务器。
相关文章推荐
- 经典教程翻译系列: 间接调用体系入门
- 音视频与直播入门
- NHibernate从入门到精通系列(2)——NHibernate环境与结构体系
- [Oracle入门]Oracle数据库体系结构
- 网络的五层协议体系---互联网协议入门
- 【杂谈】推荐书籍:Node.js入门
- 【小白入门教程】3 分钟搞明白直播中拖动不准的问题
- Win10 RTM开发者入门全球直播 8月12日13日每晚23:00请锁定Channel 9
- Android开发入门必看的知识体系
- Struts2入门基础之struts的简介和体系结构(二)
- HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID
- 直播 | Spring Boot入门
- HLS直播服务体系的探讨
- Oracle编程入门经典 第5章 体系结构
- JAVA从菜鸟【入门】到新手【实习】一一Python知识体系
- swool从入门到实战打造赛事直播
- 【广告算法工程师入门 32】从直播答题,跳一跳,抢红包等产品策略扯到用户受益商业变现
- Hibernate 入门之Hibernate简介和体系结构(一)
- android 入门之二【android 体系架构】
- Android开发入门必看的知识体系