一、直播的技术架构:
实时视频捕获SDK(PC / IOS / Anddroid) - CDN直播
(直播流分发技术加速)——直播教学视频音乐播放器SDK(PC/IOS/Android)
二. 音频和视频处理的一般流程:
→数据→数据采集编码的传输数据(流媒体服务器)→→解码的数据重放显示
1、数据采集:
摄像机及拾音器收集视频及音频进行数据,此时可以得到的为原始信息数据
涉及技术或协议:
相机:CCD、CMOS
拾取:声电转换装置(麦克风),音频放大器电路
2、数据编码:
使用以及相关系统硬件或软件对音视频原始信息数据可以进行分析编码方式处理(数字化)及加工(如音视频混合、打包封装等),得到可用的音视频数据
涉及技术或协议:
代码:CBR、VBR
编码格式
视频:H.265,H.264,MPEG-4等,该包装容器具有TS,MKV,AVI,MP4等
音频:G.711μ,AAC,电视剧等,封装的MP3,OGG,AAC,等。
3、数据传输:
代码完成后音视频数据传输,早期音视频传输通过同轴电缆等电缆,进行IP网络开发,利用IP网络优秀传输..
涉及技术或协议:
传输网络协议:RTP与RTCP、RTSP、RTMP、HTTP、HLS(HTTP Live Streaming)等
控制信令:SIP和SDP,SNMP等
4、解码数据:
图像音频和编码相关的硬件或软件的视频数据进行解码所接收到的,可以直接显示获得/音频
涉及技术或协议:
一般企业对应的编码器都会带有相应的解码器,也有存在一些发展第三方进行解码插件等
5、播放显示:
在显示器(电视、显示器等)中显示图像或声音 或扬声器(耳机、喇叭等)
涉及技术或协议:
显示器,扬声器,3D眼镜等
三、常见的视频进行直播相关管理协议:
1. RTMP(实时消息协议、实时消息协议)
RTMP是服务器和音频,视频和开放协议的数据传输发展的Adobe的Flash播放器。它有三种形式:
1)、工作在TCP之上的明文规定协议,使用网络端口1935;
2)、RTMPT封装在HTTP请求进行之中,可穿越网络防火墙;
3),RTMPS类似RTMPT,但使用HTTPS连接;
RTMP协议是被Flash用于研究对象、视频、音频的传输。这个系统协议建立在TCP协议进行或者轮询HTTP协议之上。RTMP协议就像我们一个企业用来装数据包的容器,这些信息数据技术既可以是AMF格式的数据,也可以是FLV中的视音频数据。一个比较单一的连接方式可以同时通过分析不同的通道传输多路网络流,这些发展通道中的包都是学生按照公司固定成本大小的包传输的。
2. RTSP(实时流协议)
RTSP定义了许多应用程序如何在IP网络上传输有效的多媒体数据。 RTSP提供了一个可扩展的框架,数据源可以包括与存储在其中的现有数据的实时数据。该协议旨在控制多个数据传输连接,以选择的传输信道,如UDP,多点传送UDP和TCP提供途径,并选择基于RTP的输送机构提供的方法。
RTSP语法和运作跟HTTP/1.1类似,但并不需要特别强调学习时间进行同步,所以比较能容忍网络信息延迟。代理服务器的缓存功能也同样可以适用于RTSP,并且我们因为RTSP具有自己重新导向教育功能,可根据学生实际工作负载变化情况来切换问题提供技术服务的服务器,以避免过大的负载集中于同一服务器而造成延迟。
3. RTP(实时传输协议、实时传输协议)
RTP是用于多媒体数据流的传输层的协议,详细说明了音频和视频在互联网上的标准数据包传输格式。 RTP协议常用于流媒体系统(带RTCP协议),视频会议和按键通话系统(带有H.323或SIP),使它成为IP电话产业的技术基础。
RTP是建立在UDP协议上的,常与RTCP一起进行使用,其本身发展并没有我们提供按时发送机制或其它社会服务产品质量(QoS)保证,它依赖于低层人民服务去实现中国这一教学过程。
RTP 并不能够保证数据传送或防止企业无序传送,也不确定底层社会网络的可靠性,只管发送,不管学生传输技术是否丢包,也不管接收方是否有收到包。RTP 实行工作有序进行传送,RTP中的序列号允许接收方重组发送方的包序列,同时序列号也能用于研究决定一个适当的包位置,如在教学视频解码中,就不可能需要时间顺序解码。
如图4所示,RTCP(实时传输控制协议,实时传输控制协议)
RTCP是RTP的配套服务协议,为RTP媒体流提供信道外的控制。RTCP和RTP一起进行协作将多媒体信息数据可以打包和发送,定期在多媒体流会话参与者发展之间通过传输系统控制研究数据。
RTCP的主要功能是为RTP提供的服务质量(QoS)提供反馈,收集有关媒体连接的统计信息,如传输字节数、传输包数、丢失包数、单向和双向网络延迟等。 网络应用程序可以利用RTCP提供的信息来提高服务质量,例如限制流量或切换到压缩较少的编解码器。
四、利益相关
我们的团队正在做直播技术,底层架构还是不错的,开放给开发者和SDK API接口,开发者可以实现广播功能后访问。我们欢迎交流学习。我qq2479775187
这个专业知识的范围真的存在很大,涉及到编程语言功底、网络、流媒体、CDN、等等问题等等... 与其说知识不如说我们需要用到哪些信息技术,用这些都是开源的技术你可以在一周之内搭一个比较完整的网络进行视频直播管理系统。然后你再用这些数据技术反推你需要的知识,这样学生就不会导致他们学到没用的知识。
欢迎关注我们的公众号