[java]如何在web浏览器上实时监控摄像头?
问题描述
摄像头是海康威视的,不用海康威视自带的后台系统监控系统,想自己写一个网页显示。本来以为很简单的事,但发现还是有难度的,后台获取摄像头的数据流大概是ByteByReference类型。海康威视里面的开发实例是个jFrame的实例,线索追踪到
if (!playControl.PlayM4_InputData(m_lPort.getValue(), pBuffer, dwBufSize)) //输入流数据 {break; }
之后就想消失掉了一样,只在PlayCtrl这里定义了一句:
boolean PlayM4_InputData(NativeLong nPort, ByteByReference pBuf, int nSize);
搜索全部java文件都没有这个接口的实现,可能是隐藏在了那些(我看不懂的)库文件里了。而且pBuffer这个应该指的就是数据流吧,但它在哪里赋值的也不清楚.
*******(以上都是废话)*******我的设想是:用socket长链接传送ByteByReference数据给浏览器。但是现在有个问题:浏览器要怎么接收和解释这类型的数据啊??:( 向各位大侠请教一下。Thanks.还有一个问题是PlayM4_InputData里面处理过些什么也不知道,所以pBuffer是不是在输出之前改过也不清楚。
[用插件的方法]要下载一个VLC软件,还得只能在IE浏览器上运行。
<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Streamedian player example</title></head><body><object type=’application/x-vlc-plugin’ pluginspage='http://www.videolan.org/' id=’vlc’ events=’false’ height='410'> <param name=’mrl’ value=’rtsp://admin:hx123456@113.106.249.238:554/Streaming/Channels/101?transportmode=unicast’ /> <param name=’volume’ value=’50’ /> <param name=’autoplay’ value=’true’ /> <param name=’loop’ value=’false’ /> <param name=’fullscreen’ value=’false’ /> <param name=’controls’ value=’false’ /></object></body></html>
问题解答
回答1:建议使用视频发布软件把摄像头发布成RTMP的视频流。然后在客户端播放这个视频流
回答2:你好楼主,你的意思是下载了vlc,使用下面的代码,把rtsp://admin:hx123456@113.106.249.238:554/Streaming/Channels/101?transportmode=unicast’这些参数改成自己的就可以获取到海康威视的监控画面了吗?
回答3:最简单的方式,接入萤石云,设置直播,会提供M3U8的URL网址,可以在现代浏览器(包括手机)中直接播放不用任何插件,一些操作可以直接调用萤石云提供的HTTP API,缺点是需要购买萤石云的流量(很便宜,数量少貌似是免费的)
相关文章:
1. PHP中的$this代表当前的类还是方法?2. javascript - vue2.0中使用vue2-dropzone的demo,vue2-dropzone的github网址是什么??百度不到。3. html5 - 目前 公司App 嵌入H5页面 做个 手机支付功能 没有做过 所以 请求各位有经验的 给个思路4. IOS app应用软件的id号怎么查询?比如百度贴吧的app-id=4779278135. javascript - 用swiper.js实现h5多篇文章滑动 点击文章跳转全文是另外的页面 点击返回滑动界面怎么定位到相应的swiper_slide6. javascript - avalon.js ms-on 事件绑定无效 ?7. java - butterknife怎么绑定多个view8. 鼠标过导航标签时,无效果,请问如何查找问题9. html - 这种错位的时间轴怎么布局,然后用css实现?10. java - spring-data Jpa 不需要执行save 语句,Set字段就可以自动执行保存的方法?求解