Live555编译与基础类解析
"这篇学习笔记主要介绍了Live555的编译方法以及其核心基础类的理解,适合初学者入门。" 在IT行业中,Live555是一个广泛使用的开源库,主要用于实现RTSP(实时流协议)、RTP(实时传输协议)和RTCP(实时传输控制协议)等多媒体流媒体服务。这篇笔记首先讲述了如何在Windows环境下编译Live555。 编译Live555的过程中,可以使用MinGW环境,通过在live555源码目录下运行`genMakefilesmingw`和`make`命令来生成并执行Makefile。对于Visual Studio(VC)用户,虽然可以直接使用`genWindowsMakefiles.cmd`生成Makefile,但可能需要针对新版本的VC进行调整。笔记中推荐了一种更便捷的方法,即手动为每个库创建一个lib项目,并为mediaServer创建一个exe项目,以确保正确的依赖关系,这样可以在VC中方便地编译和调试。 笔记进一步探讨了Live555的核心基础类: 1. **BasicUsageEnvironment** 和 **UsageEnvironment** 类:这两个类构成了Live555的基础运行环境。UsageEnvironment提供了错误处理和报告机制,所有其他类都会持有该环境的指针以便记录和报告错误。TaskScheduler是另一个关键类,它负责任务调度,是程序运行的核心,确保任务按照预定的时间执行。 2. **TaskScheduler**:全局唯一的调度器,它保存在UsageEnvironment中,使得任何类都能方便地添加任务到调度队列中。值得注意的是,Live555的服务端通常运行在一个单线程模型中。 3. **HashTable**:实现了哈希表数据结构,用于高效的数据存储和查找。 4. **DelayQueue**:延迟队列,用于存储即将执行的任务,每个任务都有一个表示执行时间点的标记。队列会根据时间顺序执行任务,一旦执行完成,任务就会从队列中移除,表明Live555的事件驱动特性。 5. **HandlerSet**:这是一个处理器集合,包含了用于处理socket操作的任务(函数)。Handler是一种特定的任务类型,它们与网络通信密切相关,例如接收和发送数据包。 6. **Task**:在Live555中,任务通常指的是一个执行特定功能的函数或方法,可以是异步的,由TaskScheduler调度执行。 通过理解和掌握这些基本概念,开发者能够更好地理解Live555的工作原理,从而更有效地利用这个库来开发实时流媒体应用。这篇笔记为初学者提供了一个良好的起点,帮助他们快速进入Live555的世界。
![](https://csdnimg.cn/release/download_crawler_static/9748708/bg10.jpg)
![](https://csdnimg.cn/release/download_crawler_static/9748708/bg11.jpg)
![](https://csdnimg.cn/release/download_crawler_static/9748708/bg12.jpg)
![](https://csdnimg.cn/release/download_crawler_static/9748708/bg13.jpg)
![](https://csdnimg.cn/release/download_crawler_static/9748708/bg14.jpg)
剩余135页未读,继续阅读
![application/x-gzip](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/42169fd9ebb0475db09286ee72967419_luofuchong.jpg!1)
- 粉丝: 0
- 资源: 6
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 多模态联合稀疏表示在视频目标跟踪中的应用
- Kubernetes资源管控与Gardener开源软件实践解析
- MPI集群监控与负载平衡策略
- 自动化PHP安全漏洞检测:静态代码分析与数据流方法
- 青苔数据CEO程永:技术生态与阿里云开放创新
- 制造业转型: HyperX引领企业上云策略
- 赵维五分享:航空工业电子采购上云实战与运维策略
- 单片机控制的LED点阵显示屏设计及其实现
- 驻云科技李俊涛:AI驱动的云上服务新趋势与挑战
- 6LoWPAN物联网边界路由器:设计与实现
- 猩便利工程师仲小玉:Terraform云资源管理最佳实践与团队协作
- 类差分度改进的互信息特征选择提升文本分类性能
- VERITAS与阿里云合作的混合云转型与数据保护方案
- 云制造中的生产线仿真模型设计与虚拟化研究
- 汪洋在PostgresChina2018分享:高可用 PostgreSQL 工具与架构设计
- 2018 PostgresChina大会:阿里云时空引擎Ganos在PostgreSQL中的创新应用与多模型存储
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)