php对接海康视频教程_web对接海康威视rtsp视频流
最近项目需要对接海康威视的摄像头,兜兜转转摸索了一周,试了各种方法记录如下:
7 i7 R' I+ h. D一,利用海康威视提供web3.0控件开发包
8 U0 d5 O3 ~2 R3 J$ E. B! X' z3 }7 J- q
拿到海康威视摄像头,就到他们官网下载了sdk开发包,心里还想这个应该不会太难,毕竟海康也算大公司,各种对接方式应该都是成熟的,打开sdk包里面还是挺齐全的MFC、java、c#都有,依次调试里一下,都能对接成功,不过不是我想要web方式对接,都是C/S架构的,我想要的是B/S方式对接。* o* Z! U( H, M# J1 O
联系海康技术要了web3.0的开发包,基于ActiveX或者NPAPI插件,提供封装好的js接口。先安装\demo\codebase中WebComponentsKit.exe插件,之后打开\demo\cn中demo.html测试。
' {9 N- }; C3 [9 x: |4 }该控件开发包对浏览器版本有要求,具体看下注意事项中说明。# n3 T2 l. v: _/ N$ V) H
32位浏览器:( t' H7 S9 G! c% @3 g! G8 z5 y
https://one.hikvision.com/#/link/JIlpt2mBpcwvkhj2MNXw提取密码:c2wq
+ S" Z6 |9 L# u) J6 v/ | O$ N64位浏览器:
% P) @! t1 N( `# `% a3 ^" ihttps://one.hikvision.com/#/link/YMBApRWUh0MYbul3YQeJ提取密码:GT2c
- Z1 X# W) z& v! \7 Z, J& h/ m1 {$ N* H( [注意事项:, w' K& M; Z2 M, R& a
1.支持的浏览器有:IE6~IE11、Chrome8~ Chrome42、Firefox3.5~ Firefox52(32位,64位是到Firefox40)、Safari5.0.2+,需要浏览器支持NPAPI。
% H) R& ]3 K2 I" d2 Q/ y4 N4 x2.我们这个插件是根据浏览器位数来的,比如说您64位电脑,使用的32位浏览器,则需要安装32位浏览器。如果出现已安装插件,但是仍旧提示未安装插件,可以将32位插件和64位插件都安装一下之后再用IE打开我们demo.html测试下,这个是不影响的。: ~( i7 \) s, ]6 x& S
3.我们WEB3.0控件开发包,登陆使用的是HTTP端口(默认80).) }6 s# r% q3 `. l/ O; v/ a
可惜这种方式不支持高版本chrome浏览器,项目又是基于chrome浏览器开发的,基本放弃了ie,只能另外想办法解决!!!4 G8 G" Q; W1 E* L/ o4 m
二,VLC
) q; M& b" e+ R9 C2 N) B R/ P/ t; [4 e" E- R6 g3 v7 R
利用vlc播放器把rtsp转http/ r3 R" z+ T+ s+ t" N
在官网下载https://www.videolan.org. v( ^6 ]" I" I3 J' n* O j4 ~
并安装! {% U2 [2 Z$ G
. Z& z& s0 q+ ^0 _9 q
6 A0 n7 J+ j& v$ G: H3 _$ ]
9 t/ o- [" _. P0 ]& f5 U9 [$ T+ G) p" [" P
- {1 y# C! `1 C
$ m% E4 H6 Y, b% P. X# {
# g. Z7 s$ j3 Q+ Q% P8 z6 Y
5 b9 z+ j% b" z
" [, c) d" ]5 @4 C8 I* c8 l+ l p/ g8 _. ?8 e: s. h/ h: J- f0 T
! D* o9 ^- D" B! w6 i: i" p+ N" X
7 a8 e0 t* k! ^
B1 w) L. T n D
# g8 f+ C# x3 C$ R3 A1 K
6 h4 D/ y: Y$ _3 e0 K u
6 E$ V; t6 `" L) Z: Y) {
局域网内访问/ I8 W& G! ^. ?3 ]5 h& r: M) `& u
$ g- ]3 A7 t2 d( t) w5 | r
7 b9 r6 f! t+ z, }不支持, S3 [* I8 v% i$ \- ?, R+ v0 B F
) r0 a1 Z5 P" I7 q/ V* v, q% \. ^/ ?: E6 N: e
7 J! V! ^, |1 z1 U) r1 T7 v% R1 J
: E% x8 t" K- ]4 p
三,ffmpeg+Nginx(windows配置)0 T5 r1 p5 q. Q4 M, e% l- _9 w) C
" S) o, [5 ~& n4 J5 v9 F下载ffmpeg:https://ffmpeg.zeranoe.com/builds/3 Z g; E0 T4 W% k) T/ {' {& r$ _
3 H P+ e! R+ ?6 x# {5 K
; Y& T% \+ {$ @( [
下载后解压
. G' {. G6 k N% K, A7 E1 Q: g7 x9 _# @' S* [7 |/ T
. p$ T' i+ T) |" m6 g
下载nginx.exe:https://github.com/illuspas/nginx-rtmp-win32
: m7 n4 w( E8 m' o: E8 v1 J* j/ x: |* ^9 [# S A \
% Q" ]) ?9 h C S$ |6 `
打开cmd运行
) ^. f9 o8 C7 `5 b. cffmpeg -re -i rtsp://admin:a1234567@192.168.1.227:554/Streaming/Channels/101?transportmode=unicast -c copy -f flv rtmp://localhost:1935/live/room
$ @# d) u; @: h. O, ~, T. o3 \8 |! ~% ^( u( z& G
* e5 M8 W0 O$ p) P& _
浏览器显示,需要浏览器允许flash- T; r7 F& \ n! ~: X
4 r/ W- Y2 H6 ?4 n
; `8 s# H( d2 W1 M; H* P- |. A $ x2 O Y& f2 f: v% T
playerOptions:{' P9 z2 H! N6 _$ ^6 Q. r0 d% s
live:true,
7 Q* W: X- f* b; Vautoplay:true,
; A) y9 `) z( |fluid:true,! U& m$ y, `0 @8 t
notSupportedMessage:'暂时无法播放',- b2 ~( [+ y) k& v
controlBar:{! m; D7 k) n3 ~7 \9 n4 u3 h
timeDivider:true,) T' ~- k! }; y, e1 ?0 F& }
durationDisplay:true,) q# ], z9 E5 A: y
remainingTimeDisplay:false,
6 s* O5 Z3 i7 T( Q5 ufullscreenToggle:true//全屏按钮. F" }$ r% Y6 T) K7 B9 s: O
},
" [; j& j& A! D/ ?- ^6 ytechOrder:['flash'],
3 h% }7 d3 @, f7 y- A4 Dflash:{
7 q) ]& d8 @# T0 shls:{withCredentials:false}! D' j- R% w2 P! d
//swf:SWF_URL//引入静态文件swf$ e, z5 q( X: i" h0 L9 D1 I, O
},
4 a( M; H9 y4 W3 z5 x; Isources:[3 h: l$ v; n% T1 b% ^( x% v. t
{7 S1 d& H' ?; L: g; _9 t1 g7 a
//流配置,数组形式,会根据兼容顺序自动切换/ Z! k8 Y, q# x1 [
type:'rtmp/mp4',
' y. m% \# ^' r6 e( ]2 r& wsrc:'rtmp://localhost:1935/live/room'
. J1 Q+ i k7 D: A1 J9 r}
+ m0 j Q+ M3 y6 K1 G]
1 ]4 @$ l5 c9 H+ @" p2 t }
9 r4 W9 C4 w& \9 X- p8 `* d' }1 x* V8 u3 p/ v; w+ N& t- i! \
6 Q! ]& e: [+ y, S( x
四,ffmpeg+Nginx(Linux配置)* O# }+ J& R5 U- M. c; A7 _# Z
5 z0 R, s3 T2 j& d
##########下面所有步骤均在centos7上进行########
" Y6 U5 H0 u. k/ g K8 s1、nginx安装依赖' |5 L5 p5 j' s4 C9 k/ [
yum install gcc
; _' l$ R8 w7 [5 [6 C" C yum -y install zlib-devel #zlib-devel:压缩依赖包
3 x4 c7 f! k _ L yum -y install openssl-devel #openssl-devel:提供ssl/tls功能+ o; K; Q2 l4 P% D2 K" ]1 y) m
yum -y install pcre-devel #pcre-devle:支持地址重写rewrite/ Q ]+ l& u( e! R1 |! o0 D# R
2、关闭selinux/ c+ j) S( l8 l: `9 n6 N- O
查看 selinux 状态:/usr/sbin/sestatus -v
$ U2 p, N3 [) c% S 临时关闭(不用重启机器):
7 C; N% }4 X/ s setenforce 0 ##设置SELinux 成为permissive模式, _ O) h0 }$ x3 Z
##setenforce 1 设置SELinux 成为enforcing模式9 X: t' [1 b1 @
修改/etc/selinux/config 文件
4 }/ P7 [/ x5 Q% L 将SELINUX=enforcing改为SELINUX=disabled 重启机器即可
- N# {1 s5 {8 H$ h o. E1 B( `3、为nginx运行创建帐号、组
4 \" I! i5 S$ i$ s) k' @ groupadd -r nginx
6 F# Q# t) {% a: `. a5 [2 E useradd -s /sbin/nolgoin -g nginx -r nginx
7 E* X3 z! }, @8 Y& ^1 w4、文件下载& C' y! k* r# f9 U# v9 x" G
下载rtmp流媒体插件2 b6 r& o4 A- a9 X; H" l. q$ X
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
1 M: |7 [4 m' [; p 下载nginx源码$ Z$ ]0 d* {* g. _4 w
wget http://nginx.org/download/nginx-1.14.2.tar.gz
Y4 [( w2 @7 ?5、编译nginx 将rtmp模块编译安装进nginx# f0 u6 K: a! \# q% [$ {( @
cd /opt/nginx/nginx-1.14.2
( d- r0 A _( z4 q1 I( E [root@1-251 nginx-1.14.2]# ./configure \
0 q7 y& C/ A/ O( v8 z > --add-module=/opt/rtmp/nginx-rtmp-module-master \ #rtmp模块
) w; r9 m: g/ o7 b > --prefix=/usr/local/nginx \
. }' v0 h4 y0 k# o( n: h+ c4 b# e" E > --conf-path=/etc/nginx/nginx.conf \5 V2 w! H: a5 }; V# k1 r' ]. ?, W
> --error-log-path=/var/log/nginx/erro.log \/ k I* f2 N% c. d0 \
> --pid-path=/var/run/nginx/nginx.pid \- z! v. ?5 V0 {% Q% [0 a
> --lock-path=/var/lock/nginx.lock \
( K$ P5 G7 v5 B% h$ C% y8 | > --user=nginx \
. X( c1 F; U: d$ k) T > --group=nginx \
& y8 G k- X" r: g: H > --with-http_ssl_module \# o- E$ s" K' h
> --with-http_stub_status_module \
0 r2 ^ v4 O2 ]" F9 d% @ > --with-select_module \/ }+ P' x$ Z# I( l- ^: y( A
> --with-poll_module \
$ i( M1 Q& K" X& Z' k5 t4 J7 S, p$ _, c > --with-threads \2 J6 i. c: E. a. S- p
> --with-debug \- P5 R; o6 s6 V6 |. `- j
> --with-http_ssl_module \" `4 J" y" m8 j" v6 {4 |
> --with-http_v2_module \
Q: x- s" b. j. |) q > --with-http_gzip_static_module \
- d* S. }4 s2 K9 R; [' f > --with-perl=/usr/local/bin \
1 {1 u" V( B% U5 G+ P% B# p6 R( s > --http-client-body-temp-path=/var/tmp/nginx/client \
2 X0 {- H: l* x! J0 m# ~% \ }6 f > --http-proxy-temp-path=/var/tmp/nginx/proxy \
, Y' Z; B- L2 N: X# L# Q1 P* ^ > --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi \
% Z' C W4 ^9 l% e) @" `, R > --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
+ h3 ~9 l& e9 x. L >
; ?+ n* U0 ~8 g6、编译完成3 V, M+ G$ \) c* M* y; D
5 u) C% Y8 e2 A5 z5 ~3 F% | nginx path prefix: "/usr/local/1 H0 c- a9 v4 i/ J
Java吧 收集整理 java论坛 www.java8.com
php对接海康视频教程_web对接海康威视rtsp视频流相关推荐
- 海康摄像头取、录像机RTSP视频流的字串格式
海康摄像头取.录像机RTSP视频流的字串格式 主码流 rtsp://IP:554/h264/ch1/main/av_stream rtsp://IP:554/ISAPI/streaming/chann ...
- php对接海康视频教程_EasyNVR无插件互联网直播平台对接海康摄像头如何通过SDK将视频在前端网页播放...
原标题:EasyNVR无插件互联网直播平台对接海康摄像头如何通过SDK将视频在前端网页播放 市场上常见的海康.大华.宇视等网络摄像头只要支持RTSP协议,都可以接入到EasyNVR中,今天主要给大家分 ...
- 国标服务器GBServerPlatform对接海康摄像头的操作说明
这篇文章讲解一下QuickGBLink开发的国标服务器如何对接海康IPC. (GBT28181国标平台软件下载地址:https://github.com/QuickGBLink88/GB28181_S ...
- 对接海康设备-vue
海康官方Demo 海康开放平台 对接海康综合安防管理摄像头 说明:官方Demo是原js代码,自己改改就能用,非常简单,下面这个是改成vue的 浏览器需要装的插件↓↓↓↓ https://downloa ...
- php对接海康api样例
php对接海康api样例 直接上代码 <?php/*** Author hlx * Email 5644139**@qq.com * time 2019-01-31 */ header('Con ...
- live555作为RTSP流媒体服务器RTSPServer时解决对接海康NVR时G711音频不能正常播放的问题
live555作为NVR内置的流媒体服务器RTSPServer在对接海康NVR,视频正常,音频不能正常播放, 但VLC可以正常播放. 经过问题的分析,发现live555作为NVR流媒体服务器输出视频为 ...
- EasyRTSPServer流媒体服务协议网络视频直播平台对接海康NVR音频不能正常播问题解决方案
背景分析 众所周知,RTSP协议是一个流媒体协议,可以实现直播和点播形式的音频与视频流的播放.RTSP协议定义了多种服务器-客户端之间交互的接口,主要有OPTIONS,DESCRIBE,SETUP,P ...
- java对接海康LED
--------------------------------------------对接海康LED类------------------------------------------------ ...
- Unity海康视屏对接
通过对接海康SDK,获取视屏流回调.经过解码得到YUV格式的图片,最后通过Shader把YUV数据显示出来. 也可以通过Rtsp协议,直接获取视屏流显示.这个貌似Unity中已经有插件支持了,UMP. ...
- 国标服务器GBServerPlatform对接海康NVR的操作说明
这一篇文章介绍QuickGBLink开发的国标服务器如何对接海康NVR(网络硬盘录像机),主要讲解相关的操作步骤. (GBT28181平台软件下载地址:https://github.com/Quick ...
最新文章
- python虚拟环境 virtualenv工具
- Aix5.3安装Bash环境
- 不知所措:您是否真的需要为您的API提供客户端库?
- Jaxb annotation使用
- MongoDB(4)--MongoDB服务的启动
- ES6进阶Async与Await,你不知道的同步与异步
- 今日头条java后端四面_今日头条笔试第二批后端开发第一题java实现
- AI人机对战五子棋游戏【Python(pygame)+AI】并实现软件输出
- linux bt下载软件推荐,分享|Ubuntu 下五个最好的 BT 客户端
- UVM糖果爱好者教程 - 31.provides_responses?
- c语言龟兔赛跑程序,c语言龟兔赛跑
- 注册昵称时限制 中文7个字 字母21个
- oracle付款汇兑损益怎么产生,汇兑损益产生的原因及会计处理原则是什么
- 学 Rust 要几天?「GitHub 热点速览 v.22.51」
- 电路其他基本元器件(蜂鸣器、晶振等)
- 对学校的希望和寄语_家长写给孩子表达鼓励与期望的话
- “天下武功唯快不破”--常见高频交易策略简介
- 点击BootStrap下拉框无反应
- 如何换照片背景底色?在线证件照换背景怎么换
- 2013 年科技界即将发生的 10 件大事
热门文章
- moment.js获取一周的第一天
- 复选框样式圆圈html,css怎么美化复选框样式
- java冒泡排序和插入排序
- 75. 颜色分类(图解)
- 三维文件格式 abc, glTF, fbx, obj, dae, stl, 3ds, ply,...
- 利用jQuery实现三级侧边导航栏
- 松花江等三流域禁渔效果不理想 跨界水域成管理盲区
- 矩阵卷积、矩阵相乘以及频域相乘之间的关系
- 互联网公司招聘--今日头条--产品经理-2017年笔试题1
- 基于Android的防疫信息管理系统源码【包调试运行】