描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302661245丛书名: 计算机技术开发与应用丛书
易教易学 系统阐述RTSP、SOAP、SIP、ONVIF和GB/T28181等协议,讲解FFmpeg核心数据结构及视频监控的项目应用,结合前沿的技术,使读者在不知不觉中已经建立起宏观的音视频流媒体知识体系,掌握晦涩难懂的概念和理论,实践并应用FFmpeg的API实现IPC实时流媒体视频监控功能,为后续的FFmpeg深入应用开发打下坚实的基础。
前后衔接 强调知识体系和分析方法的前后连贯性,并妥善处理好与前期知识和后续知识的衔接。
开拓思维 引导读者进行各种流媒体协议如RTSP、SOAP、SIP、ONVIF和GB/T28181等,以及FFmpeg视频监控应用功能的探索,帮助读者打开思维,激发读者的学习兴趣,启迪创新思想,包括但不限于各种协议的详细分析、各种开源库的项目应用及实现技巧、FFmpeg二次开发视频监控的技术细节,以及开源GB/T28181国标平台案例应用等。
本书系统讲解了基于FFmpeg二次开发视频监控系统,并结合ONVIF和GB/T28181的基础理论及应用,包括使用FFmpeg读取摄像头数据、使用Lib264/Libx265进行视频编码、结合Qt和SDL2进行视频渲染等功能;也包括ONVIF和GB/T28181协议的应用,以及SIP、SOAP等相关协议及开源库的具体应用。
全书共11章:系统讲解了FFmpeg二次开发视频监控系统的基础知识及项目应用、Lib264/Libx265编码流程及应用、ONVIF协议的原理及应用、GB/T28181协议的原理及应用及开源的国标GB/T28181视频平台等。
书中包含大量的示例,图文并茂,争取让音视频流媒体领域的读者真正入门,从此开启流媒体直播编程的大门。本书知识体系比较完整,侧重于使用FFmpeg二次开发视频监控系统,结合ONVIF和GB/T28181协议实现真实的项目应用。建议读者先学习FFmpeg音视频流媒体系列的前5部,然后来学习本书。本书的讲解过程由浅入深,让读者在不知不觉中学会了FFmpeg二次开发视频监控系统,并能动手实现各种编解码功能,结合ONVIF和GB/T28181协议实现视频对接等功能。
本书可作为FFmpeg二次开发、ONVIF协议及GB/T28181方向的入门书籍,也可作为高年级本科生和研究生的学习参考书籍。
第1章流媒体与RTSP/RTP/RTCP简介
1.1流媒体简介
1.2RTSP简介
1.2.1RTSP支持
1.2.2RTSP特点
1.3RTSP交互流程
1.4RTSP重要概念
1.4.1集合控制
1.4.2实体
1.4.3容器文件
1.4.4RTSP会话
1.4.5RTSP参数
1.4.6RTSP信息
1.4.7RTSP连接
1.4.8RTSP扩展
1.4.9RTSP操作模式
1.5RTSP重要方法
1.6RTP简介
1.6.1RTP格式
1.6.2RTP的会话过程
1.7RTCP简介
1.7.1RTCP的5种分组类型
1.7.2RTCP包结构
第2章VLC及FFplay流媒体播放器
2.1VLC播放器简介
2.1.1VLC播放器
2.1.2VLC的功能列表
2.1.3VLC播放网络串流
2.1.4VLC作为流媒体服务器
2.1.5使用Wireshark抓包分析RTSP交互流程
2.2FFplay播放原理简介
2.2.1视频播放器简介
2.2.2FFmpeg播放架构与原理
第3章FFmpeg二次开发采集并预览本地摄像头
3.1FFmpeg的命令行方式处理摄像头
3.2FFmpeg的SDK方式读取本地摄像头
3.3FFmpeg SDL2读取并显示本地摄像头
3.3.1SDL2简介
3.3.2VS 2015搭建SDL2开发环境
3.3.3Qt 5.9平台搭建SDL2开发环境
3.3.4Linux平台搭建SDL2开发环境
3.3.5SDL2播放YUV视频文件
3.3.6使用FFmpeg SDL2读取本地摄像头并渲染
3.4FFmpeg Qt读取并显示本地摄像头
3.4.1信号
3.4.2槽
3.4.3信号与槽的关联
3.4.4信号与槽的注意事项
3.4.5元对象工具
3.4.6案例:标准信号槽
3.4.7案例:自定义信号槽
3.4.8Qt显示图像
3.4.9Qt缩放图像
3.4.10Qt旋转图像
第4章H.264/H.265视频编码并存储
4.1FFmpeg命令行编码H.264
4.1.1YUV编码为H.264
4.1.2控制视频的码率及分辨率
4.1.3控制视频的GOP
4.2libx264的常用编码选项简介
4.2.1FFmpeg中libx264的选项
4.2.2×264.exe中的选项名与选项值
4.3libx265的常用编码选项简介
4.4编解码原理流程及API解析
4.4.1视频解码过程简介
4.4.2视频解码流程及主要API
4.4.3视频编码过程简介
4.4.4视频编码流程及主要API
4.5FFmpeg编程流程与案例实战
4.5.1案例:使用FFmpeg将YUV编码为H.264
4.5.2AVFrame及相关API
4.5.3案例:使用FFmpeg将YUV编码为H.264并封装为MP4
4.5.4案例:使用FFmpeg将H.264码流封装为MP4
4.6FFmpeg编解码与时间基详解
4.6.1GOP与PTS/DTS
4.6.2FFmpeg中的时间基与时间戳
4.6.3转封装过程中的时间基转换
4.6.4转码过程中的时间基转换
第5章FFmpeg二次开发IPC视频监控
5.1视频监控系统简介
5.1.1视频监控系统的功能及特点
5.1.2视频监控系统的工作原理及结构
5.1.3视频监控系统的总体结构设计
5.1.4视频监控系统的存储结构设计
5.2FFmpeg读取网络摄像头
5.3FFmpeg实现H.264/H.265编码的C 类封装
第6章SOAP及gSOAP实战
6.1SOAP简介
6.1.1RPC简介
6.1.2HTTP简介
6.1.3XML简介
6.1.4WSDL简介
6.1.5SOAP简介
6.1.6Web Service简介
6.2gSOAP简介
6.2.1soapcpp2的用法
6.2.2wsdl2h的用法
6.2.3CentOS编译并测试gSOAP
6.2.4Ubuntu编译gSOAP
6.2.5VS利用gSOAP开发Web Service客户端
第7章ONVIF协议原理解析
7.1ONVIF简介
7.1.1ONVIF背景简介
7.1.2ONVIF的技术框架
7.1.3ONVIF规范
7.1.4ONVIF Profile
7.1.5ONVIF应用
7.1.6ONVIF测试工具
7.1.7ONVIF开发IPC的流程
7.2ONVIF功能概述
7.2.1概念定义
7.2.2缩写
7.2.3Web服务
7.2.4设备发现
7.2.5设备类型
7.2.6设备管理
7.2.7设备输入/输出
7.2.8图像配置
7.2.9媒体配置
7.2.10实时流
7.2.11事件处理
7.2.12PTZ控制
7.2.13视频分析
7.2.14分析设备
7.2.15显示
7.2.16接收器
7.2.17存储
第8章ONVIF框架代码案例应用
8.1Windows系统下生成ONVIF框架代码
8.1.1下载WSDL文件
8.1.2新建工作空间
8.1.3修改typemap.dat
8.1.4生成onvif.h文件
8.1.5鉴权(认证)
8.1.6正式生成框架代码
8.1.7关联自己的命名空间
8.1.8提取需要的文件
8.2ONVIF设备搜索
8.2.1WSDiscovery原理
8.2.2单播、多播(组播)和广播
8.2.3设备搜索
8.3获取设备基本信息
8.4鉴权(认证)
8.5读取音视频流
8.6图像抓拍
8.7修改分辨率
8.8Linux下生成ONVIF框架代码
8.8.1安装依赖项
8.8.2下载gSOAP2.8.116的源码
8.8.3编译gSOAP2.8.116
8.8.4修改typemap.dat
8.8.5生成onvif.h头文件
8.8.6鉴权(认证)
8.8.7根据头文件产生框架代码
8.8.8复制其他文件
8.8.9关联自己的命名空间
8.8.10代码封装
8.8.11设备查找的案例代码
第9章SIP及eXosip开源库应用
9.1SIP简介
9.1.1SIP的功能
9.1.2SIP的实现机制
9.1.3SIP的特征及元素
9.1.4SIP会话构成
9.1.5SIP通信流程及消息
9.1.6H.323协议和SIP的比较
9.1.7SIP与SDP
9.1.8SIP工作流程
9.1.9SIP超时机制
9.2eXosip开源库简介
9.2.1oSIP及eXosip简介
9.2.2Windows系统下编译oSIP2和eXosip2
9.2.3Ubuntu下编译oSIP2和eXosip2
9.2.4案例:UAS和UAC入门
9.2.5oSIP的重要数据结构
9.2.6oSIP的初始化工作
9.2.7oSIP收发消息机制
9.2.8oSIP管理事务及会话
9.2.9eXosip协议栈简介
第10章GB/T 28181协议原理
10.1协议简介
10.2术语、定义和缩略语
10.2.1术语和定义
10.2.2缩略语
10.3互联结构
10.3.1SIP监控域互联结构
10.3.2SIP监控域与非SIP监控域互联结构
10.3.3联网系统通信协议结构
10.4传输要求
10.5交换要求
10.5.1统一编码规则
10.5.2媒体压缩编解码
10.5.3媒体存储封装格式
10.5.4SDP定义
10.5.5网络传输协议的转换
10.5.6控制协议的转换
10.5.7媒体传输协议的转换
10.5.8媒体数据格式的转换
10.5.9与其他系统的数据交换
10.5.10信令字符集
10.6控制要求
10.7传输、交换、控制安全性要求
10.8控制、传输流程和协议接口
10.8.1注册和注销
10.8.2实时视音频点播
10.8.3设备控制
10.8.4报警事件通知和分发
10.8.5设备信息查询
10.8.6状态信息报送
10.8.7历史视音频文件检索
10.8.8历史视音频回放
10.8.9历史视音频文件下载
10.8.10网络校时
10.8.11订阅和通知
10.8.12语音广播和语音对讲
第11章GB/T 28181国标平台案例应用
11.1国标平台简介
11.1.1国标平台的组成
11.1.2国标平台的组网及特点
11.2LiveGBS平台简介
11.2.1LiveGBS的服务架构
11.2.2LiveCMS的配置文件
11.2.3LiveSMS的配置文件
11.2.4LiveSMS的运行
11.2.5配置设备接入
11.2.6平台管理
11.3EasyGBS平台简介
11.3.1运行软件
11.3.2设备接入
11.3.3平台管理
11.3.4平台应用案例
11.4GB/T 28181抓包流程分析
近年来,随着5G网络技术的迅猛发展,FFmpeg音视频及流媒体直播应用越来越普及,音视频流媒体方面的开发岗位也非常多。然而,市面上却没有一本通俗易懂又系统完整的FFmpeg 二次开发视频监控系统的入门书,网络上的知识虽然不少,但是太散乱,不合适读者入门。
众所周知,FFmpeg命令行应用起来简单,但SDK二次开发相对难以理解。很多程序员想从事音视频或流媒体开发,但始终糊里糊涂、不得入门。笔者刚毕业时,也是纯读者一个,付出了艰苦的努力,终于有一些收获。借此机会,笔者将相关内容整理成专业书籍,希望给读者带来帮助,少走弯路。
FFmpeg发展迅猛,功能强大,命令行也很简单、很实用,但是有一个现象:即便使用命令行实现了一些特效,但依然不理解原理,不知道具体的参数是什么含义。音视频与流媒体是一门很复杂的技术,涉及的概念、原理、理论非常多,很多初学者不学基础理论,而是直接做项目、看源码,但往往在看到C/C 的代码时一头雾水,不知道代码到底是什么意思。这是因为没有学习音视频和流媒体的基础理论,就像学习英语,不学习基本单词,而是天天听英语新闻,总也听不懂,所以一定要认真学习基础理论,然后学习播放器、转码器、流媒体直播、视频监控等。
本系列的前5本书为《FFmpeg入门详细讲解——音视频原理及应用》《FFmpeg入门详细讲解——流媒体直播原理及应用》《FFmpeg入门详细讲解——命令行及音视频特效原理及应用》《FFmpeg入门详细讲解——SDK二次开发及直播美颜原理及应用》《FFmpeg入门详解——音视频流媒体播放器原理及应用》。这6本书由浅入深,围绕FFmpeg原理及应用,层层展开,系统讲解了音视频、流媒体和直播的基础原理; 详细讲解了FFmpeg的命令行和SDK应用,手把手地带领读者进行常用命令行的应用和原理解析,并深入介绍核心API的参数及应用场景; 重点介绍音视频同步等关键技术,引领读者开发一款通用的音视频和流媒体播放器。最后,本书以视频监控为切入点,综合相关的知识点在监控的同时进行H.264/H.265编码,并存储到本地,形成一个完整的基于音视频流媒体的视频监控项目。
阅读建议
本书是一本适合读者入门的FFmpeg二次开发视频监控的书籍,既有通俗易懂的基本概念,又有丰富的案例和原理分析,图文并茂,知识体系非常完善。本书首先对音视频、流媒体和直播的基本概念和原理进行复习,对重要的概念进行具体阐述,然后结合FFmpeg的SDK进行案例实战,读者既能学到实践操作知识,也能理解底层理论,非常适合初学者。建议读者先学习FFmpeg音视频流媒体系列的前5本,然后学习本书。
本书第1~5章介绍FFmpeg基础架构及二次开发视频监控客户端,第6~11章介绍ONVIF、SIP、SOAP和GB/T 28181等协议及具体的案例应用。
建议读者在学习过程中,循序渐进,不要跳跃。本书的知识体系是笔者精心准备的,由浅入深,层层深入,对于抽象复杂的概念和原理,笔者尽量通过图文并茂的方式进行讲解,非常适合初学者。本书从最基础的FFmpeg 二次开发读取摄像头案例开始,理论与实践并重,读者一定要动手实践,亲自试验各个案例,并理解原理和流程。然后讲解详细的ONVIF、SIP、SOAP和GB/T 28181等协议,并应用到具体的案例中,争取每个案例都能将知识点活学活用。建议读者一定要将本系列的前几本所学的音视频基础知识和流媒体直播基础知识应用到本书中,理论指导实践,加深对每个知识点的理解。读者不但要会用FFmpeg的SDK来完成视频监控功能,还要能理解底层原理及相关的理论基础。最后进行分析总结,争取对所学的理论进行升华,做到融会贯通。
扫描目录上方的二维码可下载本书配套资源。
致谢
首先感谢清华大学出版社赵佳霓编辑给笔者提出了许多宝贵的建议,以及推动了本书出版。感谢我的家人和亲朋好友,祝大家每天快乐健康。
感谢我的学员,群里的学员越来越多,并经常提出很多宝贵意见。随着培训时间和经验的增长,对知识点的理解也越来越透彻,希望给大家多带来一些光明,尽量让大家少走弯路。已经有群里的老学员通过学到的FFmpeg音视频流媒体知识获得了50万元的年薪,这一点让我感到非常欣慰。活到老、学到老,学习是一个过程,没有终点,唯有坚持,大家一起加油,为美好的明天而奋斗。
由于时间仓促,书中难免存在不妥之处,请读者见谅并提出宝贵意见。
梅会东
2024年4月于北京清华园
评论
还没有评论。