流媒体服务器设计文档
- 格式:doc
- 大小:681.50 KB
- 文档页数:9
流媒体服务器的搭建1.确定服务器的需求在开始搭建流媒体服务器之前,我们应该明确自己的需求。
例如,我们需要支持的用户数量、业务类型,以及预算等。
这些因素将指导我们选择合适的服务器硬件和软件。
2.选择流媒体服务器软件目前比较流行的流媒体服务器软件有Nginx、Apache、Wowza Media Server等。
根据自己的需求选择合适的服务器软件。
在本文中,将以Nginx为例进行搭建。
3.准备服务器硬件和操作系统根据自己的需求选择合适的服务器硬件,例如CPU、内存、硬盘等。
同时,选择一个支持的操作系统。
常用的操作系统有Linux(如Ubuntu、CentOS)、Windows Server等。
4.安装流媒体服务器软件5.配置流媒体服务器在安装完成后,需要进行一些配置工作。
例如,配置Nginx作为流媒体服务器、设置监听端口、支持的流媒体格式等。
在配置文件中,可以设置HTTP流媒体选项,如hls(HTTP Live Streaming)、rtmp(Real-Time Messaging Protocol)等。
6.创建流媒体内容在完成服务器的基本配置后,需要创建流媒体内容。
可以将音频、视频文件上传至服务器,或使用ffmpeg等工具进行转码。
转码后的内容保存在服务器上特定的目录中,供用户访问。
7.安全设置8.测试流媒体服务器在完成所有配置后,需要进行测试以确保服务器正常工作。
可以使用不同的终端设备,如电脑、手机、平板等,通过指定的URL访问流媒体内容。
如果能够正常播放,说明服务器搭建成功。
9.监控和维护流媒体服务器的搭建是一个持续的过程。
在运行过程中,需要定期进行监控和维护。
可以使用监控工具,如Nagios、Zabbix等,监控服务器的负载、带宽、连接数等。
同时,定期更新服务器软件和安全补丁,保持服务器的稳定和安全性。
总结流媒体服务器的搭建是一个复杂的过程,需要根据自己的需求选择合适的硬件和软件,并进行相应的配置和测试。
流媒体服务器的架构方法随着互联网的快速发展,流媒体(Streaming Media)成为了现代人们获取信息和娱乐的重要方式之一、流媒体服务器是实现流媒体传输的核心组件,其架构需要兼顾可扩展性、高效性和稳定性。
本文将介绍几种常见的流媒体服务器的架构方法,包括单服务器架构、分布式架构和云架构。
1.单服务器架构单服务器架构是最简单的流媒体服务器架构方法。
在这种架构中,一个服务器负责处理所有的流媒体传输请求。
它通常包括一个流媒体存储组件、一个流媒体处理组件和一个流媒体传输组件。
用户请求通过网络地址访问服务器,并经由流媒体传输组件传输给用户。
单服务器架构的优点是简单、易于管理和成本低廉。
然而,它的性能受限于单台服务器的处理能力和带宽。
当用户量增加时,服务器可能会出现性能瓶颈,导致流媒体传输的质量下降。
2.分布式架构为了克服单服务器架构的限制,可以采用将服务器分布到多个地理位置的分布式架构。
在这种架构中,整个系统可以由多台服务器组成,每台服务器都具有流媒体存储、处理和传输的能力。
同时,它们之间还需要一个负载均衡器来平衡用户请求的负载。
分布式架构的优点是可伸缩性好,可以根据用户量的增加自动添加更多服务器进行处理。
它还可以提高系统的稳定性,当其中一台服务器出现故障时,其他服务器可以继续提供服务。
然而,这种架构会带来管理和维护的复杂性,并且需要专门的负载均衡器来协调服务器之间的流量。
3.云架构云架构是最近流媒体服务器架构的发展趋势之一、它将分布式架构与云计算相结合,利用云平台提供的弹性计算和存储资源。
在这种架构中,流媒体服务器可以在云平台上进行部署,根据需要自动扩展或缩减容量。
云架构还可以利用分布在全球各地的云节点,提供更好的网络连通性和用户体验。
云架构的优点是高度灵活和可扩展,可以根据需求调整服务器容量,更好地适应用户的访问量。
而且,由于云服务提供商负责服务器的管理和维护,减轻了企业的负担。
然而,云架构也存在一些挑战,比如对云服务商的依赖性、数据安全性和网络延迟等。
ipc相机流媒体服务方案IPC相机(Internet Protocol Camera)是一种利用IP网络实现视频传输和监控的摄像机。
与传统的摄像机相比,IPC 相机具有以下优势:高图像质量、远程访问、集成智能功能、易于安装和管理等。
对于IPC相机的流媒体服务方案,可以考虑以下要素:1. 硬件设备选择与部署:- 选择高性能的IPC相机设备,支持高清图像传输和低延迟访问。
- 考虑相机的安装位置和角度,以获得最佳的监控效果。
2. 网络规划与配置:- 设计合理的网络拓扑结构,保证IPC相机与流媒体服务器之间的可靠连接。
- 考虑网络带宽和流量,保证视频流的稳定传输。
3. 流媒体服务器搭建:- 利用流媒体服务器软件(如FFmpeg、VLC等)搭建视频流传输服务,支持实时的视频流推送和接收。
- 配置服务器的存储空间,以保存录像和监控数据。
4. 数据传输与安全:- 采用常用的视频编码标准(如H.264)进行视频压缩和传输,以减少带宽占用。
- 添加加密机制,保证视频传输的安全性,防止数据被窃取或篡改。
5. 远程访问与管理:- 提供远程访问平台,支持用户通过云端服务或手机应用实时查看视频流,并进行必要的控制操作。
- 实现监控设备的远程管理,包括升级固件、配置参数等。
6. 视频数据存储与分析:- 考虑视频数据的存储需求,定期备份视频数据,以防止丢失。
- 利用智能算法对视频数据进行分析,实现视频内容分析、行为识别等功能,提高监控的智能化程度。
7. 报警与事件处理:- 设计报警机制,监测异常情况(如移动物体、声音等),及时发送报警通知给相关人员。
- 配置智能化规则,以实现自动化的事件处理,如根据特定规则触发自动录像、通知警察等。
8. 视频监控系统的扩展:- 根据实际需求,可以考虑扩展多个IPC相机,形成一个分布式的视频监控系统,并实现视频数据的集中管理。
总之,IPC相机流媒体服务方案需要综合考虑硬件设备、网络配置、流媒体服务器、数据传输与安全、远程访问与管理、视频数据存储与分析、报警与事件处理等多个方面。
局域网组建中的网络流媒体服务器搭建近年来,随着网络技术的飞速发展和物联网的兴起,局域网组建中的网络流媒体服务器搭建成为了许多企事业单位以及家庭用户的需求。
网络流媒体服务器的搭建能够实现高效的媒体资源共享和传输,提供便利的媒体回放和在线播放功能。
本文将介绍一种常见的局域网组建中网络流媒体服务器的搭建方案。
一、搭建硬件平台在搭建网络流媒体服务器之前,需要准备一台具备一定计算能力和存储容量的服务器。
服务器的选择可以根据实际需求来确定,一般建议选择具备较高处理能力和大容量硬盘的机型。
此外,还需要准备一台路由器来实现局域网内设备之间的互联。
二、选择适当的操作系统在网络流媒体服务器中,操作系统的选择至关重要。
常见的操作系统有Windows、Linux等。
对于Windows系统,可以选择Windows Server版本,而对于Linux系统,可以选择Ubuntu、CentOS等。
根据服务器的配置和管理员对操作系统的熟悉程度来选择适当的操作系统。
三、安装媒体服务器软件安装媒体服务器软件是搭建网络流媒体服务器的核心步骤。
目前,市面上有许多成熟的媒体服务器软件可供选择,如Plex、Emby等。
在选择媒体服务器软件时,应综合考虑其功能完善程度、稳定性和易用性等因素。
四、配置媒体库搭建好媒体服务器后,需要配置媒体库以进行媒体资源管理与共享。
媒体库包括音频、视频、图片等文件,可以将其分类整理并添加到媒体服务器软件中。
五、设置用户权限对于企事业单位或家庭用户而言,设置用户权限是确保媒体资源的安全性和合理使用的关键。
媒体服务器软件一般提供多用户管理功能,可以根据需要创建不同权限的用户账号,并设置对应的访问权限。
六、局域网内设备连接与配置在局域网内,各设备需要连接到媒体服务器来访问共享的媒体资源。
连接的方式可以通过局域网的IP地址或主机名来实现。
在连接之前,需确保设备与服务器处于同一局域网,并具备媒体服务器软件所需的客户端。
七、测试与调试搭建好网络流媒体服务器后,应进行测试和调试以验证其功能和性能的稳定性。
流媒体服务器搭建随着互联网的发展,流媒体逐渐成为了人们获取信息和娱乐的主要方式。
而搭建一个高质量的流媒体服务器,则可以有效地满足用户的需求。
本文将介绍几种常见的流媒体服务器搭建方法,帮助读者选择最适合自己的方案。
一、简介流媒体服务器是指用于存储、分发和传输多媒体内容的服务器。
它能够实时地将音视频数据流传输给终端设备,并且在传输过程中实现动态码流调整和自适应传输等功能。
二、搭建方案1. 使用开源流媒体服务器开源流媒体服务器具有自由、开放、可定制等特点,常见的有Nginx-RTMP、FFmpeg、VLC等。
以下是搭建Nginx-RTMP服务器的步骤:步骤1:安装Nginx服务器在Ubuntu系统上,可以通过以下命令安装:```sudo apt updatesudo apt install nginx```步骤2:安装Nginx-RTMP模块通过以下命令安装Nginx-RTMP模块:```sudo apt install libnginx-mod-rtmp```步骤3:配置Nginx-RTMP服务器编辑Nginx配置文件,添加RTMP服务器配置:```sudo nano /etc/nginx/nginx.conf```在http块中添加以下配置:```rtmp {server {listen 1935;application live {live on;record off;}}}```步骤4:重启Nginx服务执行以下命令重启Nginx服务:```sudo service nginx restart```2. 使用云服务提供商除了自己搭建流媒体服务器外,还可以选择使用云服务提供商的解决方案。
常见的云服务提供商有腾讯云、阿里云、AWS等。
这些云服务提供商通常提供了成熟稳定的流媒体解决方案,用户可以根据自己的需求选择不同的服务套餐。
3. 自建流媒体服务器集群当流媒体需求较大时,为了提供更好的用户体验和稳定性,可以考虑自建流媒体服务器集群。
Live555流媒体服务器-设计文档1 设计目的以Live555为平台搭建流媒体服务器,支持H.264视频流和G.729音频流两种实时流的直播功能,支持VLC、MPLAYER等标准流媒体客户端软件进行RTSP请求播放。
2 系统框架Live555流媒体服务器接收到来自网络的RTSP请求后,遵循RSTP协议的标准,处理建立RTSP会话的信令流程,并分配相应的资源,建立对应的媒体通道。
开始播放后,从摄像头和麦克风采集的音视频数据,视频数据在BF561子板上进行H.264编码,并将编码后的视频流通过SPORT口,交由BF536底板上的Live555流媒体服务器处理;音频数据直接由Live555流媒体服务器进行G.729编码。
Live555流媒体服务器根据RTSP协商的结果,将编码后的音视频数据封装为RTP数据,发送到请求的客户端。
系统的整体流程如下图1所示:图 1 系统流程说明3 系统设计在live555源码的基础上,进行二次开发。
Live555支持H.264源视频文件的流化,需添加对实时流直播的支持;已有优化的G.729编码库,需要添加在live555中添加对G.729音频编码格式的支持。
3.1 RTSP服务器参考live555源码mediaserver/目录下的live555MediaServer.cpp,实现媒体流请求的点播功能。
客户端(Client)与服务器(Server)之间的RTSP信令交互过程如下图2所示:Client Server图2 RTSP信令交互过程1.RTSP连接的建立过程RTSPServer类用于构建一个RTSP服务器,该类内部定义了一个RTSPClientSession类,用于处理单独的客户会话。
首先创建RTSP服务器(具体实现类是DynamicRTSPServer),在创建过程中,先建立set UpOurSocket(ourSocket)在TCP的554(或8554)端口进行监听,然后把连接处理函数句柄(RTSPServer::incomingConnectionHandler)和socket句柄传给任务调度器(taskScheduler)。
流媒体服务器的搭建本文档旨在提供一份详细的流媒体服务器搭建指南,以帮助用户快速搭建自己的流媒体服务器。
以下是搭建流媒体服务器的步骤。
1.搭建服务器环境1.1 选择合适的服务器硬件1.2 安装操作系统1.3 配置网络设置1.4 安装所需的软件和依赖项2.安装流媒体服务器软件2.1 选择合适的流媒体服务器软件2.2 并解压软件包2.3 根据软件提供的安装指南进行安装2.4 配置服务器软件的参数和选项3.配置流媒体服务器3.1 配置媒体存储位置3.2 配置媒体传输协议3.3 配置访问权限和安全选项3.4 配置流媒体服务的监控和日志记录4.测试流媒体服务器4.1 启动流媒体服务器4.2 使用流媒体客户端测试服务器的功能5.配置流媒体服务器的高级功能(可选)5.1 配置流媒体转码和转换5.2 配置流媒体录制和回放5.3 配置流媒体流量控制和负载均衡6.服务器维护和故障排除6.1 定期备份服务器数据6.2 监控服务器性能和状态6.3 解决服务器故障和错误7.附件本文档附带以下附件,可供参考和使用:- 附件1:流媒体服务器配置示例文件- 附件2:流媒体服务器安装和配置日志文件8.法律名词及注释- 流媒体:指通过计算机网络传输的音频、视频等多媒体数据- 服务器:指提供网络服务的计算机或软件程序- 硬件:指计算机的物理设备,如处理器、内存、硬盘等- 操作系统:指控制计算机硬件和软件资源的程序- 软件:指安装在计算机上用于完成特定任务的程序- 依赖项:指安装和运行某个软件所需的其他软件或库- 媒体存储位置:指媒体文件在服务器上的存储路径- 媒体传输协议:指流媒体数据传输时使用的网络协议- 访问权限:指对流媒体服务器进行访问和操作的权限- 安全选项:指保护服务器不受未经授权的访问和攻击的措施- 监控和日志记录:指对流媒体服务器的运行状态进行监控和记录- 流媒体客户端:指用于访问和播放流媒体的软件或设备- 流媒体转码:指将流媒体从一种编码格式转换为另一种编码格式- 流媒体录制:指将流媒体内容进行录制和存储- 回放:指对已录制的流媒体内容进行播放- 流量控制:指对流媒体传输的数据量进行控制和限制- 负载均衡:指将流媒体服务器的负载分布到多台服务器的技术。
二、管理Windows Media Services前面简单地使用了Windows Media Services的功能,接下来要详细了解Windows Media Services的管理与配置。
依次单击“开始”——“管理工具”——“Windows Media Services”,打开管理工具:图八当Windows Media Services安装后,就会自动创建一个发布点(包括点播与广播),发布点的点播视频主目录是:C:\WMPub\WMRoot。
单击“更改”按钮可以重新设置点播视频主目录。
在点播发布点的“属性”选项卡中,可以对Windows Media Services进行配置:图九“授权”下的“WMS IP地址授权”项是用来授权合法的IP地址才能访问Windows Media Services。
这样就可以有效地保护视频资源,只有经过授权的合法的IP段才能访问。
图十客户端IP地址授权图十一WMS 客户端日志记录如果开启了WMS客户端日志记录功能,客户对Windows Media Services 的所有访问将被记录在日志文件里面。
图十二“限制”“限制”里面共有八个设置项,主要是用来限制客户端与Windows Media Services的连接及速率。
图十三广播发布点三、实况广播的应用下面我们要做一个实时视频广播的实例。
Windows Media Services安装时自动创建的广播发布点不能用于实时视频流广播,我们需要新创建一个广播发布点(或由编码器自动创建)。
还需要说明的时,实时视频采集/编码器与Windows Media Services服务器不在一台计算机上。
拓扑图如下:图十四实时视频流广播拓扑图在图十四中“视频采集编码计算机”上的操作系统是Windows XP Professional,安装有Windows Media Encode,或者称之为视频编码器,“流媒体服务器”是Windows Server 2003安装了Windows Media Services组件。
WebRTC进阶流媒体服务器开发(⼀)多⼈互动架构⼀:多⼈互动架构⽅案(⼀)WebRTC回顾,两层含义:1.WebRTC是google开源的流媒体客户端,可以进⾏实时通讯,主要应⽤于浏览器之间进⾏实时通讯,也可以单独编译在⾃⼰的应⽤中2.WebRTC也是⼀套规范,只对客户端做了定义,如何进⾏媒体协商、通信流程...;对于服务端,⽐如信令服务端、中继服务,并没有在WebRTC中定义,由⼚商定义;对于多⼈互动⽅案也没有定义(⼆)3种框架进⾏多⼈互动Mesh⽅案:从WebRTC客户端演变过来,多⼈互动--->变为多个1V1通讯,会导致⽹络连接过多,任⼀个客户端都需要与其他客户进⾏连接,带宽占⽤过多,不适⽤商业MCU⽅案:硬件演变为软件,包含⼀个中⼼服务器。
中⼼服务器会对多路视频进⾏混屏(解码、编码),降低带宽,占CPU,⽀持的同时在线⼈数有限。
此外,客户端⽆法对其进⾏控制,灵活性较差。
SFU⽅案:简单、主流,不对数据处理,当服务器收到数据后直接进⾏数据转发,只进⾏转发。
每个客户端都会收到其他客户端通过服务器转发过来的数据,但是相对于Mesh,建⽴的连接只和服务器个数有关。
并且相对于MCU,客户端对于接受的其他各个客户端的数据可以进⾏灵活控制。
缺点:相对有MCU传输的数据更多,造成客户端到服务端的带宽占⽤过⾼,带宽不够时会造成丢包,服务质量⽆法保证!改进⽅法:1.降低码流(上传时/发送时)2.根据H264中SVC分层⽅式,将⼀路视频分为核⼼层、扩展层、边缘层,⼀层⽐⼀层清晰(增量累加),当带宽⾜够时可以全部下发给客户端,不够时可以选择传输核⼼层或者核⼼层+扩展层从⽽降低下⾏带宽数量,缓解质量不⾜问题⼆:架构模型详解(⼀)Mesh架构模型详解1. 1V1通讯模型2. Mesh通讯模型(未画出信令服务器)Mesh⽅案,不依赖于服务器进⾏数据中转(不会⾛TURN),是各个端之间建⽴连接。
内部同1V1进⾏设备检测、数据编解码、媒体协商、建⽴连接、发送数据。
Live555流媒体服务器-设计文档1 设计目的以Live555为平台搭建流媒体服务器,支持H.264视频流和G.729音频流两种实时流的直播功能,支持VLC、MPLAYER等标准流媒体客户端软件进行RTSP请求播放。
2 系统框架Live555流媒体服务器接收到来自网络的RTSP请求后,遵循RSTP协议的标准,处理建立RTSP会话的信令流程,并分配相应的资源,建立对应的媒体通道。
开始播放后,从摄像头和麦克风采集的音视频数据,视频数据在BF561子板上进行H.264编码,并将编码后的视频流通过SPORT口,交由BF536底板上的Live555流媒体服务器处理;音频数据直接由Live555流媒体服务器进行G.729编码。
Live555流媒体服务器根据RTSP协商的结果,将编码后的音视频数据封装为RTP数据,发送到请求的客户端。
系统的整体流程如下图1所示:RTP音视频流图 1 系统流程说明3 系统设计在live555源码的基础上,进行二次开发。
Live555支持H.264源视频文件的流化,需添加对实时流直播的支持;已有优化的G.729编码库,需要添加在live555中添加对G.729音频编码格式的支持。
3.1 RTSP服务器参考live555源码mediaserver/目录下的live555MediaServer.cpp,实现媒体流请求的点播功能。
客户端(Client)与服务器(Server)之间的RTSP信令交互过程如下图2所示:Server图2 RTSP信令交互过程1.RTSP连接的建立过程RTSPServer类用于构建一个RTSP服务器,该类内部定义了一个RTSPClientSession类,用于处理单独的客户会话。
首先创建RTSP服务器(具体实现类是DynamicRTSPServer),在创建过程中,先建立se tUpOurSocket(ourSocket)在TCP的554(或8554)端口进行监听,然后把连接处理函数句柄(RTSPServer::incomingConnectionHandler)和socket句柄传给任务调度器(taskSchedu ler)。
任务调度器把socket句柄放入后面select调用中用到的socket句柄集(fReadSet)中,同时将socket句柄和incomingConnectionHandler句柄关联起来。
接着,主程序开始进入任务调度器的主循环(doEventLoop),在主循环中调用系统函数select阻塞,等待网络连接。
当RTSP客户端输入(rtsp://192.168.0.1/test.264)连接服务器时,select返回对应的scoket,进而根据前面保存的对应关系,可找到对应处理函数句柄,这里就是前面提到的incomingConnectionHandler了。
在 incomingConnectionHandler中创建了RTSPClient Session,开始对这个客户端的会话进行处理。
2.DESCRIBE请求消息处理过程RTSP服务器收到客户端DESCRIBE请求后,根据请求URL(rtsp://192.168.0.1/test.2 64),找到对应的流媒体资源,返回响应消息。
live555中的ServerMediaSession类用来处理会话中描述,它包含多个(音频或视频)的子会话描述(ServerMediaSubsession)。
RTSP服务器收到客户端的连接请求,建立了RTSPClientSession类,处理单独的客户会话。
在建立RTSPClientSession的过程中,将新建立的socket句柄(clientSocket)和RTSP请求处理函数句柄 RTSPClientSession::incomingRequestHandler传给任务调度器,由任务调度器对两者进行一对一关联。
当客户端发出RTSP请求后,服务器主循环中的select调用返回,根据socket句柄找到对应的incomingRequestHandler,开始消息处理。
先进行消息的解析,如果发现请求是D ESCRIBE则进入handleCmd_DESCRIBE函数。
根据客户端请求URL的后缀(如test.264),调用成员函数DynamicRTSPServer::lookupServerMediaSession查找对应的流媒体信息 Serv erMediaSession。
若ServerMediaSession不存在,但是本地存在test.264文件,则创建一个新的 ServerMediaSession。
在创建ServerMediaSession过程中,根据文件后缀.264创建一个子会话描述H264VideoFileServerMediaSubsession。
最后由ServerMediaSession完成组装响应消息中的SDP信息(SDP组装过程见下面的描述),然后将响应消息发给客户端,完成一次消息交互。
SDP消息组装过程:ServerMediaSession负责产生会话公共描述信息,子会话描述由 H264VideoFileServe rMediaSubsession产生。
H264VideoFileServerMediaSubsession在其父类成员函数 OnDem andServerMediaSubsession::sdpLines()中生成会话描述信息。
在sdpLines()实现里面,创建一个虚构(dummy)的FramedSource(具体实现类为H264VideoStreamFramer)和RTPSink (具体实现类为SimpleRTPSink和 H264VideoRTPSink),最后调用setSDPLinesFromRTPSin k(...)成员函数生成子会话描述。
3.SETUP请求消息处理过程RTSPClientSession类用于处理单独的客户会话。
其类成员函数handleCmd_SETUP()处理客户端的SETUP请求。
调用parseTransportHeader()对SETUP请求的传输头解析,调用子会话(这里具体实现类为OnDemandServerMediaSubsession)的getStreamParameters()函数获取流媒体发送传输参数。
将这些参数组装成响应消息,返回给客户端。
客户端发送两个SETUP请求,分别用于建立音频和视频的RTP接收。
4.PLAY请求消息处理过程RTSPClientSession类成员函数handleCmd_PLAY()处理客户端的播放请求。
首先调用子会话的startStream(),内部调用MediaSink::startPlaying(),然后是 MultiFramedRTP Sink::continuePlaying(),接着调用 MultiFramedRTPSink::buildAndSendPacket()。
bui ldAndSendPacke内部先设置RTP包头,内部再调用MultiFramedRTPSink::packFrame()填充编码帧数据。
packFrame内部通过FramedSource::getNextFrame(), 接着MPEGVideoStreamFramer:: doGetNextFrame(),再接着经过MPEGVideoStreamFramer::continueReadProcessing(),Fr amedSource::afterGetting(...), MultiFramedRTPSink::afterGettingFrame(...), Mult iFramedRTPSink::afterGettingFrame1(...)等一系列繁琐调用,最后到了 MultiFramedRT PSink::sendPacketIfNecessary(), 这里才真正发送RTP数据包。
然后是计算下一个数据包发送时间,把MultiFramedRTPSink::sendNext(...)函数句柄传给任务调度器,作为一个延时事件调度。
在主循环中,当MultiFramedRTPSink::sendNext()被调度时,又开始调用MultiFramedRTPSink::buildAndSendPacket(...)开始新的发送数据过程,这样客户端可以源源不断的收到服务器传来的RTP包了。
5.TEARDOWN删除会话过程代码实现如下所示:else if (strcmp(extension, ".264") == 0) {NEW_SMS("H.264 Video");OutPacketBuffer::maxSize = 100000; // allow for some possibly large H.264 frames sms->addSubsession(H264VideoFileServerMediaSubsession::createNew(env, reuseSource));sms->addSubsession(G729ServerMediaSubsession::createNew(env, reuseSource));//add by yezi}3.2 H.264视频流化获取发送传输参数的过程:调用子会话(具体实现类H264VideoServerMediaSubsessio n)的 createNewStreamSource()创建H264liveSource视频数据源,选择发送传输参数,并调用子会话的createNewRTPSink()创建H264VideoRTPSink。
同时将这些信息保存在Stream State类对象中,用于记录流的状态。
H.264视频实现相关类图如图3所示:图3 H.264视频实现类图H.264视频流解析过程如图4所示:图4 H.264视频流解析过程3.3 G.729音频编码与流化获取发送传输参数的过程:调用子会话(具体实现类G729AudioServerMediaSubsessio n)的 createNewStreamSource()创建G729AudioSource视频数据源,选择发送传输参数,并调用子会话的createNewRTPSink()创建SimpleRTPSink。
同时将这些信息保存在StreamS tate类对象中,用于记录流的状态。
G.729音频实现相关类图如图5所示:图5 G.729音频实现类图G.729音频流解析过程如图6所示:图6 G.729音频流解析过程4 系统实现系统整体的类图结构如下所示:1. Medium2.RTSPServer2.RTSPOverHTTPServer2.MediaSession2.ServerMediaSession2. ServerMediaSubsession3. OnDemandServerMediaSubsession4. FileServerMediaSubsession5. H264VideoFileServerMediaSubsession4. G711ServerMediaSubsession2. MediaSource3. FramedSource4. H264VideoSource4.G711AudioSource2. MediaSink3.RTPSink4. MultiFramedRTPSink5. MPEG4GenericRTPSink5. VideoRTPSink6. H264VideoRTPSink5. SimpleRTPSink2.RTCPInstance2.RTSPClient4.1 RTSP会话管理参照 live555MediaServer.cpp和DynamicRTSPServer.*改写,实现媒体流的点播功能(简化即可)。