rtsp协议摄像头.docx
- 文档编号:28958785
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:9
- 大小:19.45KB
rtsp协议摄像头.docx
《rtsp协议摄像头.docx》由会员分享,可在线阅读,更多相关《rtsp协议摄像头.docx(9页珍藏版)》请在冰豆网上搜索。
rtsp协议摄像头
编号:
_______________
本资料为word版本,可以直接编辑和打印,感谢您的下载
rtsp协议摄像头
甲方:
___________________
乙方:
___________________
日期:
___________________
说明:
本合同资料适用于约定双方经过谈判、协商而共同承认、共同遵守的责任与义务,同时阐述确定的时间内达成约定的承诺结果。
文档可直接下载或修改,使用时请详细阅读内容。
rtsp协议摄像头
篇一:
使用海康摄像头实现实时监控
使用海康摄像头实现实时监控
1.基于Rtsp协议的windows平台监控。
1.1选取海康网络摄像头(支持Rtsp,标准h.264Rtp
封装的设备)。
1.2.按照摄像头的使用说明书部署。
假设访问ip地址
是:
http:
//192.168.0.64,登录后设置输出端口为:
81,
则完整的取流地址为:
主码流
rtsp:
//admin:
12345@192.0.0.64:
81/h264/ch1/main/av_stream
rtsp:
//admin:
12345@192.0.0.64:
81/mpeg-4/ch1/main/av
_stream
子码流:
rtsp:
//admin:
12345@192.0.0.64/mpeg4/ch1/sub/av_stre
amrtsp:
//admin:
12345@192.0.0.64/h264/ch1/sub/av_strea
m
1.3.使用Vlc(支持标准的Rtsp流媒体)的播放器可以实时播放。
2.基于active控件的网页监控。
2.1.选取海康网络摄像头并进行部署,假设访问地址为:
http:
//192.168.0.64:
6666。
2.2.访问http:
//192.168.0.64:
6666,ie浏览器会提
示需要安装active控件,将active控件存储到本地
(ipcameraactivex.cab.cab)。
2.3.解压ipcameraactivex.cab,用记事本打开
ipcameraactivex.inf文件,查看代码段:
[netVideoactivex23.ocx]
file-win32-x86=thiscab
Registerserver=yes
clsid={caFcF48d-8e34-4490-8154-026191d73924}
destdir=11
FileVersion=2,3,21,1
2.4.记录上面的“clsid”。
2.5.在网页中注册上述ocx控件,使用js调用控件的
中的方法进行登录,查看等操作(查看其他操作可查找:
海
康ocx控件接口文档),代码如下:
海康摄像头实时监控
functionlogin()
(
varvideoplugin=window.document.getelementbyid("videoplugin");
loginRes=videoplugin.login("192.168.6.64","8T',"adm
in”,”12345");
playRes=videoplugin.startRealplay(0,1,0);
}
classid=
clsid:
caFcF48d-8e34-4490-8154-026191d73924
codebase="ipcameraactivex.cab"width="800"height="60
0">
篇二:
Rtsp协议转换Rtmp直播协议
Rtsp协议转换Rtmp直播协议
Rtsp协议也是广泛使用的直播/点播流媒体协议,最近实现了一个Rtsp协议转换Rtmp直播协议的程序,为的是可以接收远端设备或服务器的多路Rtsp直播数据,实时转换
为Rtmp直播协议,推送到FmsRedSwowzaserver等Rtmp服务器,以实现flash观看Rtsp直播源的需求。
程序同时也具备从FlV文件获取输入数据并转换Rtmp直播。
实现的
思路分享如下。
要点分析
首先,程序的主要目的,是从多路Rtsp输入源中提取
aac编码的音频和h.264编码视频数据,并生成Rtmp数据包,然后组装Rtmp推送协议,并发往Rtmp服务器。
在发送的过程中,要求可以从Rtsp数据源切换到具有相同h.264和aac
编码的FlV文件中,并不影响Rtmp直播。
因此,本程序的关键点有以下部分:
1.Rtsp直播流的读取
2.h.264和aac编码数据的分析、处理
3.F1V文件数据的提取及与Rtsp直接的切换和衔接
4.Rtmp数据包封装
5.Rtmp推送协议
有了关键点,就可以一项一项的去分析。
设计思路
根据上面分析的要点,首先要选择Rtsp直播协议的读
取。
我们不需要从零做起,网络上有很多和Rtsp相关的开
源项目可以使用或借鉴,我选择了1ive555。
1ive555是一
个跨平台的流媒体解决方案,主要支持Rtsp协议,好像也
支持sip(这个也是我马上研究的重点,之后会写文章研究
sip相关的技术实现)。
1ive555实现了Rtsp包括服务器-客
户端的整套结构,是很知名的一个开源项目。
网上有很多关
于1ive555学习和使用的文章,我就不具体介绍了。
h.264和aac数据的分析处理,这个对于从没做过相关
项目开发的人来说,应该是一个难点,主要是相关概念的理
解。
好在我一直在做这块,也比较好弄。
第4和第5点,可以参照文章“Rtmp协议发送h.264编
码及aac编码的音视频
(/haibindev/archive/20xx/12/29/2305712.htm1),实现
摄像头直播”的技术方法,来加以实现。
因此,主要需要处
理的就是Rtsp直播流数据的获取,以及对其中h.264和aac编码数据的处理。
于是可以画出大体结构如下:
Rtmpthread的主要工作就是发送音频数据流的解码信息头和视频数据流的解码信息头,并不断从
databufferqueue中取出数据,封装为Rtmppacket,发送出去。
流程如下列代码所示:
(process_buf_queue_,即是上图中的databufferqueue)
逻辑与实现
1.程序框架和模块说明
2.主要接口
Rtspcapture是我的程序里管理Rtsp直播数据流和分析处理的类,接口很重要,基本上这个设计就可以。
他所使用的live555变虽,这里ourRtspclient实际就是Rtspclient的简单继承
3.Rtspcapture调用live555的主要流程a.首先,在Rtspcapture构造函数初始化
篇三:
axis安讯士网络摄像头Rtsp读取视频流信息
本人现在在做有关axis方面的应用,昨天花了一天时间终于读到了视频流数据,虽然是axis产品开发,但是我
相信Rtsp部分的内容对初学者应该会有一些帮助,可能会有错误的地方,希望大家更正。
首先说的是,如果你能够从socket方面理解windows
网络编程的话,那么无论Rtsp还是Rtp,或者可以说大部分网
络协议,从本质上都是一样的,都是基于套接字socket的
编程。
这样的话Rtsp就是轻车熟路了。
Rtsp协议实现方式
实时流协议(Rtsp)是应用层协议,控制实时数据的传
送。
Rtsp提供了一个可扩展框架,使受控、按需传输实时数
据(如音频与视频)成为可能。
数据源包括现场数据与存储
在剪辑中的数据。
本协议旨在于控制多个数据发送会话,提
供了一种选择传送途径(如udp、组播udp与tcp)的方法,
并提供了一种选择基于Rtp(RFc1889)的传送机制的方法。
Rtsp和http非常相似,在开发Rtsp客户端程序时有几
种方式可以选择:
1.Rtp/Rtsp/tcp采用Rtsp通过tcp协议连接服务器,
控制媒体流信息传输,然后通过此连接接收媒体流信息。
2.Rtp/Rtsp/http通过http协议携带Rts控制信息和
Rtp数据信息实现流媒体的传输,这种方式有一个好处就是可以顺利的通过防火墙。
3.Rtp/Rtsp/udp采用Rtsp通过tcp协议连接服务器,
控制媒体流信息传输,并告知客户端udp接收端口,然后通
过udp接收媒体流信息。
各个服务器支持的方式可能不一样,大家要先准确知道服务器支持什么方式。
Rtsp发送指令格式:
是回车换行("\r\n”)的意思
commandrtsp:
///axis-media/media.amp
[=[
2.与Rtsp服务器建立tcp连接:
connect(sock,server_addr,sizeof(server_addr));
3.发送Rtsp指令,这一部分也是整个程序和其他协议不一样的部分:
Rtsp定义了很多方法,这里介绍axis开发中常用的几
个:
options,discRibe,setup,play,pause,teaRdown.
options指令:
用于得到Rtsp服务器支持的指令
发送信息包如下:
optionsrtsp:
///axis-media/media.ampRtsp/1.0
cseq:
1
user-agent:
axisamc
authorization:
basiccm9vddpwyxnz
其中authorization为身份验证信息,采用base64编
码
返回信息如下:
Rtsp/1.0200ok
cseq:
1
public:
descRibe,get_paRameteR,pause,play,setup,set_
paRameteR,teaRdowndate:
sat,16jun20xx12:
38:
56gmt
4.descRibe指令:
得到媒体流的一个sdp
(sessiondescriptionprotocol)描述
descRibe
rtsp:
///axis-media/media.ampvideocodec=h2640,1,0;0,
0,1
a=control:
rtsp:
//172.16.200.254:
554/axis-media/medi
a.amp/trackid=1videocodec=h264profile-level-id=420x
x9;
sprop-parameter-sets=z0iakekqFae2atwebaehiRFq,am48g
a==
5.setup指令:
设置流媒体传输方式,让服务器给流分
配资源,启动Rtsp会话。
在setup指令中,需要多加一个信息头:
transport:
specifyhowthedatastreamistransported.supportedvaria
ntsare
Rtp/aVp;unicast;client_port=port1-port2
Rtp/aVp;multicast;client_port=port1-port2
Rtp/aVp/tcp;unicast
在axis开发中,虽然datasheet说明支持udp传输,
但是选择方式一Rtp/aVp时,服务器并不发送数据,只好用
第三种方式Rtp/aVp/tcp。
当使用第三种方式的时候,可以在添加一个信息头,设
置blocksize为64000:
blocksize:
64000
发送指令如下:
setup
rtsp:
///axis-media/media.ampvideocodec=h264unicast;
blocksize:
64000
user-agent:
axismac
authorization:
basiccm9vddpwyxnz
返回信息如下:
Rtsp/1.0200ok
cseq:
3
session:
c306c41c;timeout=60
transport:
Rtp/aVp/tcp;unicast;interleaved=0-1;ssrc=
737F3a5e;mode="play"
date:
sat,16jun20xx12:
38:
56gmt
这里有个地方要注意,返回信息中有一个session:
c306c41c;这个会议标识要存起来,在后边的指令中都要加入这个信息头以表示是同一个会话。
6.play指令:
请求服务器开始给客户端发送流数据
playrtsp:
///axis-media/media.ampvideocodec=h264seq=42296;rtptime=295889231
date:
sat,16jun20xx12:
38:
57gmt
此命令返回成功之后,服务器应该就开始发送Rtp数据
包了,接下来就接受这些数据报。
7.pause和teaRdown就不一一介绍了,直接讲接收Rtp
数据包
intsize=recv(sock,(char*)pos,i_size,0);
可以使用wireshark来分析数据包中的实时数据,很容易看出那些事协议信息,哪些是实时数据信息,接下来的事情就不属于Rtsp了。
如图,找到一个抓到的Rtp数据包,在
Real-timetransportprotocol中'点击payload就可以看至^其
对应的信息。
第12页共12页
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- rtsp 协议 摄像头