当前位置:首页 » 操作系统 » onvifc源码

onvifc源码

发布时间: 2025-05-21 22:44:25

㈠ C++流媒体开源库Live555详细介绍

Live555简介

Live555是一个跨平台的C++开源项目,专注于提供流媒体解决方案。它基于RTP/RTCP、RTSP、SIP开放标准协议,实现了标准流媒体传输。Live555支持多种音视频编码格式,包括MPEG、H.265、H.264、H.263+、DV或JPEG视频和多种音频编码。其设计灵活,易于扩展其他格式支持。

使用Live555可以开发客户端拉取远程音视频流,如VLC播放器,也可开发流媒体服务器。Live555广泛应用于播放器流媒体播放功能实现,例如VLC、MPlayer,以及网络直播中的流媒体技术。

Live555源码目录说明

目录结构如下:

1)BasicUsageEnvironment:实现基本控制台应用程序,用于简单事件获取和处理。适用于Unix或Windows控制台。

2)UsageEnvironment:定义抽象类UsageEnvironment和TaskScheler,用于调度延迟事件,处理异步读取事件和输出错误/警告消息。包含HashTable类,提供通用散列表接口。

3)groupsock:封装网络接口,用于收发数据包。支持多播和单播数据收发。

4)liveMedia:核心部分,包含针对不同流媒体类型和编码的系列类,基类是Medium。

5)testProgs:实现BasicUsageEnvironment的简单程序,演示如何使用库开发应用程序。

6)proxyServer:基于Live555的流媒体代理服务器,支持Onvif协议的摄像机接入,提高对外服务性能并保护内网摄像机安全。

7)WindowsAudioInputDevice:实现AudioInputDevice抽象类在Windows应用程序中读取PCM音频样本。

Live555关键概念与流程介绍

1)Source和Sink:Source生成数据,如RTP读取;Sink消费数据,如文件存储。MediaSource和MediaSink是所有Source和Sink的基类。

2)数据流:Source->Source(filters)->Sink,Source接收数据的也称为filters,Mole是filters或Sink,Sink通过实现纯虚函数continuePlaying()处理数据,通常从socket writable或incoming data获取数据。

基于liveMedia的应用程序是事件驱动,循环处理Sink。通常使用SinkObject->startPlaying()启动生成任务,Mole需要数据时调用刚好在它之前的Mole的getNextFrame()。

RTSP介绍

RTSP是实时流媒体协议,由Real network和Netscape提出,用于控制实时数据传输,如音频和视频文件。RTSP支持暂停、快进等控制,不传输数据,仅远程控制流媒体服务器。RTSP传输层支持tcp、udp,提供基于rtp的有效传输方法。

常用方法包括:OPTION、DESCRIBE、SETUP、PLAY和TEARDOWN。

RTSP连接建立流程

RTSPServer构建RTSP服务器,监听TCP的554端口,将连接处理函数和socket句柄传给任务调度器,主循环等待网络连接,RTSP客户端输入连接服务器,完成连接。

DESCRIBE请求处理

RTSP服务器收到DESCRIBE请求,根据请求URL查找流媒体资源,返回响应消息。ServerMediaSession处理会话描述,包含音频或视频子会话描述。服务器根据请求解析资源信息,组装SDP信息返回。

SETUP和PLAY请求处理

RTSPClientSession处理客户端会话,handleCmd_SETUP和handleCmd_PLAY分别处理SETUP和PLAY请求。解析传输头,获取流媒体发送参数,组装响应消息。客户端通过两个SETUP请求建立音频和视频的RTP接收,PLAY请求启动播放。

通过Live555的学习,可以搭建RTSP服务器和客户端播放器,理解其基本流程和原理。Live555功能强大,支持多种协议和多媒体流构建,为相关开发人员提供了深入学习的机会。

㈡ ONVIF 如何调用填充接口函数

可能是因为被墙的原因吧。
我从google
code上面下载下来的,传到我的下载资源里面ONVIF
IP
Camera
viewer/explore源码,估计需要一会审核通过后就能看到下载了。
这个项目还有其他一些代码,下载里面的是其中ONVIF的android部分

㈢ 在onvif官网里面怎么没有devicemgmt.wsdl

点击device.wsdl会打开一个页面
不要直接保存(直接保存会保存这个页面的xml)
在这个打开的页面任意位置单击右键,选择“查看网页源代码(我用的是360急速浏览器,其它浏览器应该也有类似的功能)”,会打开一个新的标签页,这个新页面会按照wsdl原文呈现。
在这个wsdl原文页面,右键,选择“网页另存为”,保存的时候,把文件名前面多余的部分去掉,只留下devicemgmt.wsdl,保存即可。
===============================
让CSDN上那些赚分的傻叉都去吃屎
===============================
CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑

热点内容
android信息管理系统 发布:2025-05-22 06:25:42 浏览:130
c语言编译时灰的 发布:2025-05-22 06:21:24 浏览:625
大数据存储与管理 发布:2025-05-22 06:20:03 浏览:741
cmd登录oracle数据库 发布:2025-05-22 05:53:55 浏览:402
笔记本FTP用户名密码怎么设置 发布:2025-05-22 05:40:43 浏览:388
挂机软件源码 发布:2025-05-22 05:35:45 浏览:516
c语言编译器怎么复制代码 发布:2025-05-22 05:28:16 浏览:981
尼特编程 发布:2025-05-22 05:25:28 浏览:433
飞机打药如何配置的 发布:2025-05-22 05:23:52 浏览:416
内网穿透ftp看不见文件 发布:2025-05-22 05:13:08 浏览:681