- 畅销套餐
- 精选套餐
- 人气套餐
- 尊享套餐
- 高薪套餐
- 课程介绍
- 课程大纲
适合人群:
有c/c++基础的应届生和培训生,或者目前从事其他开发想转行到音视频行业的同学。
你将会学到:
从零设计并开发可靠的高性能的音视频安防流媒体服务器,为学员提供安防流媒体领域的专业知识和实践经验。
- 按照GB28181标准来完成监控设备之间的注册、保活、设备资源、 回放记录以及实时/回放流获取和推送
- 使用pjsip实现gb28181的SIP信令协议栈
- 应用到rtp/ps协议头的每一个字节每一位代表的含义及如何封装和解封装
- 进行rtp片段的接收和组包,手动进行ps和rtp打包和解包
- 需要深度解析H264中的PSP和PPS序列参数集计算分辨, 按照h264的编码规则进行逆向的手动解码
- 一套完整的实战流媒体网络通讯开发
- 掌握linux操作系统中网络socket+多路IO复用技术
课程简介:
c/c++音视频实战课程咨询&答疑服务粉丝群,不购课也可入群交流学习音视频技术,购课后请务必添加粉丝群,以便提供更好的答疑服务
课程介绍
本课程是一门高级的实战项目课程,按照GB28181公共安全视频监控联网系统的技术要求开发,旨在为学员提供实践经验和技能,以开发可用于生产的系统。课程涵盖了上下级的信令和流媒体两套服务器的开发。信令服务器负责处理设备之间的SIP信令交互和控制信息传输,而流媒体服务器则负责音视频实时流和回放流的传输以及视频编解码数据的处理。各个技术模块的处理包括都是按照解耦合思想进行开发,可兼容学员以后从事相关项目不同模块的搭配开发。
你将学到
从零开始使用CMake构建完整的c/c++项目。
在本项目中,你将学习到大量有用的技术和概念,包括数据结构与算法、内存管理、并发编程、面向对象编程、代码优化和性能分析,泛型编程和模板的使用,以及掌握linux操作系统中网络socket+多路IO复用技术。
这个项目将使你能够更加高效地开发和维护 C/C++ 项目,并为你的职业发展提供坚实的基础。
本项目是按照GB28181标准来完成监控设备之间的注册、保活、设备资源、 回放记录以及实时/回放流获取和推送的完整交互框架,使用pjsip作为SIP信令协议栈,需要深入了解和掌握 pjsip 库的各个模块,以及熟练掌握SIP协议。
项目中会深入到rtp/ps协议头的每一个字节每一位,对裸流进行ps和rtp的封装以及解封装,过程中涉及ps流的传输,rtp负载打包、完整帧组包、以及rtcp rr包的检测。
项目中会详解讲解h264编解码规则和深度解析H264中的PSP和PPS序列参数集并从码流中计算出分辨率和帧率。
最终实现的流媒体服务器将为整个项目提供了实时流和回放流的处理和传输能力,同时与信令服务器相互配合,构建了一个完整的监控设备间交互框架。
这将使你全面掌握在 C/C++ 项目中开发高性能流媒体服务器所需的技能和知识,对你未来在相关领域的职业发展将大有裨益。
课程大纲-c/c++音视频实战-gb28181-pjsip-ffmpeg-h264安防流媒体服务器
第1章项目开篇介绍和环境搭建(1小时15分钟5节)
1-3
环境配置(上)-项目工程的构建创建window与linux的共享目录创建工程项目编写CMakeLists.txt文本文件使用cmake工具构建生成Makefile脚本编写测试程序并运行
「仅限付费用户」点击下载“环境配置(上).zip”
[10:13]开始学习1-4
环境搭建(中)-第三方库安装编译安装glog和gflags库声明定义SetGlogLevel类完成日志参数设定功能代码中测试LOG(INFO)、LOG(ERROR)、LOG(WARNING)
[16:58]开始学习1-5
环境搭建(下)-第三方库安装编译安装pjsip库,项目中修改CMakeLists.txt文本添加pjsip头文件及编译生成的静态库,编译验证编译安装jrtplib和jthread库,项目中修改CMakeLists.txt文本添加jrtplib头文件及编译生成的jrtplib和jthread静态库,编译验证编译安装tinyxml2库,项目中修改CMakeLists.txt文本添加tinyxml2头文件及编译生成的静态库,编译验证编译安装jsoncpp库,项目中修改CMakeLists.txt文本添加jsoncpp头文件及编译生成的静态库,编译验证编译安装libevent库,项目中修改CMakeLists.txt文本添加libevent头文件及编译生成的静态库,编译验证
「仅限付费用户」点击下载“ubuntu-18.04.6-desktop-amd64.zip”
[21:09]开始学习第2章服务器初始组件开发(1小时21分钟4节)
2-1
服务器配置文件设计与读取完善服务器该有的属性,上级工程制定本地配置协议,配置本级域和下级域信息,使用ConfReader类来根据配置协议规则进行指定域的字段值读取,声明定义SipLocalConfig类来管理ConfReader类,并调用ConfReader类的接口读取指定的字段值,程序编译调试问题,最终打印验证读取配置文件的内容。
[29:03]开始学习第3章SIP信令服务器(10小时52分钟41节)
3-6
下级注册2-对照抓包示例,组织注册字段等内容下级配置上级域信息,并管理到list中,下级按照list中上级的注册状态来发起注册请求,拼接组织信令包中request-line、message-header里面额字段内容。
[29:23]开始学习3-7
下级注册3-讲解pjsip源码,实现下级非鉴注册功能pjsip库的实际应用,解读pjsip源码,并使用pjsip接口完成注册信令包的生成以及注册请求的发送,讲解expires注册时效字段的含义,以及注册和注销内容的区别,实现接收上级的注册响应事件,并解析响应码,来判断下级的注册状态。
[26:58]开始学习3-8
下级注册4-调试pjsip源码排查下级非鉴权注册程序异常下级服务编译错误排查,运行异常排查,程序调试,pjsip源码编译调试排错,tcpdump抓包确认下级请求的SIP信令报文从网卡发送成功。
[13:01]开始学习3-10
下级注册6-实现定时器功能完成下级定时发起注册机制考虑到下级的注册时效到期或者上级服务异常,此时我们为了不重启下级服务来发起注册,那么我们需要实现个定时器功能,下级服务起来后定时发起注册请求。
[23:43]开始学习