应用场景:

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版本相关推荐

  1. 海康摄像头web集成播放,ffmpeg+nginx方案

    首先介绍下海康设备对接方案,目前主流的是通过海康的api对接和硬件sdk,api的话需要配套海康的萤石平台或者安防平台,官网可以下载,他们提供健全的api接口满足正常的web浏览器调用,sdk的话对于 ...

  2. web播放海康摄像头rstp流

    海康摄像头直接前端播放. 1.获取海康摄像头rstp流地址.这个地址是个固定格式. 老版本的格式 rtsp://[username]:[password]@[ip]:[port]/[codec]/[c ...

  3. 海康摄像头Sdk的使用 java Demo(idea 车牌识别,报警监听)

    最近用到海康摄像头,起初遇到许多问题,发现网上没有比较直观的java demo,现在将其总结下,希望可以帮助大家 初步使用sdk 首先去官方下sdk:http://www.hikvision.com/ ...

  4. 海康摄像头音频编码获取

    画面合成中,需要音频数据推送(Pusher),经过大量测试发现, 海康摄像头分为2种: 1.视频服务器类,音频编码格式为G711U,在海康客户端软件中不能配置 2.摄像头类,音频编码包含G711A,G ...

  5. QT5.6 MSVC编译器 实现-海康摄像头,获取H.264裸码流并通过libmp4V2实现MP4写封装生成MP4视频文件

    前言 当前,在国内安防领域,海康摄像头一直是受各个解决方案比较青睐的摄像头选择.本项目主要应用海康摄像头对桥梁道路车辆运行情况进行监控.当桥梁称重系统检测到车辆异常信号后,触发摄像服务程序,采集摄像头 ...

  6. 海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储

    文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131679108 红胖子(红模仿)的博文大全:开发技术集合( ...

  7. 采用EasyNVR网页无插件互联网直播平台对接海康摄像头如何通过SDK将视频在前端网页上进行播放?

    背景分析 安防摄像头在进行互联网直播中所使用的EasyNVR核心在于摄像机的音视频流的获取.转换.转码与高性能分发,同时同步完成对实时直播流的录像存储,在客户端(PC浏览器.Android.iOS.微 ...

  8. vue webRTC播放海康摄像头实时画面延迟1s内

    最终效果 主要参考地址,:https://blog.csdn.net/qq_45777115/article/details/118054927?spm=1001.2014.3001.5502 htt ...

  9. 使用海康摄像头保存的mp4文件,无法web端预览的问题,现已解决,记录一下

    最近在做一个项目,需要用到海康的录像视频,在自己开发的web端能够正常播放,格式是MP4的,本来以为是个简单的需求,没想到遇到了好多坑,特此记录: 首先,由于是联动系统,项目用到的录像文件存到的是另一 ...

  10. php对接海康视频教程_EasyNVR无插件互联网直播平台对接海康摄像头如何通过SDK将视频在前端网页播放...

    原标题:EasyNVR无插件互联网直播平台对接海康摄像头如何通过SDK将视频在前端网页播放 市场上常见的海康.大华.宇视等网络摄像头只要支持RTSP协议,都可以接入到EasyNVR中,今天主要给大家分 ...

最新文章

  1. 人工智能写手,好用吗?
  2. 复杂数据权限设计方案
  3. mft文件记录属性头包括_关于NTFS-MFT
  4. css类选择器或逻辑,深入理解CSS中选择器的逻辑处理
  5. logger 参数列表过长_[源码级解析] 巧妙解决并深度分析Linux下rm命令提示参数列表过长的问题...
  6. 阿里云运行python项目_荐个人博客开发-06:Nginx + uWSGI + Django项目部署到阿里云服务器运行...
  7. apache 添加虚拟机
  8. 进程隐藏、驱动加载的小工具...
  9. 弱电设计:智能建筑设计标准GB50314-2015,pdf版本
  10. 【模拟电子技术基础】学习笔记 第一章 半导体二极管
  11. 台式计算机没有任务栏,电脑任务栏不见了怎么恢复 电脑任务栏怎么设置并排显示...
  12. uniapp 日期时间 计算
  13. 面试官都会问些什么问题?
  14. QQ勋章墙工具-支持所有版本完成QQ等级加速
  15. 算法训练 4-2找公倍数
  16. 使用wait函数获取子进程终止状态
  17. 苹果计算机取消用户名和密码进入不,苹果电脑怎么设置不用密码开机
  18. 苹果Mac mini装win 7系统
  19. 【GDOI2017模拟8.14】守鹤之砂
  20. android11 源码内置第三方输入法并默认选择

热门文章

  1. 大学计算机专业用ipad pro够用吗,苹果iPad Pro上很合适学生党的几个专业App
  2. 有没有一种让人欲罢不能的学习方法?
  3. multi task训练torch_torch中创建multitask网络结构
  4. Action语义学综述
  5. 基于网络信息安全技术管理的计算机应用研究
  6. 内存结构、地址总线、数据总线详解
  7. 【软件构造】过程与配置管理
  8. Eplan教程——线束的使用
  9. 网上图书商城项目学习笔记-022易宝支付
  10. 三级管和场效应管驱动电路设计及使用