29| 0
|
[其它] (价值560)c/c++音视频实战-gb28181-pjsip-ffmpeg-h264安防流媒体服务器 |
![]() 课程介绍: 适合人群: 有c/c++基础的应届生和培训生,或者目前从事其他开发想转行到音视频行业的同学。 你将会学到: 从零设计并开发可靠的高性能的音视频安防流媒体服务器,为学员提供安防流媒体领域的专业知识和实践经验。 按照GB28181标准来完成监控设备之间的注册、保活、设备资源、 回放记录以及实时/回放流获取和推送使用pjsip实现gb28181的SIP信令协议栈应用到rtp/ps协议头的每一个字节每一位代表的含义及如何封装和解封装进行rtp片段的接收和组包,手动进行ps和rtp打包和解包需要深度解析H264中的PSP和PPS序列参数集计算分辨, 按照h264的编码规则进行逆向的手动解码一套完整的实战流媒体网络通讯开发掌握linux操作系统中网络socket+多路IO复用技术 课程目录: 第1章项目开篇介绍和环境搭建(1小时15分钟5节) 1-1开篇[21:42] 1-2项目演示[05:25] 1-3环境配置(上)-项目工程的构建[10:13] 1-4环境搭建(中)-第三方库安装[16:58] 1-5环境搭建(下)-第三方库安装[21:09] 第2章服务器初始组件开发(1小时21分钟4节) 2-1服务器配置文件设计与读取[29:03] 2-2单例模型实现全局类并使用gdb调试问题[13:59] 2-3封装线程[17:36] 2-4实现线程任务池[20:59] 第3章SIP信令服务器(10小时52分钟41节) 3-1pjsip库讲解[13:03] 3-2初始化sip信令协议栈并设置信令服务端口[29:13] 3-3实现自定义模块注册及完成SIP事件轮询机制[24:51] 3-4创建下级信令服务器[04:50] 3-5下级注册1-鉴权注册与非鉴权注册流程讲解[14:31] 3-6下级注册2-对照抓包示例,组织注册字段等内容[29:23] 3-7下级注册3-讲解pjsip源码,实现下级非鉴注册功能[26:58] 3-8下级注册4-调试pjsip源码排查下级非鉴权注册程序异常[13:01] 3-9下级注册5-sip消息包字段组织功能封装[19:37] 3-10下级注册6-实现定时器功能完成下级定时发起注册机制[23:43] 3-11解决pjlib线程安全问题[04:37] 3-12互斥锁的运用和实现智能锁[09:33] 3-13上级注册1-实现上级接收下级的注册请求事件[22:12] 3-14上级注册2-使用多态搭建任务事件处理框架[28:48] 3-15上级注册3-上级实现对非鉴权注册请求的具体业务处理和[39:30] 3-16上级注册4-实现上下级注销交互[10:16] 3-17上级注册5-应用层实现注册有效期定时检查机制[14:54] 3-18上级注册6-上下级鉴权注册的实现步骤[13:07] 3-19使用随机数生成器实现生成指定位数的随机串[07:26] 3-20上级注册7-上级组织鉴权方式及认证参数等字段值[11:14] 3-21上级注册8-解决鉴权参数nonce和opaque值重[03:19] 3-22下级注册7-下级完成鉴权配置及鉴权信息的设定[17:49] 3-23下级注册8-调试pjsip源码解决下级鉴权响应异常问[04:07] 3-24上级注册9-上级完成MD5鉴权认证,并验证密码错误的[24:56] 3-25详细讲解保活信令在上下级之间的用途,制定下级保活的策[16:00] 3-26下级组织保活信令中的xml数据,并根据响应码实现不同[15:38] 3-27上级解析xml元素,根据根节点元素区分业务[13:08] 3-28封装xml解析功能[04:45] 3-29上级按照策略实现下级保活请求的处理,并与下级服务联调[17:10] 3-30设计并封装实现xml元素组织功能的类[20:38] 3-31使用封装的xml类替换实现组织保活信令的xml数据[06:07] 3-32详解国标目录信令交互过程,和二十位国标id组成以及目[14:42] 3-33上级服务实现catalog信令包的组织和请求[20:53] 3-34下级对设备目录请求的处理思路,并解决推送包网络分片的[18:27] 3-35下级解析xml数据获取sn号以及响应[10:31] 3-36实现封装json数据序列化和反序列化的功能[08:00] 3-37设计算法实现按照指定的数量来组织推送的目录节点数量[13:26] 3-38按照国标字段组织设备目录树item节点[17:28] 3-39下级完成catalog信令包的整合和推送动作[07:36] 3-40下级整合SIP事件分发机制,并成功向上级推送cata[12:08] 3-41上级接收下级推送的catalog包并解析item节点[24:56] 第4章 流媒体服务器 (12小时14分钟 59节) 4-1深度解析网络层的分片以及传输层端口不可达产生的原因[07:38] 4-2深度解析rtp和ps头[12:44] 4-3h264协议运用讲解(NAL,VCL,I,B,P,G[09:28] 4-4深度解析h264编码数据并计算出分辨率[09:11] 4-5媒体交互流程讲解以及sdp协商协议中各字段讲解[15:44] 4-6初始化媒体回调事件以及媒体模块的注册[13:43] 4-7完成上级INVITE请求的条件[15:47] 4-8组织上级INVITE请求的请求行和请求头部分[12:43] 4-9组织上级INVITE请求的sdp数据[20:55] 4-10上级完成INVITE预览开流请求动作[08:17] 4-11处理开流程序异常问题,根据抓包内容修改sdp内容[03:28] 4-12整合下级的INVITE和BYE事件接收分发处理[12:44] 4-13下级完成对上级开流请求携带的sdp解析[10:55] 4-14下级组织响应需要负载的sdp数据[13:39] 4-15下级成功响应,并抓包确认上下级开流交互流程[07:37] 4-16上级完成对下级响应携带的sdp数据解析[11:10] 4-17讲解rtp和rtcp的配合机制[04:48] 4-18完成rtp会话源的添加删除和BYE事件处理功能[09:14] 4-19上级完成rtp会话的创建启动与会话句柄透传[13:06] 4-20下级完成ps封装器的初始化,并梳理h264流层层打包[10:46] 4-21下级完成rtp会话的创建并将上级rtp会话添加到会话[12:39] 4-22下级模拟从媒体模块接收自定义协议的h264数据[12:48] 4-23下级完成音视频数据的ps流封装功能[17:48] 4-24解决ps流封装异常问题,和内部取流业务时间消耗的估算[03:20] 4-25下级完成ps音视频流的rtp封装和推送[13:58] 4-26上级从会话源表中找到第一个具有可用数据的源,并获取r[08:09] 4-27完成rtp丢包检测和组织完整帧的先驱条件[10:46] 4-28上级实现完整帧的组包和复现丢包场景并播放ps流出现卡[13:52] 4-29分析rtp丢包原因并最终解决问题[08:08] 4-30讲解ps包解复用流程[10:51] 4-31将ps解封装后的分片数据按照音视频类型再组织为完整的[13:14] 4-32排查ps解封装失败问题,并从下级rtp打包模块着手解[08:21] 4-33制定自定义协议头,从h264码流中优先解出sps类型[13:31] 4-34讲解h264的三种数据类型u(1),ue(v),se[14:37] 4-35上级实现从IDR帧的编码数据中获取帧率和分辨率的值[20:16] 4-36上级解决实现重复开流的场景处理[19:45] 4-37上级实现检测下级推流异常的机制,下级进行场景复现和测[14:42] 4-38上级完成关流BYE信令功能[09:56] 4-39下级处理上级的BYE请求[19:00] 4-40上下级联调测试正常和异常的BYE关流处理机制[07:00] 4-41解决异常情况:抓包显示上级一直在发送INVITE请求[09:07] 4-42完善上下级rtp端口的动态分配和回收[19:15] 4-43上级开启定时线程开流关流,测试上下级rtp端口的分配[11:22] 4-44下级完成rtcp-rr包检测机制,并联调测试rtcp[13:51] 4-45上级服务实现前端和中心存储回放记录获取[12:48] 4-46下级完成对于recordinfo请求的响应和回放记录[17:17] 4-47上级解析下级推送的回放记录负载的item内容[12:26] 4-48上下级实现和验证回放流的请求和推送[12:15] 4-49解决下级推送的回放流出现pts为负值并且不连续的异常[05:13] 4-50讲解多路IO复用select,poll和epoll[10:02] 4-51将select和epoll的共性进行抽象,并封装se[16:07] 4-52完成epoll功能的封装实现[09:01] 4-53实现多路IO复用高层次抽象API的封装[21:53] 4-54结合封装的多路IO机制实现高并发性能的tcp服务器[21:10] 4-55结合封装的多路IO机制实现高并发性能的tcp客户端[11:03] 4-56上级指定rtp的传输层为tcp,并启动tcp客户端[12:42] 4-57下级rtp的传输层协议由开流sdp协商指定,并启动t[13:03] 4-58上下级联调测试并修改多路IO复用机制[17:24] 4-59解决select就绪事件异常问题,并交叉联调测试收发[11:58] 第5章 客户端展示数据和拉流播放(完结) (4小时21分钟 12节) 5-1windows下开发环境配置[14:40] 5-2client界面布局[10:23] 5-3windows下完成客户端的tcpClient功能[14:09] 5-4上级服务完成tcpserver功能[18:07] 5-5tcpserver完成tcp连接事件及关闭事件回调[12:15] 5-6服务端使用线程任务池机制完成客户端的获取注册平台信息[22:34] 5-7客户端成功展示上级服务返回的已成功注册的下级平台信息[18:39] 5-8上级服务端成功返回客户端请求的目录资源[31:43] 5-9客户端界面展示接收的目录资源[22:33] 5-10上级服务完成客户端的预览请求并向下级服务触发开流命令[18:43] 5-11客户端将接收的码流保存到本地h264文件中并成功播放[14:55] 5-12客户端完成接收码流线程和解码渲染线程并最终成功取流播[01:03:08]
购买主题
本主题需向作者支付 88 学币 才能浏览
| |
学IT吧 www.xueit8.com X3.4
Copyright © 2001-2021, Tencent Cloud.