海康摄像头音频方案(播放音频文件+语音对讲+语音转发)-支持window/Linux-java版本
应用场景:
1. 有告警出现时,海康摄像头能自动播报(如:禁止游泳,请快速里离开);
2. 在web页面点击“开始对讲”,能讲PC上的麦克风声音传输到海康摄像头进行对讲;点击“停止对讲”,海康摄像头停止对讲;
技术实现:
使用海康的SDK实现,nettyserver框架,提供webapi接口及websocket接口,兼容window、linux
警告:经测试linux稳定,window容易出现J 1031 C1 com.sun.proxy.$Proxy0.NET_DVR_EncodeG711Frame(Lcom/sun/jna/Pointer;Lcommon/HCNetSDK$NET_DVR_AUDIOENC_PROCESS_PARAM;)Z (43 bytes) @ 0x00000000035202fc [0x000000000351ff00+0x3fc]
软件功能:
1. 集成海康SDK
2. WebAPI接口(PlayMedia,StartTalk,StopTalk),采集的是本地音频数据
3. WebSocket接口,讲web用户的音频数据转发到Server程序,通过SDK发送至海康摄像机
对讲初始化
H5->Server 发送指令 StartTalk::{ "ip": "192.168.3.2", "port": 8000, "name": "admin", "password": "yswy123456" }
Server->H5 返回指令 StartTalk::ACK_OK
Server->H5 返回指令 StartTalk::ACK_ERROE
开始对讲
H5->Server 发送指令 Base64音频字符串
结束对讲
H5->Server 发送指令 StopTalk::
Server->H5 返回指令 StopTalk::ACK_OK
Server->H5 返回指令 StartTalk::ACK_ERROR
4. 链路检查超时退出SDK
测试报告
音频播放
开始对讲
结束对讲
方案内容
相关配置
1. 海康相机音频配置
2. 将dll/so文件拷贝至系统目录下
window:C:/Windows/System32
linux: /usr/lib
3. pcm制作
1. 安装ekho-5.8.exe
2. 安装girl_xiaokun.exe
3. 运行ttsapp.exe
4.使用UltraEdit编辑,然后选中文件头的44个字节并剪切(因为退格键不管用),将这44个字节删掉,另存为pcm文件
核心代码
// 开始音频文件static void StartMedia(Camera entity, String sfilePath){ lockAudio.lock();HCNetSDK.NET_DVR_COMPRESSION_AUDIO lpCompressAudio = new HCNetSDK.NET_DVR_COMPRESSION_AUDIO();boolean net_DVR_GetCurrentAudioCompress = hCNetSDK.NET_DVR_GetCurrentAudioCompress(entity.UserID, lpCompressAudio); if (!net_DVR_GetCurrentAudioCompress) return;byte byAudioEncType = lpCompressAudio.byAudioEncType;byte byAudioSamplingRate = lpCompressAudio.byAudioSamplingRate;byte byAudioBitRate = lpCompressAudio.byAudioBitRate;byte bySupport = lpCompressAudio.bySupport;System.out.println("音频编码类型=" + byAudioEncType + " 音频采样率=" + byAudioSamplingRate + " 音频码率=" + byAudioBitRate + " bySupport=" + bySupport);NativeLong mr = hCNetSDK.NET_DVR_StartVoiceCom_MR_V30(entity.UserID, 1, null, null); File file = new File(sfilePath); FileInputStream inputStream = null;try{inputStream = new FileInputStream(file);Memory pInBuff = new Memory(file.length());pInBuff.clear();if (pInBuff != Memory.NULL) {int buffLen = 320; long currFileLen = 0; int readLen;byte[] buffer = new byte[buffLen];Memory pIB = new Memory(buffLen);while (currFileLen < file.length()) {entity.LastTime = System.currentTimeMillis();readLen = inputStream.read(buffer);pIB.write(0, buffer, 0, readLen);currFileLen += readLen;Memory pOutBuffer = new Memory(buffLen);HCNetSDK.NET_DVR_AUDIOENC_INFO enc_info = new HCNetSDK.NET_DVR_AUDIOENC_INFO();enc_info.in_frame_size = buffLen;Pointer encoder = hCNetSDK.NET_DVR_InitG711Encoder(enc_info);//HCNetSDK.NET_DVR_AUDIOENC_PROCESS_PARAM param = new HCNetSDK.NET_DVR_AUDIOENC_PROCESS_PARAM();param.in_buf = pIB;param.out_buf = pOutBuffer;param.out_frame_size = 160;param.g711_type = 0;boolean frame = hCNetSDK.NET_DVR_EncodeG711Frame(encoder, param);if (!frame) {int iErr = hCNetSDK.NET_DVR_GetLastError();System.out.println("G711音频编码失败!iErr = " + iErr);break;} frame = hCNetSDK.NET_DVR_ReleaseG711Encoder(encoder); if (!frame) {int iErr = hCNetSDK.NET_DVR_GetLastError();System.out.println("G711音频编码失败!iErr = " + iErr);break;}boolean sendData = hCNetSDK.NET_DVR_VoiceComSendData(mr, pOutBuffer, 160);if (!sendData) {int iErr = hCNetSDK.NET_DVR_GetLastError();System.out.println("转发语音数据!iErr = " + iErr);break;}Thread.sleep(20);}} } catch (Exception ex){DataHelper.AddExceptionStackTrace("[Error] StartMedia", ex); }finally{if (null != inputStream) { try { inputStream.close(); } catch(Exception e) {} }lockAudio.unlock();} hCNetSDK.NET_DVR_StopVoiceCom(mr);System.out.println("读取完成"); }
qq:505645074
海康摄像头音频方案(播放音频文件+语音对讲+语音转发)-支持window/Linux-java版本相关推荐
- 海康摄像头web集成播放,ffmpeg+nginx方案
首先介绍下海康设备对接方案,目前主流的是通过海康的api对接和硬件sdk,api的话需要配套海康的萤石平台或者安防平台,官网可以下载,他们提供健全的api接口满足正常的web浏览器调用,sdk的话对于 ...
- web播放海康摄像头rstp流
海康摄像头直接前端播放. 1.获取海康摄像头rstp流地址.这个地址是个固定格式. 老版本的格式 rtsp://[username]:[password]@[ip]:[port]/[codec]/[c ...
- 海康摄像头Sdk的使用 java Demo(idea 车牌识别,报警监听)
最近用到海康摄像头,起初遇到许多问题,发现网上没有比较直观的java demo,现在将其总结下,希望可以帮助大家 初步使用sdk 首先去官方下sdk:http://www.hikvision.com/ ...
- 海康摄像头音频编码获取
画面合成中,需要音频数据推送(Pusher),经过大量测试发现, 海康摄像头分为2种: 1.视频服务器类,音频编码格式为G711U,在海康客户端软件中不能配置 2.摄像头类,音频编码包含G711A,G ...
- QT5.6 MSVC编译器 实现-海康摄像头,获取H.264裸码流并通过libmp4V2实现MP4写封装生成MP4视频文件
前言 当前,在国内安防领域,海康摄像头一直是受各个解决方案比较青睐的摄像头选择.本项目主要应用海康摄像头对桥梁道路车辆运行情况进行监控.当桥梁称重系统检测到车辆异常信号后,触发摄像服务程序,采集摄像头 ...
- 海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储
文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131679108 红胖子(红模仿)的博文大全:开发技术集合( ...
- 采用EasyNVR网页无插件互联网直播平台对接海康摄像头如何通过SDK将视频在前端网页上进行播放?
背景分析 安防摄像头在进行互联网直播中所使用的EasyNVR核心在于摄像机的音视频流的获取.转换.转码与高性能分发,同时同步完成对实时直播流的录像存储,在客户端(PC浏览器.Android.iOS.微 ...
- vue webRTC播放海康摄像头实时画面延迟1s内
最终效果 主要参考地址,:https://blog.csdn.net/qq_45777115/article/details/118054927?spm=1001.2014.3001.5502 htt ...
- 使用海康摄像头保存的mp4文件,无法web端预览的问题,现已解决,记录一下
最近在做一个项目,需要用到海康的录像视频,在自己开发的web端能够正常播放,格式是MP4的,本来以为是个简单的需求,没想到遇到了好多坑,特此记录: 首先,由于是联动系统,项目用到的录像文件存到的是另一 ...
- php对接海康视频教程_EasyNVR无插件互联网直播平台对接海康摄像头如何通过SDK将视频在前端网页播放...
原标题:EasyNVR无插件互联网直播平台对接海康摄像头如何通过SDK将视频在前端网页播放 市场上常见的海康.大华.宇视等网络摄像头只要支持RTSP协议,都可以接入到EasyNVR中,今天主要给大家分 ...
最新文章
- 人工智能写手,好用吗?
- 复杂数据权限设计方案
- mft文件记录属性头包括_关于NTFS-MFT
- css类选择器或逻辑,深入理解CSS中选择器的逻辑处理
- logger 参数列表过长_[源码级解析] 巧妙解决并深度分析Linux下rm命令提示参数列表过长的问题...
- 阿里云运行python项目_荐个人博客开发-06:Nginx + uWSGI + Django项目部署到阿里云服务器运行...
- apache 添加虚拟机
- 进程隐藏、驱动加载的小工具...
- 弱电设计:智能建筑设计标准GB50314-2015,pdf版本
- 【模拟电子技术基础】学习笔记 第一章 半导体二极管
- 台式计算机没有任务栏,电脑任务栏不见了怎么恢复 电脑任务栏怎么设置并排显示...
- uniapp 日期时间 计算
- 面试官都会问些什么问题?
- QQ勋章墙工具-支持所有版本完成QQ等级加速
- 算法训练 4-2找公倍数
- 使用wait函数获取子进程终止状态
- 苹果计算机取消用户名和密码进入不,苹果电脑怎么设置不用密码开机
- 苹果Mac mini装win 7系统
- 【GDOI2017模拟8.14】守鹤之砂
- android11 源码内置第三方输入法并默认选择