C++大型流媒体项目-从底层到应用层千万级直播系统实战
流媒体是指将一连串的媒体数据压缩后,经过网络分段发送数据,在网上即时传输影音以供观赏的一种技术与过程。此技术使得数据包得以像流水一样发送,如果不使用此技术,就必须在使用前下载整个媒体文件。12
流媒体技术有三大操作平台,分别是微软公司、RealNetworks、苹果公司提供的,其中流式传输是实现流媒体的关键技术。流媒体技术可以大大缩短启动延时,用户不用等到所有内容都下载到硬盘上才能开始浏览,在经过一段启动延时后就能开始观看。此外,流媒体技术对系统缓存容量的要求也大幅降低,因为不需要把所有的文件都下载到缓存中。14
目前,流媒体业务基本可以分为流媒体点播(VOD)、流媒体直播以及下载播放三种典型业务模式。而流媒体平台方面,有诸如Netflix、Amazon Prime Video和迪士尼+等世界知名的流媒体巨头提供丰富的在线流媒体内容服务。
在流式传输的实现方案中,一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时声音数据。具体的传输流程如下:
(1)Web浏览器与Web服务器之间使用HTTP/TCP交换控制信息,以便把需要传输的实时数据从原始信息中检索出来。
(2)用HTTP从Web服务器检索相关数据,由A/V播放器进行初始化。
(3)从Web服务器检索出来的相关服务器的地址定位A/V服务器。
(4)A/V播放器与A/V服务器之间交换A/V传输所需要的实时控制协议。
(5)一旦A/V数据抵达客户端,A/V播放器就可播放。
一个完整的流媒体系统应包括以下几个组成部分。
◇编码工具:用于创建、捕捉和编辑多媒体数据,形成流媒体格式,这可以由带视音
频硬件接口的计算机和运行其上的制作软件共同完成。
◇流媒体数据.
◇服务器:存放和控制流媒体的数据。
◇网络:适合多媒体传输协议或实时传输协议的网络.
◇播放器:供客户端浏览流媒体文件。
网络视频直播系统应用流媒体技术在网络上进行直播,同时支持进行录播(系统自动录制,方便用户随时点播),用户访问指定的直播网站页面(URL),其访问请求导向发布服务器节点,获得流媒体数据,通过网页浏览器直接观看直播视频内容。![QQ截图20240606175130.png](https://static.golangjob.cn/240607/832e89675562501f67eb186916a3cf0f.png)
有疑问加站长微信联系(非本文作者)
![](https://static.golangjob.cn/static/img/footer.png?imageView2/2/w/280)