IP摄像头.VLC了解进.
IP摄像头...VLC懂得进...
情况是这样的:
单位分别购置了二个不同厂家的摄像头
厂家一:
摄像头可以直接访问Http:192.168.1.101/index.html就可以得到画面 如图:

然后我安装了个vlc播放器,镶嵌到网页中,得到如下画面:

问题:
现在把摄像头架设到外网,通过外网ip+端口 访问,在vlc地址输入rtsp://外网ip地址/index.html 则访问不到视频,说无法播放.但是输入http://外网ip地址/index.html得到的效果和图一 是一样的效果,可以看到视频画面。
厂家二:
该摄像头需要事先登录,才可以进行页面访问,登录成功后跳转 http://ip地址/index.html可以访问单个摄像头页面,而在vlc中,输入如上rtsp地址,根本都访问不到...
问题:如何能通过vlc直接读取rtsp视频流?
如果要进行二次开发,该如何开发?说下具体流程..
求大神指教,小弟叩谢....
------解决方案--------------------
二次开放就做个流媒体转发服务器
------解决方案--------------------
在内网做转发啊,内网是可以接收到的吧,然后转发出去
------解决方案--------------------
可以不这么做。自己开发个插件,网络渎取对方码流,显示。我以前做过。可以交流Q:1049568282
------解决方案--------------------
rtsp地址通常不会是rtsp://外网ip地址/index.html 。这个地址要从网页上分析获取,也可以抓包分析。如果是rtsp的话,拿到实际rtsp地址后,vlc可以直接播放,不需要转发什么的。
个人经验,摄像头不会对请求地址做过滤的。
------解决方案--------------------
这两个ipc,确认支持RTSP输出没有?
------解决方案--------------------
是不是端口映射问题
------解决方案--------------------
哈哈.同行.你的问题我知道.第一个头子是潮流的吧.他的设备的RTSP地址格式如下:[主码流]rtsp://xxx.xxx.xxx.xxx/0;[次码流]rtsp://xxx.xxx.xxx.xxx/4;你把这个地址给VLC.他就能播了.结尾是.html.比如rtsp://192.168.1.1/0
另外给你科谱下,http协议和rtsp协议是完全不同的.VLC能解析的是rtsp格式的视频流.
http开头的肯定不行的.这是网络报文.你用的Http:192.168.1.101/index.html这个地址只是访问了设备里的一个网页服务器.说白了你用IE访问的是一个网站.这个网站可以让你看视频.跟优酷一样.
但是RTSP协议是一种视频传输协议,它规定了一系列的握手信令.当VLC拿到你给的RTSP地址后,他先解析出IP地址,然后向目标IP发送试探信令OPTION.如果对方正确的回应了,它会继续发DESCRIBE,SETUP,PLAY的信令,当设备收到最后一个PALY信令后,开始把数据流发给VLC.这中间每一步都是有规范的.其中有一步不对,就认为对方不支持RTSP协议从而断开设备连接了.而在信令握手中,VLC会把你给的RTSP地址中IP后面的/0或者/4作为请求的具体内容发给设备,设备认为自己有这个内容就完成握手.如果没有.就断开了.
说白了,用VLC播放摄像头,一定要问厂商这个设备的RTSP地址格式.不然自己猜是猜不出来的.对了,也可以用ONVIF协议获取到.
------解决方案--------------------
更正一下,结尾不是.html
------解决方案--------------------
我又仔细看了下你的描述,你提到的外网访问设备问题.如果你把设备映射到外网,你要注意端口问题.你访问http的话你只需要设备开放80端口.而且使用RTSP协议的话.一般情况下,还需要设备开放554端口或者8557端口来进行信令交互,同时,一旦握手成功,设备和VLC之间的视频数据传输还需要打开另外的随机端口.
也就是说你如果是映射一个设备,那就要把设备的以上几个端口都映射出去.所以我认为你之所以VLC看不了是因为你端口没有映射全.至于为什么你在外网用网页可以看到设备的视频,我个人猜测你是映射了80端口,以及还有一个设备私有协议使用的端口.而他们的网页就是使用私有协议进行取流播放的.
总结一下,如果你是希望以外网的方式用RTSP协议去连接一个设备,那么需要设备开放的是554或8557端口,还需要映射随机的数据端口,所以说RTSP这样的方式不适合把设备映射到外网,还是需要自己做一个转发.
------解决方案--------------------
呀,楼上的都是些啥啊,不就是不知道怎么访问ip camera嘛。
我就是做这个东西的。
在你的网页里面找有关rtsp字眼,看到后,输入下面的uri把后面xxxx的换成你发现的.
rtsp://192.168.1.10/xxxx
情况是这样的:
单位分别购置了二个不同厂家的摄像头
厂家一:
摄像头可以直接访问Http:192.168.1.101/index.html就可以得到画面 如图:
然后我安装了个vlc播放器,镶嵌到网页中,得到如下画面:
问题:
现在把摄像头架设到外网,通过外网ip+端口 访问,在vlc地址输入rtsp://外网ip地址/index.html 则访问不到视频,说无法播放.但是输入http://外网ip地址/index.html得到的效果和图一 是一样的效果,可以看到视频画面。
厂家二:
该摄像头需要事先登录,才可以进行页面访问,登录成功后跳转 http://ip地址/index.html可以访问单个摄像头页面,而在vlc中,输入如上rtsp地址,根本都访问不到...
问题:如何能通过vlc直接读取rtsp视频流?
如果要进行二次开发,该如何开发?说下具体流程..
求大神指教,小弟叩谢....
------解决方案--------------------
二次开放就做个流媒体转发服务器
------解决方案--------------------
在内网做转发啊,内网是可以接收到的吧,然后转发出去
------解决方案--------------------
可以不这么做。自己开发个插件,网络渎取对方码流,显示。我以前做过。可以交流Q:1049568282
------解决方案--------------------
rtsp地址通常不会是rtsp://外网ip地址/index.html 。这个地址要从网页上分析获取,也可以抓包分析。如果是rtsp的话,拿到实际rtsp地址后,vlc可以直接播放,不需要转发什么的。
个人经验,摄像头不会对请求地址做过滤的。
------解决方案--------------------
这两个ipc,确认支持RTSP输出没有?
------解决方案--------------------
是不是端口映射问题
------解决方案--------------------
哈哈.同行.你的问题我知道.第一个头子是潮流的吧.他的设备的RTSP地址格式如下:[主码流]rtsp://xxx.xxx.xxx.xxx/0;[次码流]rtsp://xxx.xxx.xxx.xxx/4;你把这个地址给VLC.他就能播了.结尾是.html.比如rtsp://192.168.1.1/0
另外给你科谱下,http协议和rtsp协议是完全不同的.VLC能解析的是rtsp格式的视频流.
http开头的肯定不行的.这是网络报文.你用的Http:192.168.1.101/index.html这个地址只是访问了设备里的一个网页服务器.说白了你用IE访问的是一个网站.这个网站可以让你看视频.跟优酷一样.
但是RTSP协议是一种视频传输协议,它规定了一系列的握手信令.当VLC拿到你给的RTSP地址后,他先解析出IP地址,然后向目标IP发送试探信令OPTION.如果对方正确的回应了,它会继续发DESCRIBE,SETUP,PLAY的信令,当设备收到最后一个PALY信令后,开始把数据流发给VLC.这中间每一步都是有规范的.其中有一步不对,就认为对方不支持RTSP协议从而断开设备连接了.而在信令握手中,VLC会把你给的RTSP地址中IP后面的/0或者/4作为请求的具体内容发给设备,设备认为自己有这个内容就完成握手.如果没有.就断开了.
说白了,用VLC播放摄像头,一定要问厂商这个设备的RTSP地址格式.不然自己猜是猜不出来的.对了,也可以用ONVIF协议获取到.
------解决方案--------------------
更正一下,结尾不是.html
哈哈.同行.你的问题我知道.第一个头子是潮流的吧.他的设备的RTSP地址格式如下:[主码流]rtsp://xxx.xxx.xxx.xxx/0;[次码流]rtsp://xxx.xxx.xxx.xxx/4;你把这个地址给VLC.他就能播了.结尾是.html.比如rtsp://192.168.1.1/0
另外给你科谱下,http协议和rtsp协议是完全不同的.VLC能解析的是rtsp格式的视频流.
http开头的肯定不行的.这是网络报文.你用的Http:192.168.1.101/index.html这个地址只是访问了设备里的一个网页服务器.说白了你用IE访问的是一个网站.这个网站可以让你看视频.跟优酷一样.
但是RTSP协议是一种视频传输协议,它规定了一系列的握手信令.当VLC拿到你给的RTSP地址后,他先解析出IP地址,然后向目标IP发送试探信令OPTION.如果对方正确的回应了,它会继续发DESCRIBE,SETUP,PLAY的信令,当设备收到最后一个PALY信令后,开始把数据流发给VLC.这中间每一步都是有规范的.其中有一步不对,就认为对方不支持RTSP协议从而断开设备连接了.而在信令握手中,VLC会把你给的RTSP地址中IP后面的/0或者/4作为请求的具体内容发给设备,设备认为自己有这个内容就完成握手.如果没有.就断开了.
说白了,用VLC播放摄像头,一定要问厂商这个设备的RTSP地址格式.不然自己猜是猜不出来的.对了,也可以用ONVIF协议获取到.
------解决方案--------------------
我又仔细看了下你的描述,你提到的外网访问设备问题.如果你把设备映射到外网,你要注意端口问题.你访问http的话你只需要设备开放80端口.而且使用RTSP协议的话.一般情况下,还需要设备开放554端口或者8557端口来进行信令交互,同时,一旦握手成功,设备和VLC之间的视频数据传输还需要打开另外的随机端口.
也就是说你如果是映射一个设备,那就要把设备的以上几个端口都映射出去.所以我认为你之所以VLC看不了是因为你端口没有映射全.至于为什么你在外网用网页可以看到设备的视频,我个人猜测你是映射了80端口,以及还有一个设备私有协议使用的端口.而他们的网页就是使用私有协议进行取流播放的.
总结一下,如果你是希望以外网的方式用RTSP协议去连接一个设备,那么需要设备开放的是554或8557端口,还需要映射随机的数据端口,所以说RTSP这样的方式不适合把设备映射到外网,还是需要自己做一个转发.
------解决方案--------------------
呀,楼上的都是些啥啊,不就是不知道怎么访问ip camera嘛。
我就是做这个东西的。
在你的网页里面找有关rtsp字眼,看到后,输入下面的uri把后面xxxx的换成你发现的.
rtsp://192.168.1.10/xxxx