摄像头 ###### * 网络摄像机的标准协议,国际标准上有三大类:ONVIF、PSIA 和 HDCCTV,国内标准有国标 GB/T28181。ONVIF 阵营日益壮大,与 PSIA、HDCCTV 相比,无论是支持厂商的数目、厂商的知名度,还是市场占有率都遥遥领先。 * ONVIF 规范中的传输音视频流采用的是已经很成熟的 RTP/RTSP 多媒体传输协议。 client开发必需:: 1. WSDL转码 WebService Soap 2. ONVIF接口 3. FFmpeg处理RTSP音视频 4. 其他业务开发 * ``ONVIF`` 标准包括几个不同的组件,包括用于IP视频监控的网络视频接口(Network Video Interface,NVI)规范、设备系统(Device System)、分析规范(Analytics Specification)等 * ``ONVIF`` 标准的核心是网络视频接口规范,它定义了网络视频设备之间的通信协议,使不同制造商的设备能够相互通信。 ONVIF标准包括几个不同的组件,包括:: 1. 用于IP视频监控的网络视频接口(Network Video Interface,NVI)规范 2. 设备系统(Device System) 3. 分析规范(Analytics Specification) 基本 ==== * 咪头是指话筒的接口部分,通常也叫做话筒头。它是将话筒转换成信号线的重要组成部分,将声波转化为电信号,并传输到设备中进行处理,如录音、语音识别等。常见的咪头类型有XLR、TRS、TS等,它们有不同的引脚数量和布局,可应用于不同的设备和场合。咪头的选择和使用对于话筒的录音效果和设备的兼容性都有很大影响,因此需要根据具体的应用需求选择合适的咪头。 * VCC:电源正极,一般连接到电源的正极或者直接连接到电源模块的输出端。 * DP:差分数据信号正极,也就是数据传输时的正极信号线。 * DM:差分数据信号负极,也就是数据传输时的负极信号线。 * GND:接地引脚,一般连接到电源的负极或者直接连接到电源模块的地线。 * 在实时监控场景中,需要减少视频传输延迟,可以采用UDP等无连接协议进行视频传输;而在视频存储场景中,则可以采用RTMP、HLS等协议进行视频传输和存储。 * 支持HLS或DASH的播放器,如HLS.js、Shaka Player或ExoPlayer * 在视频监控系统中,主码流和子码流是指同一路视频流以不同的编码参数、分辨率、帧率等参数进行压缩和传输的两个不同的版本。它们之间的区别在于主要用途和传输质量等方面。 * 主码流是指采集的原始视频流,通常以较高的分辨率和帧率进行编码压缩,以保证传输的视频质量和流畅度。主码流的主要应用场景是实时监控和录制,例如在安防监控中用于显示、存储和远程访问。 * 子码流是指对主码流进行再次编码压缩得到的低分辨率、低帧率、低码率的视频流。子码流的主要作用是节约带宽和存储空间,以适应网络传输和存储的需要。在传输过程中,主码流通常会被实时传输到控制中心或者远程客户端,而子码流则可以在需要时被请求和传输。子码流的使用可以减少网络传输的带宽消耗和存储空间的占用,同时保证监控系统的实时性和有效性。 直播源 ====== * 苹果提供的测试源(点播):http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/gear2/prog_index.m3u8 * 大熊兔(点播):rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4 推流&拉流 ========= .. figure:: https://img.zhaoweiguo.com/uPic/2023/03/s0qW5E.jpg 使用CDN的推流&拉流流程图 .. image:: https://img.zhaoweiguo.com/uPic/2023/03/TBuxim.jpg .. figure:: https://img.zhaoweiguo.com/uPic/2023/03/tCdZE9.jpg 推流过程示意图 :: 1. 通过摄像头或录屏功能进行视频采集视频原始数据格式: ``RGB`` 或 ``YUV`` 2. 通过话筒进行音频采集音频原始数据格式: ``PCM`` 3. 将视频文件编码视频格式从YUV(RGB)变为 ``H.264(H.265)`` 4. 将音频文件编码音频格式从 PCM 变为 ``AAC`` 5. 将视频与音频文件编码为有“流媒体”特性的多媒体容器格式(Multimedia Container Format) 此时音频和视频 (H.264和AAC) 结合成了 ( ``FLV`` 或 ``TS`` 或 ``RTMP Packet``,这要视传输协议的规定而定) 6. 选择一种向服务器推流的协议(“流”即“有流媒体特性的多媒体容器格式的文件”) 应用层协议: HLS; RTSP; RTMP 传输层协议: RTCP、RTP 网络层协议: RSVP NVR === :: 1. IP摄像头 这些是连接到网络的数字摄像机,可以通过网络发送视频和音频数据。 它们通常使用基于IP的网络协议,如TCP/IP或UDP/IP进行通信。 2. 网络交换机 这些设备用于连接所有的IP摄像头和NVR服务器。 网络交换机负责管理和转发网络流量,以确保数据可以在各个设备之间快速、安全地传输。 3. NVR服务器 这是一个专用的计算机或服务器,用于录制、存储和管理所有从IP摄像头接收的视频和音频数据。 NVR服务器通常具有高性能的硬件组件和专用的软件应用程序,可以提供强大的视频编解码、网络流量管理、存储管理和数据备份等功能。 4. 存储设备 这些设备用于存储所有录制的视频和音频数据。 存储设备可以是硬盘驱动器、网络存储设备(NAS)或云存储服务等。 5. 客户端软件 这些是在用户计算机或移动设备上安装的应用程序,用于访问和管理NVR服务器上存储的视频和音频数据。 客户端软件通常具有图形用户界面(GUI),可以让用户方便地搜索、播放、下载和备份录制的数据。 IPC === * 网络摄像机一般由镜头、图像传感器、声音传感器、信号处理器、 A/D 转换器、编码芯片、主控芯片、网络及控制接口等部分组成。 * 网络摄像机又叫 IP CAMERA(简称 IPC)由``网络编码模块``和``模拟摄像机``组合而成。网络编码模块将模拟摄像机采集到的模拟视频信号编码压缩成数字信号,从而可以直接接入网络交换及路由设备。网络摄像机内置一个嵌入式芯片,采用嵌入式实时操作系统。 * 网络摄像机是传统摄像机与网络视频技术相结合的新一代产品。摄像机传送来的视频信号数字化后由高效压缩芯片压缩,通过网络总线传送到 Web 服务器。网络上用户可以直接用浏览器观看 Web 服务器上的摄像机图像,授权用户还可以控制摄像机云台镜头的动作或对系统配置进行操作。 网络摄像机的基本原理:: 1. 图像信号经过镜头输入及声音信号经过麦克风输入后,由图像传感器和声音传感器转化为电信号 2. A/D 转换器将模拟电信号转换为数字电信号 3. 编码器按一定的编码标准进行编码压缩 4. 控制器的控制下,由网络服务器按一定的网络协议送上局域网或 INTERNET 网络摄像机的图像压缩编码标准:: MPEG4、 H.264、M-JPEG 摄像头支持视频流的传输,通常有以下两种方式:: RTSP协议传输:RTSP(Real Time Streaming Protocol)是一种基于TCP或UDP的实时流媒体协议,是视频流传输的主流协议之一。 摄像头可以通过RTSP协议将视频流传输到NVR软件或其他视频流接收端。 通常情况下,摄像头会提供一个RTSP URL,用户可以通过该URL直接访问摄像头的视频流。 ONVIF协议传输:ONVIF(Open Network Video Interface Forum)是一个开放的网络视频接口标准,旨在为各种网络视频设备提供互操作性。 通过ONVIF协议,摄像头可以将视频流传输到ONVIF兼容的设备,例如NVR软件、视频监控软件等。 ONVIF协议支持多种视频编码格式,例如H.264、MPEG-4等。 开发一个NVR软件通常需要以下步骤:: 确定需求:首先需要明确NVR软件的功能和需求,例如支持的摄像头类型和数量、视频录制和存储方式、远程监控和管理功能等。 设计架构:根据需求和功能,设计NVR软件的架构和模块,例如视频流接收和处理模块、录制和存储模块、远程监控和管理模块等。 实现核心功能:根据架构和模块设计,实现NVR软件的核心功能,例如视频流接收和处理、视频录制和存储、远程监控和管理等。 UI设计和实现:根据需求和用户体验,设计和实现NVR软件的用户界面,以便用户可以方便地使用和管理NVR软件。 测试和优化:进行功能测试和性能测试,优化NVR软件的性能和稳定性,确保软件能够稳定运行和满足用户需求。 发布和维护:发布NVR软件,并进行后续的维护和更新,以保证软件的稳定性和功能完善性。 需要注意的是,开发NVR软件需要涉及到视频流传输、编解码、存储和网络通信等方面的知识,需要有一定的技术积累和经验支持。 同时,NVR软件的开发也需要考虑到安全和隐私保护等问题,确保视频数据不会被非法访问和泄露。