直播原理

无论哪种直播,都离不开端与端之间的交互。

原理:

(1)通过计算机上的音视频输入设备或手机端的摄像头和麦克风实时录制音视频流;
(2)然后将音视频流编码;
(3)最后把编好码的数据包通过直播协议实时地发送给服务器;
(4)服务器再通过流媒体协议把数据包实时地分发出去;
(5)观看的终端通过直播协议实时请求数据包,并进行解码播放。

直播架构

主要由三部分组成:

(1)采集音视频数据然后推流的过程
在这一部分主要的工作有:采集音视频数据,对视频进行处理(如美顔),对音视频进行编码,最后通过流媒体协议向服务器发送数据包,完成推流过程。
这一部分常用到的技术:美顔使用GPUImage,音频编码使用faac,视频编码使用x264,推流框架使用librtmp

(2)服务器端对音视频数据的转存和分发的处理过程
服务器端主要工作有:转存和内容数据分发(即所谓的CDN)。服务器端还可以对音视频进行截屏,用于展示主播画面,还可以对音视频加水印,进行实时转码。当然它还可以进行录制视频的工作。服务器端常用到的技术有:SRS和Nginx。

(3)播放器进行音视频播放的拉流过程
首先要demux数据流,然后对音视频解码播放。当然直播通常都要有礼物特效和实时聊天互动的功能。常用到的技术有:FFmpeg解码库、VLC、ijkplayer、MediaCodec/MediaPlayer。

谢谢阅读!下一篇更精彩!

猜你喜欢

转载自blog.csdn.net/weixin_40763897/article/details/95243413