最全流媒体技术介绍,C C++面试题目

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

流媒体技术的特征就是流式传输,它使得流媒体数据可以像流水一样传输。

流式传输主要包括两种实现方式:顺序流式传输(progressive streaming)和实时流式传输(real time streaming)。需要根据具体需求决定采用哪种方式进行流式传输,下面就对这两种传输方式进行简单介绍。

3.1 顺序流式传输

在顺序流式传输模式下,用户在观看在线媒体的同时,也在下载文件。在这个过程中,用户只能观看已经下载完成的媒体内容,而不能直接观看未下载的部分。**因此,用户会在一段延时后,才能看到服务器传送过来的媒体内容。**由于标准的HTTP服务器就可以发送这种形式的媒体文件,因此流式传输也经常被称为HTTP流式传输。

由于顺序流式传输能够较好地保证节目的播放质量,因此比较适合在网站上发布的、可供用户点播的、高质量的视频。

顺序流式传输的文件存放在标准HTTP或FTP服务器上,易于管理,基本上与防火墙无关。

根据以上信息,能够知道“顺序流式传输”主要提现了流媒体技术的基本功能:无需下载完整的媒体文件,即可欣赏媒体内容。

3.2 实时流式传输

使用实时流式传输时,必须要保证与流媒体对应的带宽,以使媒体内容可以被用户实时观看到。用户在观看过程中,可以任意观看当前媒体内容之前或后面的内容。但是在这种传输方式中,如果网络状况不理想,会导致收到的图像质量比较差。

实时流式传输需要特定的服务器(如 Windows Media Server),这些服务器可以对媒体进行更多的控制,所以系统设置、管理比标准HTTP服务器更加复杂。

实时流式传输还需要特殊的网络协议,如 RTSP(realtime streaming protocol) 或 MMS(microsoft media server)。防火墙有时会对这些协议进行屏蔽,导致用户看不到不实时内容。

根据以上信息,能够知道“实时流式传输”更强度的是媒体传输的“实时性”,因此目前流行的视频直播行业,应属于“实时流式传输”功能的应用。

4 流媒体传输的网络协议

流媒体传输一般采用HTTP/TCP(RTCP)协议来传输控制信息,而用UDP(RTP)协议来传输实时媒体数据(TCP开销相对较大,所以不太适合传输实时数据)。

4.1 RTP(实时传输协议)

RTP(实时传输协议)通常用于实时数据的传输工作(一般使用UDP来传送数据)。

当应用程序开始一个RTP会话时,将开启两个端口:一个给RTP,一个给RTCP。RTP本身并不能为“按顺序传输数据包”提供可靠的传输送制,也不提供流量控制和拥塞控制服务,而是依赖RTCP提供这些服务。通常RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分来实现的。

4.2 RTCP(实时传输控制协议)

RTCP(实时传输控制协议)在RTP传输实时数据时,提供流量控制和拥塞控制服务。在RTP会话期间各参与者会周期性地传送RTCP包,RTCP包中含有已发送的数据包的数量、丢失的数据包数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。

RTP和RTCP配合使用,能通过有效的反馈和最小的开销,使传输效率最佳化,因此特别适合在互联网上传输实时数据。

4.3 RTSP(实时流协议)

RTSP(实时流协议)定义了一对多模式下如何有效地通过IP网络传送多媒体数据。

RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP(RTP)协议完成数据传输,如下图4.3-1(RTSP在网络体系结构中的位置)所示。

5 流媒体系统组成

流媒体系统包括以下五个内容:

  1. 编码工具:用于创建、捕捉和编辑多媒体数据,形成流媒体格式;
  2. 流媒体数据;
  3. 服务器:存放和控制流媒体的数据;
  4. 网络:适合多媒体传输协议(甚至是实时传输协议)的网络;
  5. 播放器:客户端通过播放器浏览流媒体文件。

以上五个部分有些是服务器需要的,有些是客户端需要的,而且不同的流媒体标准和不同公司的解决方案中,会在有些内容上有所不同。

6 流媒体技术涉及到的关键技术

流媒体技术不是一个单一的技术,它是网络技术与视音频技术的有机结合。

实现流媒体技术,需要解决流媒体的制作、发布、传输和播放等方面的问题,这些问题的解决需要利用到视音频技术和网络技术。下面具体讨论一下流媒体的这几个问题。

6.1 流媒体的制作

只有适合流媒体传输的流媒体格式文件才能在互联网上传输。因为一般的多媒体格式文件体积很大,因此在网络上传输时需要花费较长的时间,如果遇到网络繁忙等情况,还会造成传输中断。另外,一般格式的媒体文件也不能通过流媒体传输协议进行传输。

因此,需要先对待传输的文件进行预处理,将文件压缩成流媒体格式文件。此处主要包括两个要点:一是选用适当的压缩算法进行压缩,确保生成的文件体积较小;二是需要向文件中添加流式信息。

6.2 流媒体的传输

流媒体的传输需要合适的传输协议,在Internet上进行的文件传输大部分都建立在TCP协议的基础上,也有一些是通过FTP进行传输,但采用这些传输协议都不能满足流媒体的实时传输要求。

随着流媒体技术的深入研究,比较成熟的流媒体传输一般都是采用建立在UDP协议上的RTP/RTSP等实时传输协议。

为何要在UDP而不在TCP上进行实时数据的传输呢?因为两者在数据传输的速度和可靠性方面有很大的区别。TCP协议中包含了专门的数据传送校验机制,当数据接收方收到数据后,会自动向发送方发出确认信息,发送方在接收到该确认信息后,才会继续传送数据,否则将一直处于等待状态;而UDP协议则不同,UDP协议本身并不做任何数据传输校验。由此可以看出:TCP协议注重传输质量,而UDP协议则注重传输速度。因此,对于那些对传输质量要求不是很高,而对传输速度有很高要求的流媒体文件来说,采用UDP协议传输更为合适。

用户通过Web浏览器播放流媒体时,主要的交互过程如下:

  1. 用户选择流媒体服务后,Web浏览器与Web服务器之间使用 HTTP/TCP 交换控制信息,以便把需要传输的实时数据从原始信息中检索出来;
  2. Web浏览器启动A/V Helper程序,使用 HTTP 从Web服务器检索相关参数,然后对Helper程序初始化。这些参数可能包括目录信息、A/V数据的编码类型,或与A/V检索相关的服务器地址;
  3. A/V Helper程序及A/V服务器运行RTSP协议,以交换A/V传输所需的控制信息。与CD播放机或VCRs所提供的功能类似,RTSP提供了控制播放、快进、快倒、暂停及录制等命令的方法;
  4. A/V服务器使用RTP/UDP协议,将A/V数据传输给A/V客户程序(一般可认为客户程序等同于A/V Helper程序);
  5. 当A/V数据抵达客户端时,A/V客户程序即可播放A/V数据了。

需要说明的是,在流媒体传输过程中,使用RTP/UDP和RTSP/TCP两种不同的通信协议与A/V服务器建立联系,是为了能够把服务器的输出重定向到一个不同于运行A/V Helper程序所在客户端的目的地址。实现流式传输一般都需要专用服务器和播放器。

6.3 流媒体数据在客户端的缓存

在流媒体传输和播放过程中,客户端的缓存技术能够确保视音频数据正确、连续地播放。

6.3.1 纠正数据包顺序的缓存技术

因为Interent是以包为单位进行异步传输的,因此多媒体数据在传输中要被分解成许多包,由于网络传输的不稳定性,各个包选择的路由可能不同,所以到达客户端的时间次序就可能发生改变,甚至出现丢包的现象。因此,必须采用缓存技术来纠正数据包到达次序混乱的情况,利用缓存技术对到达的数据包进行正确排序,从而使视音频数据能正确地播放。

从技术角度来讲,纠正数据包顺序的缓存技术,属于流媒体传输过程接收侧的功能,主要目的是保证视音频内容可以正确地播放。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618668825)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值