onvifc源码
㈠ 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一生黑