流媒体服务器设计文档
FMS流媒体服务器设置

FMS流媒体服务器设置众所周知,Macromedia Flash Communication Server和Macromedia Flash Player组合为视频会议应用提供了令人激动人心的可行性。
在硬件的选择和软件参数设置上面依然是很繁重的和不可思议的。
开发人员时常需要处理声音同步,画面突然定格以及延迟问题。
甚至是经验丰富的Macromedia Flash开发人员,开发一个高质量的以Flash技术为基础视频会议应用也成为一个挑战,因为要面对眼花缭乱的摄像设备,网络环境和软件设置。
然而,当今很多的Flash Communication Server应用中,客户需要使用Flash技术来创造出高质量的视频会议系统。
2004年,在为客户们开发这一类项目期间,我们对宽带交互视频应用的性能优化方面作了重要的研究,我们的目标是,在视频质量与音频质量之间找到一个好的平衡,限制CPU和带宽的占用,以减少跳帧、延迟和声音不同步等问题。
我们很高兴将我们的发现以白皮书的形式推荐给Flash开发员社区在Flash Communication Server开发领域是被公认的专家级的领导性公司。
我们世界级的团队创造了很多的方案将那些限制变成可能。
嵌入式开发,实时多用户模拟,快速的原型开发和实时商务协作应用方面,都是我们专攻的领域。
很多运行在桌面电脑上的视频会议应用在CPU占用和带宽上都非常的消耗资源。
为了得到一个优化的结果,需要在视频会议应用的视频音频质量和资源消耗上面发现一个平衡点,同时不会出现跳帧,停滞,或者音频不同步等现象硬件选择上的捉襟见肘和不恰当的软件设置经常会造成不愉快的视频会议体验,而且那么多复杂的选项看上去创造出一个高质量的视频会议体验几乎是不可能的,即使是提供了最好的开发工具。
这使客户和开发人员都很气馁,可以确信甚至是在当今的技术条件下,视频会议应用也很难达到不同人群对丰富的音频和栩栩如生的视频的要求优化硬件设置和软件设置是明智的选择,但是也会造成下面三个结果,要么是一个小故障不断的应用,要么是一个根本无法使用的应用,和一个让人感动的满足客户期望的高质量应用。
流媒体服务器方案

流媒体服务器方案
一、引言
流媒体服务作为现代信息传输的重要方式,对服务器系统提出了更高的要求。本方案旨在设计一套符合行业标准、性能卓越、安全可靠的流媒体服务器方案,以满足日益增长的高质量流媒体服务需求。
二、需求分析
1.高并发处理能力:服务器需能处理大量的并发请求,保证服务的流畅性。
2.低延迟传输:确保流媒体数据传输的实时性,降低播放延迟。
数据库:使用MySQL等关系型数据库,确保数据管理的规范性。
缓存系统:采用Redis等高性能缓存技术,提高系统响应速度。
3.安全设计
数据加密:对敏感数据进行加密存储,保护用户隐私。
传输安全:使用SSL/TLS协议加密数据传输,防止中间人攻击。
访问控制:实施严格的访问控制策略,确保只有授权用户能访问数据。
(3)数据库:选用关系型数据库,如MySQL、PostgreSQL等;
(4)缓存:采用Redis等高性能缓存技术。
4.数据安全
(1)遵循我国相关法律法规,对用户数据进行加密存储;
(2)采用HTTPS协议,保障数据传输安全;
(3)定期进行数据备份,防止数据丢失。
5.性能优化
(1)负载均衡:采用一致性哈希算法,实现负载均衡;
3.优化用户体验,提高服务器稳定性;
4.方便后期扩展,降低运维成本。
三、技术方案
1.系统架构
本方案采用分布式架构,分为前端、后端和存储三部分。
(1)前端:负责用户接入、请求分发和负载均衡;
(2)后端:处理流媒体数据,提供编码、解码、转码等功能;
(3)存储:存储流媒体数据,提供高效的数据访问。
2.硬件选型
流媒体服务器方案
第1篇
流媒体服务器方案
流媒体服务器功能的设计和实现

t u f lt e lc lvd o eh ia n o a in h s :MPE I r jc a e n a s c n e eo me t o sse twih sa d r o fli h o a ie .tc n c lin v to a l G4 P p oe tb s d o eo d d v lp n ,c n it n t tn a d
刘 荷 花
( 太原 大 学 太原
0 00 ) 3 0 9
【 摘 要】 分 析 了流媒 体直播 服 务器 的功 能 需求 ,设 计 了流媒 体直播 服 务器 的功 能 。 以主 要 函数 的描述 为 中心 , 以主 要 函数 的流程 为 线 索, 过编 写 管理 员界 面及 子对 话框 来 实现 管理及 设 置服 务器 功能 。 通 利用 MP G4P编 码 E I 库 实现 MP G4的软编 码 ,监 听客 户端 的发 送请 求 ,利用 RTP协议传 输 数据 实现 客 户端 的直播请 求 ,调 用 S L E D
Itr e n en t网络 技 术 的飞 速 发 展 , 人 类 日常 生 活 对
教 育学 生 8 0 00 0多人 。而 在 流媒 体技 术应 用 中 , 流媒 体 直播 服务 器 系统功 能 的设 计 与实现 , 关键 。 是
和 工作 方 式 产生 了深刻 的影 响 , 对传 统 的教 育 教学 也 模式 产生 了极 大 的挑 战 。其 中把流媒 体 技术 应用 于教 育上 , 打破 传 统 的面授 教学 , 近教 师与 学生 之 间的距 拉 离, 构建 网络 环境 下 的教学模 式 与课 程模 式 , 是一 个全 新 的课题 。网络学 校 、 网上课 堂 、 在线 答 疑等 新 的教学 模式 的 出现成 为 2 世 纪教 育改 革发 展 的新趋 势 [ 。 1 1 ] 信息 技术 在 欧洲 和美 国的教 育 中 已经成 为变 革 的 推动 力 , 过 去 十年 中尤为 如此 。 在 老师 不再 仅仅 手 持粉 笔 和 板 擦 , 是 配 备 有 电 脑 、 听 器 材 以 及 各 种 各 样 而 视 I T设 备 。在 学校 和公共 的 图书 馆里 , 所见 到 的不 再 你 仅仅 是 一排 排 落 满灰 尘 的 书籍 , 随处 可 见 的则 是大 量 的 利用 I T来 进 行 学 习 的各 种 资料 、 种 视 听 材 料 以 各
流媒体直播服务器的设计和实现

设置服 务 器功 能, 实现符合 MP G E 4标准 的音视 频数据 。分析 了流媒体直播服 务器的功 能需求 . 用 M E 4 P编 利 P GI 码库 实现 MP G E 4的软 编码 , 设计 了流媒体直播 服务器的功能。实验 显示 , 采用 S L技 术 实现 了在 unx平 台显示 D u
校、 网上课堂 、 在线答疑等新 的教学 模式 , 正成 为 2 世 纪教 1
流媒体直播服务器系统的信息处理流程为 : 开启管理员
界面 , 根据对音视频参数 的设置开始配置音 、 视频参数 , 然后
育改革发展的新趋势 J 。在 流媒 体技术应用 中, 流媒 体直播
服务器系统功能 的设计与实现 , 是关键 。
21 年第4 02 期
文章编号 :6 44 7 (0 2 0 .0 00 17 —5 8 2 1 )4 0 7 .2
山西 电子技 术
网络 技 术
流媒 体 直 播 服 务 器 的 设 计 和 实现 冰
刘 三 满
( 山西警官高等专科学校 , 山西 太原 002 ) 30 1
摘 要: 以主 要 函数 的 描 述 为 中心 , 以主 要 函数 的流 程 为线 索 , 过 编 写 管理 员 界 面 及 予 对 话 框 来 实现 管理 及 通
基 础组 件 部 分 的设 计 主 要 完 成 对 音 、 频 参 数 的 设 置 , 视
的需求 。基于 S L技 术实 现在 Lnx平 台显示播 放 。基 于 D u
R PR S T / T P协议 实现音视频 数据 的传输 。
2 流媒体 直 播服 务器 的功 能设计
直播服务器 旨在提供一种立体的 、 视音频等多种媒 体相 整合的 、 可交互的 、 具有多种体验的基于超媒体 、 超链接 的教 学形式 。这种教学形式有利于教师之 间业务的相互学 习, 可 有效提高学生多种技能的培训效果 , 增进 与其他学校 之间的 文化 、 活动交流。直播服务器 应该主要 提供 以下 的功能 : 系
带有激励机制的P2P数字机顶盒流媒体服务器的设计

如果 采用 传 统 的流 媒 体 服 务 器 对 P P网络 中 2 的数 字 机 顶 盒 节 点 提 供 服 务 , 然 不 能 充 分 利 用 显
P P网络 中的优 良特性 。本文 试图 规划 出一种 新 的 2
方案 , P P网络 中激励 机 制 的思 想 引 入到 P P数 将 2 2 字机 顶盒 流媒 体服 务 器 中来 , 用 P P数 字 机 顶盒 使 2 流媒 体 服 务 器 对 P P网络 中的 机 顶 盒 节 点 进行 激 2 励 , 而达 到提 高 P P网络效 率 的 目的。 从 2
越广 J 。流媒 体服 务器 是 I V后 台服 务 系 统 的 一 部分, 作用 在 于 向客户 端 提 供 音视 频 数 据 的直 播 和
P P所 特 有 的优 点 , 数 字 机 顶 盒 系统 中 引入 P P 2 在 2 技术 , 能有 效地 减轻 服 务器负 载 , 分利 用带 宽 和客 充
P P模 式 , 是 解 决 这 个 问 题 的 最 好 方 法 。 由 于 2 则
0 引 言
P P是 pe t pe 缩 写 , 2 ero er的 即对 等 网络 。 PP 2 技 术 出现 以后 由于其 自适 应性 , 自我组 织性 , 负载 平 衡 性 , 性 以及 集 中 和利 用 大 量 资 源 的能 力 而 大 容错 受欢 迎 ¨ 。未来 无所 不 在 的 大规 模 , J 高消 耗 的 网 络 应 用 必将 使 得 P P技 术 在 设 备 交 互 时 使 用 得 越 来 2
中的激励机制 引入到流媒体服务 器中, 由流媒体服务器 实现对 P P网络 中的数 字机 顶盒 节点激励 的方案 , 2 并且使 用军备竞 赛模 型探讨 了这种 方案 的有效性 。分析 结果证 明本方案切 实可行 。
局域网组建中的网络流媒体服务器搭建

局域网组建中的网络流媒体服务器搭建近年来,随着网络技术的飞速发展和物联网的兴起,局域网组建中的网络流媒体服务器搭建成为了许多企事业单位以及家庭用户的需求。
网络流媒体服务器的搭建能够实现高效的媒体资源共享和传输,提供便利的媒体回放和在线播放功能。
本文将介绍一种常见的局域网组建中网络流媒体服务器的搭建方案。
一、搭建硬件平台在搭建网络流媒体服务器之前,需要准备一台具备一定计算能力和存储容量的服务器。
服务器的选择可以根据实际需求来确定,一般建议选择具备较高处理能力和大容量硬盘的机型。
此外,还需要准备一台路由器来实现局域网内设备之间的互联。
二、选择适当的操作系统在网络流媒体服务器中,操作系统的选择至关重要。
常见的操作系统有Windows、Linux等。
对于Windows系统,可以选择Windows Server版本,而对于Linux系统,可以选择Ubuntu、CentOS等。
根据服务器的配置和管理员对操作系统的熟悉程度来选择适当的操作系统。
三、安装媒体服务器软件安装媒体服务器软件是搭建网络流媒体服务器的核心步骤。
目前,市面上有许多成熟的媒体服务器软件可供选择,如Plex、Emby等。
在选择媒体服务器软件时,应综合考虑其功能完善程度、稳定性和易用性等因素。
四、配置媒体库搭建好媒体服务器后,需要配置媒体库以进行媒体资源管理与共享。
媒体库包括音频、视频、图片等文件,可以将其分类整理并添加到媒体服务器软件中。
五、设置用户权限对于企事业单位或家庭用户而言,设置用户权限是确保媒体资源的安全性和合理使用的关键。
媒体服务器软件一般提供多用户管理功能,可以根据需要创建不同权限的用户账号,并设置对应的访问权限。
六、局域网内设备连接与配置在局域网内,各设备需要连接到媒体服务器来访问共享的媒体资源。
连接的方式可以通过局域网的IP地址或主机名来实现。
在连接之前,需确保设备与服务器处于同一局域网,并具备媒体服务器软件所需的客户端。
七、测试与调试搭建好网络流媒体服务器后,应进行测试和调试以验证其功能和性能的稳定性。
多路视频监控中流媒体服务器的设计与实现

华中科技大学硕士学位论文多路视频监控中流媒体服务器的设计与实现姓名:朱龙成申请学位级别:硕士专业:通信与信息系统指导教师:程文青20090522摘要近年来,随着互联网传输技术和多媒体技术不断发展,基于这些技术的各种应用越来越普遍。
远程网络视频监控就是其中一个得到充分发展的应用,该应用取代了原始的人工现场监视,从而大大的节约了人力物力。
视频监控经历了模拟视频监控、局域网内数字视频监控,到现在的广域网内数字视频监控过程。
多路视频监控系统是以视频编解码和IP网络传输技术为核心的监控设备的实现,流媒体服务器模块是其关键部分,是其他功能得以实现的平台。
本文介绍了数字视频监控产品的发展状况,针对流媒体服务器部分作了深入研究和分析。
首先根据嵌入式下多路监控系统软件的功能需求,设计了流媒体服务器模块的软件架构。
然后,选择H.264作为视频压缩算法,实现视频采集与编码模块,该部分主要基于H.264的视频编解码硬件引擎。
接着实现了数据传输和传输控制部分,并实现了一种保障传输质量的码率控制方案。
接着又进行了详细的测试。
测试结果表明,该嵌入式流媒体服务器模块达到了系统功能和性能需求,能够很好的在多种网络环境下工作,媒体传输和播放质量良好。
最后,论文对课题取得的主要成果加以总结,并对今后进一步的研究工作进行展望。
本文的意义在于,针对特定的应用场景,设计了适用于多种环境下的监控软件架构,针对H.264数据包的特点设计了保证服务质量的传输方案,设计了基于发送端的自适应网络带宽的数据传输和码率控制的方案,解决了嵌入式流媒体系统中数据自适应传输问题。
关键词:多路监控;流媒体服务器;H.264;实时传输;实时流;质量保证AbstractIn recent years, with the Internet transmission technology and multi-media technology developing, a wide range of applications based on such technologies become more and more popular. Network video surveillance is one of the applications been fully developed. It replaces the artificial scene surveillance, thus saving the human and material resources. Video surveillance experienced analog video surveillance, digital video monitoring in LAN and digital video surveillance in WAN. Multi-channel video surveillance system based on video codec and IP network transmission technology is the realization of the monitoring equipment. Streaming media module is the key part and is the base of other features of monitoring.This thesis describes the digital video surveillance development, researches and analyzes streaming media server in depth. First of all, according to the functional requirements of multi-channel monitor on embedded system, the author designs software architecture of streaming media server modular, then chooses H.264 as video compression algorithm to realize the video capture and encoding modules, which is mainly based on the hardware engine of H.264 video codec, realizes the data transmission, control parts and achieve a method of quality guarantee of transmission rate control program. The thesis carries out a detailed test. Test results show that the embedded streaming media server module is able to satisfy the system functionality and performance needs, able to work well in kinds of network environment, the media transmission and playing quality are good. At the end, this thesis gives the summary of the main results and future prospects of the research.The significance of this thesis is, aiming at application-specific scenarios, it designs software architecture of monitoring for different network environment, designs a solution to ensure quality of service, solves adaptive data transmission problem in the embedded streaming media system, designs a rate control program adapting network bandwidth based on the sender.Keywords: Multi-surveillance;Streaming Media Server;H.264; RTP;RTSP;QoS图表索引图 2-1流媒体系统组成 (4)图 2-2 RTP/RTCP协议栈 (7)图 2-3 RTP头部信息 (8)图 2-4基于RTSP服务器架构 (9)图 3-1 监控应用系统架构 (10)图 3-2流媒体系统的软件架构 (11)图 3-3 监控系统工作流程 (12)图 3-4 视频采集流程 (14)图 3-5 H.264句法分层结构 (15)图 3-6 H.264的编码码流 (15)图 3-7 视频编码流程 (16)图 3-8 系统传输架构 (17)图 3-9 数据打包结构 (17)图 3-10 NAL单元头部 (18)图 3-11 数据传输流程 (19)图 3-12 RTSP协议栈 (20)图 3-13 会话状态转换 (21)图 3-14 QoS算法 (22)图 4-1 系统开发环境 (24)图 4-2 会话服务流程 (28)图 4-3 发送缓存 (30)图 5-1 测试拓扑结构 (33)图 5-2 客户端监控画面 (33)表 3-1 NAL头部TYPE类型 (18)表 5-1 测试设备列表 (32)表 5-2 监控功能测试 (34)表 5-3 会话控制测试 (34)表 5-4 编码配置调节测试 (34)表 5-5 四路监控测试 (35)表 5-6并发处理性能测试 (35)表 5-7 自适应传输测试 (35)表 5-8 局域网内功能测试结果 (36)表 5-9带宽自适应测试结果 (37)缩略语CIF – Common Intermediate Format 公共中间格式GOP – Group of Pictures 图片组HTTP– Hyper Text Transfer Protocol 超文本传输协议IDR – Instantaneous Decoding Refresh 瞬时解码刷新IETF - Internet Engineering Task Force 互联网工程任务组ITU- International Telecommunication Union 国际电信联盟MPEG - Moving Picture Expert Group 动态图像专家小组NAL – Network Adapt Layer 网络适配层NAT - Network Address Traversal 网络地址转换PPS – Picture Parameter Set 图像参数集QoS- Quality of Service 服务质量RTCP- Real-Time Control Protocol 实时控制协议RTP - Real-time Transport Protocol 实时传输协议RTSP - Real-time Streaming Protocol 实时流式协议SDP - Session Description Protocol 会话描述协议SoC - System on Chip 片上系统SPS – Sequence Parameter Set 序列参数集TCP- Transmission Control Protocol 传输控制协议UDP- User Datagram Protocol 用户数据报协议UMAP - Uniform Multi-media Application Platform 通用媒体处理平台URL - Uniform Resource Locator 统一资源定位符独创性声明本人声明所呈交的学位论文是我个人在导师的指导下进行的研究工作及取得的研究成果。
基于流媒体技术的校园网视频点播服务器设计

12 流媒 体 的传输 方 式 . 实 现 流式 传 输有 两 种 方法 : 顺序 流 式 传输 和实
时 流式 传输 。
2 0 年8 1 0 6 月 6日收到
湖北 省 教 育 厅 科 学 技 术 研 究 项 目 ( 2 0 90 1 资 助 B 0 5 00 )
顺 序 流 式 传 输 是 顺 序 下 载 , 一 定 时 刻 , 户 在 用 只 能 观 看 已经 下 载 的 部 分 , 传输 期 间 , 能 根 据 在 不 用 户 的 连 接 速 度做 调 整 , 须 经 历 延 迟 , 是 可 以 必 但
维普资讯
第 7卷
第 6期
20 0 7年 3月
科
学
技
术
与
工
程
V0 _ 7 No 6 Ma . 2 0 l . r o7
17 — 8 5( 0 7 6— 2 0 0 6 1 1 1 2 0 ) 14 — 4
S in eT c n l g n n i e rn ce c e h o o y a d E gn e i g
ቤተ መጻሕፍቲ ባይዱ@ 2 0 SiT c . nn . 07 c. eh E g g
基于流媒体技术的校园网视频点播服务器设计
饶 雨泰
( 湖北 广 播 电视 大 学 , 汉 4 0 7 ) 武 30 3
摘
要
流媒体技术的在现代教育 中应用 E益广泛 , l 文中首先根据某高校校 园网络基 础 , 结合该校视频点播 的具体要求 , 通过
育 系统 。 流媒 体文 件 可 以通 过We J务 器发 布 , 过 bl ]  ̄ 通 V D O 视频 点播 服务 器存储 流媒体 文件 信息 。基 于流
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)。
任务调度器把socket句柄放入后面select调用中用到的socket句柄集(fReadSet)中,同时将socket句柄和incomingConnectionHandler句柄关联起来。
接着,主程序开始进入任务调度器的主循环(doEventLoop),在主循环中调用系统函数select阻塞,等待网络连接。
当RTSP客户端输入(rtsp://192.168.0.1/test.264)连接服务器时,select返回对应的scoket,进而根据前面保存的对应关系,可找到对应处理函数句柄,这里就是前面提到的incomingC onnectionHandler了。
在incomingConnectionHandler中创建了RTSPClientSession,开始对这个客户端的会话进行处理。
2.DESCRIBE请求消息处理过程RTSP服务器收到客户端DESCRIBE请求后,根据请求URL(rtsp://192.168.0.1/test.264),找到对应的流媒体资源,返回响应消息。
live555中的ServerMediaSession类用来处理会话中描述,它包含多个(音频或视频)的子会话描述(ServerMediaSubsession)。
RTSP服务器收到客户端的连接请求,建立了RTSPClientSession类,处理单独的客户会话。
在建立RTSPClientSession的过程中,将新建立的socket句柄(clientSocket)和RTSP 请求处理函数句柄RTSPClientSession::incomingRequestHandler传给任务调度器,由任务调度器对两者进行一对一关联。
当客户端发出RTSP请求后,服务器主循环中的select调用返回,根据socket句柄找到对应的incomingRequestHandler,开始消息处理。
先进行消息的解析,如果发现请求是DES CRIBE则进入handleCmd_DESCRIBE函数。
根据客户端请求URL的后缀(如test.264),调用成员函数DynamicRTSPServer::lookupServerMediaSession查找对应的流媒体信息ServerM ediaSession。
若ServerMediaSession不存在,但是本地存在test.264文件,则创建一个新的ServerMediaSession。
在创建ServerMediaSession过程中,根据文件后缀.264创建一个子会话描述H264VideoFileServerMediaSubsession。
最后由ServerMediaSession完成组装响应消息中的SDP信息(SDP组装过程见下面的描述),然后将响应消息发给客户端,完成一次消息交互。
SDP消息组装过程:ServerMediaSession负责产生会话公共描述信息,子会话描述由H264VideoFileServerM ediaSubsession产生。
H264VideoFileServerMediaSubsession在其父类成员函数OnDemandSe rverMediaSubsession::sdpLines()中生成会话描述信息。
在sdpLines()实现里面,创建一个虚构(dummy)的FramedSource(具体实现类为H264VideoStreamFramer)和RTPSink(具体实现类为SimpleRTPSink和H264VideoRTPSink),最后调用setSDPLinesFromRTPSink(...)成员函数生成子会话描述。
3.SETUP请求消息处理过程RTSPClientSession类用于处理单独的客户会话。
其类成员函数handleCmd_SETUP()处理客户端的SETUP请求。
调用parseTransportHeader()对SETUP请求的传输头解析,调用子会话(这里具体实现类为OnDemandServerMediaSubsession)的getStreamParameters()函数获取流媒体发送传输参数。
将这些参数组装成响应消息,返回给客户端。
客户端发送两个SETUP请求,分别用于建立音频和视频的RTP接收。
4.PLAY请求消息处理过程RTSPClientSession类成员函数handleCmd_PLAY()处理客户端的播放请求。
首先调用子会话的startStream(),内部调用MediaSink::startPlaying(),然后是MultiFramedRTPSink::co ntinuePlaying(),接着调用MultiFramedRTPSink::buildAndSendPacket()。
buildAndSendPacke 内部先设置RTP包头,内部再调用MultiFramedRTPSink::packFrame()填充编码帧数据。
packFrame内部通过FramedSource::getNextFrame(), 接着MPEGVideoStreamFramer::do GetNextFrame(),再接着经过MPEGVideoStreamFramer::continueReadProcessing(),FramedS ource::afterGetting(...), MultiFramedRTPSink::afterGettingFrame(...), MultiFramedRTPSink::aft erGettingFrame1(...)等一系列繁琐调用,最后到了MultiFramedRTPSink::sendPacketIfNecessa ry(), 这里才真正发送RTP数据包。
然后是计算下一个数据包发送时间,把MultiFramedRTP Sink::sendNext(...)函数句柄传给任务调度器,作为一个延时事件调度。
在主循环中,当Mu ltiFramedRTPSink::sendNext()被调度时,又开始调用MultiFramedRTPSink::buildAndSendPac ket(...)开始新的发送数据过程,这样客户端可以源源不断的收到服务器传来的RTP包了。
5.TEARDOWN删除会话过程代码实现如下所示:else if (strcmp(extension, ".264") == 0) {NEW_SMS("H.264 Video");OutPacketBuffer::maxSize = 100000; // allow for some possibly large H.264 framessms->addSubsession(H264VideoFileServerMediaSubsession::createNew(env, reuseSource));sms->addSubsession(G729ServerMediaSubsession::createNew(env, reuseSource));//add by yezi }3.2 H.264视频流化获取发送传输参数的过程:调用子会话(具体实现类H264VideoServerMediaSubsession)的createNewStreamSource()创建H264liveSource视频数据源,选择发送传输参数,并调用子会话的createNewRTPSink()创建H264VideoRTPSink。
同时将这些信息保存在StreamState类对象中,用于记录流的状态。
H.264视频实现相关类图如图3所示:图3 H.264视频实现类图H.264视频流解析过程如图4所示:图4 H.264视频流解析过程3.3 G.729音频编码与流化获取发送传输参数的过程:调用子会话(具体实现类G729AudioServerMediaSubsession)的createNewStreamSource()创建G729AudioSource视频数据源,选择发送传输参数,并调用子会话的createNewRTPSink()创建SimpleRTPSink。
同时将这些信息保存在StreamState类对象中,用于记录流的状态。
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.*改写,实现媒体流的点播功能(简化即可)。