﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GPS软件平台开发技术博客 &#187; 语音对讲</title>
	<atom:link href="http://www.jt808.com/?feed=rss2&#038;tag=%E8%AF%AD%E9%9F%B3%E5%AF%B9%E8%AE%B2" rel="self" type="application/rss+xml" />
	<link>http://www.jt808.com</link>
	<description>帮助IT团队快速构建符合部标的GPS和视频平台(2379423771@qq.com)</description>
	<lastBuildDate>Sun, 03 Nov 2024 04:30:16 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.1</generator>
		<item>
		<title>JTT1078协议双向语音对讲和广播开发指南</title>
		<link>http://www.jt808.com/?p=1956</link>
		<comments>http://www.jt808.com/?p=1956#comments</comments>
		<pubDate>Sun, 06 Oct 2024 08:31:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[苏标主动安全]]></category>
		<category><![CDATA[部标1078视频监控]]></category>
		<category><![CDATA[jt1078]]></category>
		<category><![CDATA[苏标主动安全平台]]></category>
		<category><![CDATA[语音对讲]]></category>

		<guid isPermaLink="false">http://www.jt808.com/?p=1956</guid>
		<description><![CDATA[部标JTT1078标准支持双向语音对讲和广播的功能，终端设备可以通过麦克风接收语音信息，并通过扬声器播放语音信 [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><font face="Calibri">部标JTT1078</font><font face="宋体">标准支持双向语音对讲</font></span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">和广播的</span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">功能，终端设备可以通过麦克风接收语音信息，并通过扬声器播放语音信息。这一功能使得驾驶员和监控平台之间可以实时进行语音沟通</span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">。</span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">语音对讲是平台和设备终端之间的一对一的语音对讲。</span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">广播是平向多个设备终端之间的单向语音传输；</span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">无论是语音对讲或者是广播，都只能是平台用户发起请求，驾驶员司机不能通过设备终端主动发起请求。但是驾驶员可以通过终端发起紧急报警，监控人员收到紧急报警后可以调取视频画面，并发起语音对讲。</span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="font-size:16px;"><strong>语音对讲在苏标主动安全平台中的应用场景。</strong></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;">苏标主动安全平台，虽然是基于短视频报警触发的主动安全管控机制，但它也需要实时监控和语音对讲功能的辅助，常规的功能是当前端收到主动安全报警辅助的时候，可以立即打开视频监控和语音对讲，对违规司机进行口头劝诫。如下图所示。</p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;">这也就是我们常说的报警联动功能的应用之一。</p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="font-size:8px;"><u style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); text-align: justify; text-indent: 0px; font-family: Georgia, Arial, Helvetica, sans-serif; font-size: 2em; text-transform: capitalize;"><a href="http://www.jt808.com/?p=1564" style="margin: 0px; padding: 0px; color: rgb(213, 78, 33); text-decoration-line: none; border-bottom: 1px dotted rgb(213, 78, 33); font-size: 2em;">基于部标1078视频协议和苏标Adas协议构建主动安全平台</a></u></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><img alt="苏标主动安全报警" height="378" src="http://www.jt808.com/wp-content/uploads/adaspopupwindow.JPG" width="600" /></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;">&nbsp;</p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">语音对讲面临的一些问题：</span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;mso-list:l0 level1 lfo1;"><!--[if !supportLists]--><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;">1)&nbsp;</span><!--[endif]--><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><font face="宋体">语音对讲的通道是虚拟通道，不像摄像头所占用的通道是物理通道，原则上这个对讲的通道号是个什么数字都是无所谓的，但是很奇怪的是，很多厂家开发的时候，强制设定对讲的通道号只能是</font><font face="Calibri">1</font><font face="宋体">，不是</font><font face="Calibri">1</font><font face="宋体">，对讲就不可能成功。正常由于对讲是平台发起的，平台下发请求的对讲通道号是什么数字，那么终端按照这个数字来回复和打包</font><font face="Calibri">RTP</font><font face="宋体">数据包就可以了；</font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:0.0000pt;mso-para-margin-left:0.0000gd;text-indent:21.0000pt;<br />
mso-char-indent-count:2.0000;mso-list:l0 level1 lfo1;"><!--[if !supportLists]--><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;">2)&nbsp;</span><!--[endif]--><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">对讲和实时视频理论上不应该互相影响，但有些设备不支持一边看视频，一边对讲。这就造成了无法满足视频通话的需求；</span></p>
<p class="MsoNormal" style="margin-left:0.0000pt;mso-para-margin-left:0.0000gd;text-indent:21.0000pt;<br />
mso-char-indent-count:2.0000;mso-list:l0 level1 lfo1;">3)&nbsp; &nbsp;JT078的RTP包头并没有标记区分是实时视频，历史回放视频，和语音对讲数据包，这就造成了在同一个端口，同一个通道是无法同时传输这三个数据包，服务器必须要采用不同的端口来接收并区分这三个数据包；</p>
<p class="MsoNormal" style="margin-left:0.0000pt;mso-para-margin-left:0.0000gd;text-indent:21.0000pt;<br />
mso-char-indent-count:2.0000;mso-list:l0 level1 lfo1;"><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">广播这一块漏洞比较大，可能设计者觉得没有什么应用场景，就设计一个指令草草了事，实际上广播这块目前存在的问题如下：</span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;mso-list:l1 level1 lfo2;"><!--[if !supportLists]--><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;">1)&nbsp;</span><!--[endif]--><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">平台主动发起广播，很多厂家设备设计的时候，收到广播请求后，只是向服务器建立了一个空的数据连接，但是不发一个数据包，这样平台就不可能知道这个连接来自那个车辆设备的，就像开远程会议的时候，都不说话，也不知道谁连上了谁没有连接上，主讲者只顾自己开大会讲话；</span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:0.0000pt;mso-para-margin-left:0.0000gd;text-indent:21.0000pt;<br />
mso-char-indent-count:2.0000;mso-list:l1 level1 lfo2;"><!--[if !supportLists]--><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;">2)&nbsp;</span><!--[endif]--><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><font face="宋体">接入广播的设备如果来自不同的厂家，如果他们的设备只能接受不同音频的编码，如锐明只支持</font><font face="Calibri">Adpcma, </font><font face="宋体">有为支持</font><font face="Calibri">G711, </font><font face="宋体">海康支持</font><font face="Calibri">G726, </font><font face="宋体">那么下发给三家设备的广播语音，必须要三次编解码，这就是语音对讲不统一音频编码带来的麻烦；</font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">综上，广播功能就是个摆设，没啥意义。</span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">&nbsp;</span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><font face="宋体">开发语音对讲和广播功能是开发部标</font><font face="Calibri">1078</font><font face="宋体">视频监控平台非常繁琐的一个技术环节。开发者需要掌握一定的网络通信技术和音视频编码的技术。</font></span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">主要的交互分为</span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><font face="Calibri">1</font><font face="宋体">）指令交互，主要是在</font><font face="Calibri">808</font><font face="宋体">网关构建的指令通道中完成交互；</font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><font face="Calibri">2</font><font face="宋体">）双向音频流交互传输；</font></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">开发者主要解决的技术问题：</span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-para-margin-left:0.0000gd;text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><font face="Calibri">1</font><font face="宋体">）如何调用桌面麦克风获取用户录音的音频流；</font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><font face="Calibri">2</font><font face="宋体">）获取设备段上传的音频流并推流到网页端播放；</font></span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><font face="Calibri">3</font><font face="宋体">）如何编解码和传输</font><font face="Calibri">;</font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;">&nbsp;</span></p>
<p class="MsoNormal"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">&nbsp;&nbsp;<font face="宋体">由于音频数据需要经历获取原始音频数据</font><font face="Calibri">-&gt;</font><font face="宋体">编码压缩</font><font face="Calibri">-&gt;</font><font face="宋体">传输</font><font face="Calibri">-&gt;</font><font face="宋体">接收后解码还原的过程，所以开发者不仅仅需要了解基本的音视频编码基础知识和原理，还需要会进行音频编码和解码。</font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">基本的音频编码知识</span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><font face="宋体">由于</font><font face="Calibri">1078</font><font face="宋体">协议并没有对语音对讲的编码进行统一，实际上完全可以统一为</font><font face="Calibri">AAC</font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;"><font face="宋体">（</font>Advanced Audio Coding<font face="宋体">）</font></span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">，但是很遗憾就是没有，所以设备终端的语音压缩编码就是百花齐放，各自根据自己的设备芯片方案来决定编码，主要采用的编码如下：</span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-para-margin-left:0.0000gd;text-indent:21.0000pt;mso-char-indent-count:2.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><font face="Calibri">1</font><font face="宋体">）</font><font face="Calibri">G711A</font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:0.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><font face="Calibri">2</font><font face="宋体">）</font><font face="Calibri">G711U</font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:0.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><font face="Calibri">3</font><font face="宋体">）</font><font face="Calibri">G726, </font><font face="宋体">最复杂，</font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;">G.726 <font face="宋体">支持不同的比特率（如 </font><font face="Calibri">16k</font><font face="宋体">、</font><font face="Calibri">24k</font><font face="宋体">、</font><font face="Calibri">32k</font><font face="宋体">、</font><font face="Calibri">40k</font><font face="宋体">）</font></span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">，</span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;">需要判断终端采用什么比特率的编码；</span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:0.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><font face="Calibri">4</font><font face="宋体">）</font><font face="Calibri">Adpcma</font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:0.0000;"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;<br />
mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;<br />
mso-font-kerning:1.0000pt;"><font face="Calibri">5</font><font face="宋体">）</font><font face="Calibri">AAC</font><font face="宋体">，最方便，对网站最有好的编码；</font></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:0.0000;">&nbsp;</p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:0.0000;"><font face="宋体" style="font-family: 宋体; font-size: 14px;">主要的参与脚色是平台1078视频服务器（中转分发</font><font face="Calibri" style="font-size: 14px;">),&nbsp;</font><font face="宋体" style="font-family: 宋体; font-size: 14px;">网页前端（发起请求），终端（响应请求）</font></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:0.0000;">1）平台当中最核心的当然是JT1078视频服务器，视频服务器主要的职责是中转分发，音视频编码解码，连接管理，数据统计。<strong> 如需购买视频监控平台和主动安全平台源码，请联系2379423771@qq.com, 无意购买者勿扰。</strong></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:0.0000;"><img alt="部标1078视频播放器" src="http://www.jt808.com/wp-content/uploads/1078UI2(2).jpg" /></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:0.0000;"><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:宋体;<br />
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;">&nbsp;</p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><font face="宋体"><span style="font-size: 14px;">2） 在网页前端需要开发者从抓取麦克风录音数据获得原生的音频数据开始，然后就是压缩，再通过websocket传输。需要开发一个复杂的播放器来完成此项工作，如下图所示：</span></font></p>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;"><img alt="Html5 部标视频播放器" height="486" src="http://www.jt808.com/wp-content/uploads/h5video1.JPG" width="700" /></p>
<h2 style="margin: 0px; padding: 0px 0px 3px; font-size: 2em; color: rgb(92, 121, 144); text-shadow: rgb(255, 255, 255) 0px 1px 0px, rgb(190, 190, 190) 0px -1px 3px; font-family: Georgia, Arial, Helvetica, sans-serif; text-transform: capitalize;"><u><a href="http://www.jt808.com/?p=939" rel="bookmark" style="margin: 0px; padding: 0px; color: rgb(38, 38, 38); text-decoration-line: none;">基于spring4+springMVC4+mybatis3+Hibernate4+junit4框架构建高性能企业级的部标1078视频监控平台</a></u></h2>
<blockquote>
<p class="MsoNormal" style="text-indent:21.0000pt;mso-char-indent-count:2.0000;">前端简单DEMO代码示例如下(主要是为了说明技术流程，实际代码要远比这个复杂）：</p>
</blockquote>
<blockquote><pre class="brush:php">&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;麦克风录音并压缩传输&lt;/title&gt;
  &lt;script src=&quot;https://cdn.jsdelivr.net/npm/@ffmpeg-installer/ffmpeg&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;script&gt;
    let audioContext;
    let mediaStream;
    let sourceNode;
    let scriptNode;
    const socket = new WebSocket(&#39;ws://your-server-url&#39;);

    async function startRecording() {
      audioContext = new AudioContext();
      mediaStream = await navigator.mediaDevices.getUserMedia({ audio: true });
      sourceNode = audioContext.createMediaStreamSource(mediaStream);
      scriptNode = audioContext.createScriptProcessor(4096, 1, 1);

      sourceNode.connect(scriptNode);
      scriptNode.connect(audioContext.destination);

      scriptNode.onaudioprocess = async (event) =&gt; {
        const pcmData = event.inputBuffer.getChannelData(0);
        const aacData = await compressPcmToAac(pcmData);
        socket.send(aacData);
      };
    }

    async function compressPcmToAac(pcmData) {
      const ffmpeg = FFmpeg.createFFmpeg({ log: true });
      await ffmpeg.load();

      ffmpeg.FS(&#39;writeFile&#39;, &#39;input.pcm&#39;, new Uint8Array(pcmData));
      await ffmpeg.run(&#39;-i&#39;, &#39;input.pcm&#39;, &#39;-c:a&#39;, &#39;aac&#39;, &#39;output.aac&#39;);
      const aacData = ffmpeg.FS(&#39;readFile&#39;, &#39;output.aac&#39;);

      return aacData;
    }

    socket.addEventListener(&#39;open&#39;, (event) =&gt; {
      console.log(&#39;WebSocket连接已打开:&#39;, event);
      startRecording();
    });

    socket.addEventListener(&#39;message&#39;, (event) =&gt; {
      console.log(&#39;收到服务器消息:&#39;, event.data);
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
</blockquote>
<p> (4888)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jt808.com/?feed=rss2&#038;p=1956</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
