直播入门体系杂谈

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项目。进行推流到流媒体服务器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值