CN106685908B - 语音直播过程中音频数据完整性的保障方法 - Google Patents
语音直播过程中音频数据完整性的保障方法 Download PDFInfo
- Publication number
- CN106685908B CN106685908B CN201610543006.2A CN201610543006A CN106685908B CN 106685908 B CN106685908 B CN 106685908B CN 201610543006 A CN201610543006 A CN 201610543006A CN 106685908 B CN106685908 B CN 106685908B
- Authority
- CN
- China
- Prior art keywords
- data
- data packet
- audio
- sequence number
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000005540 biological transmission Effects 0.000 claims abstract description 21
- 238000012790 confirmation Methods 0.000 claims abstract description 21
- 238000012795 verification Methods 0.000 claims description 2
- 238000012423 maintenance Methods 0.000 abstract description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 238000009331 sowing Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明是一种语音直播过程中音频数据完整性的保障方法,用于网络音频传输技术领域。本方法设置客户端上传数据包和服务器响应的应答数据包的格式,服务器在收到客户端发送来的数据包后,解析数据包头部,当数据包完整且是期望接收的数据时,将音频数据写入音频文件。本方法通过服务器维护的确认序列号与客户端维护的序列号来共同推进数据的发送,以解决传输过程中,上传和确认数据包丢失引发的数据缺失问题。本发明方法在网络链接出现中断、网络切换、网络信号弱,丢包率高等情况下,保证传输的数据完整性,适应各种底层网络传输协议。
Description
技术领域
本发明涉及网络音频传输技术,具体涉及一种语音直播过程中音频数据完整性的保障方法。
背景技术
现场直播节目极大地提高了人们获取信息的便利程度。随着网络基础设施的健全和互联网产品的日益丰富,网络直播也逐渐发展起来,人们能够从互联网上直接收看体育赛事、重大庆典会议、商贸展览等。
通常的直播过程中,出于对直播实时性的考虑,往往会忽略对于直播的视频、音频信息的完整性的保障。然而,在许多文字与语音密集的场景中,比如会议直播、庭审记录、新闻采访、人物访谈等,用户会更加的注重信息的完整性,信息的完整性、正确性反而会比时效性更加重要。
发明内容
本发明针对上述情况,设计并实现了一种数据完整性的保障方法,用于在音频直播时,保障音频数据在传输过程中的数据完整性,保证了采集到的音频信息与最终发布的音频信息的一致性。
本发明提供的语音直播过程中音频数据完整性的保障方法,通过下面技术手段实现:
(一)客户端采用设定的数据包格式发送数据;其中,发送数据的数据包中包含的字段有数据包长度、数据偏移量、序列号、音频流开始时间、音频流总长度和音频数据;
(二)服务器采用设定的数据包格式返回应答报文;其中,应答报文的数据包中包含的字段有数据包类型、确认序列号和已确认音频流长度;
(三)服务器在收到客户端发送来的数据包后,首先解析数据包头部,然后进行数据包完整性判断;若数据包完整,继续判断数据包是否是期望接收的数据,若是,按照解析得到的数据偏移量将音频数据写入音频文件,在写入成功后,设置应答报文中的确认序列号s为解析得到的序列号n加1;若数据包不完整或者不是期望接收的数据,设置应答报文中的确认序列号s为解析得到的序列号n,最后服务器发送应答报文给客户端;客户端根据应答报文中的确认序列号发送对应的数据包给服务器。
进行完整性判断方法是:比较实际收到的数据包长度是否与解析得到的数据包长度字段的值一致,若一致,说明数据包完整,若不一致,说明数据包不完整。
判断数据包是否是期望接收的数据的方法是:比对接收到的数据包中数据偏移量的值是否与服务器上的已确认音频流长度的大小相等,如果是,表明该数据包是期望接收的数据,如果不相等,表明该数据包不是期望接收的数据。
相对于现有技术,本发明的优点与积极效果在于:
(1)在网络传输过程中使用本发明方法,在网络链接出现中断、网络切换、网络信号弱、丢包率高等情况下,保证传输的数据完整性。
(2)本发明方法的实现是在网络传输的应用层上,可以适应各种底层网络传输协议,包括宽带网络、无线网络、移动2G、3G、4G网络等。
(3)采用本发明方法在保证数据完整性的同时,兼顾了数据传输的时效性,已经在实际语音直播过程中得到验证。
附图说明
图1是应用本发明的数据完整性保障方法的数据流图;
图2是本发明的数据完整性保障方法的实现原理图;
图3是采用本发明方法的客户端数据传输流程图;
图4是采用本发明方法的服务器数据接收流程图。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
本发明方法可以应用在直播平台的数据传输过程中,其工作数据流如图1所示。图1展示了一般的直播系统的构成模块,以及本发明方法在原有系统中的实现位置。直播系统在客户端通过音频采集设备采集音频,经过编码与压缩,将音频数据上传到服务器,服务器上进行音频数据接收并存入文件系统。从客户端音频数据上传到服务器音频数据接收过程中,应用本发明方法,以保障音频数据在传输过程中的数据完整性。
本发明的语音直播过程中音频数据完整性的保障方法的实现原理,如图2所示。
首先,说明本发明发送数据和应答报文的报文格式。
客户端发送数据的数据包格式中包含的各字段的含义如下:
数据包长度:该数据包的总长度,单位是字节;
数据偏移量:该数据包包含的音频流文件基于总音频流文件的起始字节位置,单位是字节;
序列号:该数据包的序列号,从0开始计数;
音频流开始时间:该数据包包含的音频流的播放起始时间,单位是毫秒;
音频流总长度:当前已录制文件的总大小,单位是字节;
音频数据:实际压缩好的音频流数据,是字节流的形式。
服务器确认的应答报文的数据包格式中包含的各字段的含义如下:
数据包类型:该数据包的类型,在这里是“upload”,表示是对于上传数据的确认;
确认序列号:表示期望下次收到的数据包的序列号;
已确认音频流长度:表示服务器已经接收到的音频流的长度,单位是字节。
如图2所示,数据传输过程中,完整的音频数据的上传过程如下:首先客户端发送一个数据包,服务器收到数据包后,解析头部信息,获得数据包长度、数据偏移量等各字段的值。首先,判断收到的数据包长度是否与数据包头部中数据包长度字段的值一致,如果一致,说明接收到的数据包完整,按照数据偏移量将字节流写入音频文件,写入成功后,设置应答报文中的确认序列号为对应收到的数据包的序列号加1,然后服务器返回应答报文给客户端,通知客户端发送下一个数据包。若数据包头部中的数据包长度字段的值与实际接收到的数据包长度不一致,说明接收到的数据包不完整,则设置应答报文中的确认序列号为对应收到的数据包的序列号,发送应答报文给客户端,让客户端重新发送该数据包。
本发明通过服务器维护的确认序列号s与客户端维护的序列号n来共同推进数据的发送。当服务器检查数据包完整时,设置确认序列号s=n+1,当服务器检查数据包不完整时,设置确认序列号s=n。客户端根据收到的应答报文,更新序列号n=s,发送对应序列号的数据包给服务器。如此重复上述过程,直到客户端发送数据完毕,结束传输过程,断开网络连接。
该机制可以解决传输过程中,上传和确认数据包丢失引发的数据缺失问题。例如,如果客户端发送序列号为1的数据包后,时隔7秒没有收到服务端对于该数据包的确认,则重新发送该数据包。该机制还可以应对网络状况不好的情况下,由于网络连接断开而引发的数据丢失问题。当网络状况变好,可以重新建立网络连接后,服务端对于客户端发送的第一个数据包的确认会返回当前已经收到的音频文件大小,客户端将以此位置为数据偏移开始发送数据包。
更具体地,客户端发送数据包的工作流程,如图3所示,实现步骤如下:
步骤1.1,初始标记序列号n=0,已发送数据长度length1=0。序列号n代表音频数据在音频流文件中位置序号。
步骤1.2,判断是否有新的音频数据需要传输,即判断本地录制产生的音频文件大小与已发送数据长度length1数值是否相等,数值相等表示无新数据产生,不相等表示有新的数据需要传输;若有新数据,继续执行步骤1.3,若否无新数据,转步骤1.5执行。
步骤1.3,以n为序列号,将当前数据打包,发送数据包给服务器。
步骤1.4等待服务器响应,并检测是否超时,若超时,执行步骤1.5,否则,更新序列号n和已发送数据长度length1,然后继续转步骤1.2执行。此处,更新n为接收到的应答报文中的确认序列号s,更新length1为接收到的应答报文中已确认音频流长度length2的值。
步骤1.5,判断直播过程是否结束,若是,结束数据传输,否则继续转步骤1.2执行。
服务器接收数据的工作流程,如图4所示,实现步骤如下:
步骤2.1,服务器等待客户端发送来的数据包,若在一定时间内未收到数据包,检查链接是否断开,若是,结束数据接收过程,否则继续等待客户端发送数据包。
步骤2.2,当接收到客户端发送来的数据包时,校验数据包是否完整,若不完整,执行步骤2.4;若数据包完整,继续判断数据包是否是期望接收的数据,若是,执行步骤2.3,否则,执行步骤2.4。
检验数据包是否完整的方式就是,比对实际数据包大小与解析得到的数据包头中数据包大小字段的值是否相等,若相等则说明数据包完整,否则说明数据包不完整。
判断数据包是否是期望接收的数据是指,比对接收到的数据包中数据偏移量的值是否与服务器上的已确认音频流长度length2的大小相等,如果是,表明该数据包是期望接收的数据,如果不相等,表明该数据包不是期望接收的数据。
步骤2.3,按照数据偏移量将字节流写入音频文件,设置确认序列号s=n+1,并更新已确认音频流长度length2的值,然后将应答包返回给客户端。
步骤2.4,设置确认序列号s=n,保持已确认音频流长度length2不变,然后将应答包返回给客户端,然后继续等待客户端发送数据包,转步骤2.1执行。
Claims (3)
1.一种语音直播过程中音频数据完整性的保障方法,其特征在于,实现过程为:
(一)客户端采用设定的数据包格式发送数据;其中,发送数据的数据包中包含的字段有数据包长度、数据偏移量、序列号、音频流开始时间、音频流总长度和音频数据;
(二)服务器采用设定的数据包格式返回应答报文;其中,应答报文的数据包中包含的字段有数据包类型、确认序列号和已确认音频流长度;
(三)服务器在收到客户端发送来的数据包后,首先解析数据包头部,然后进行数据包完整性判断;若数据包完整,继续判断数据包是否是期望接收的数据,若是,按照解析得到的数据偏移量将音频数据写入音频文件,在写入成功后,设置应答报文中的确认序列号s为解析得到的序列号n加1;若数据包不完整或者不是期望接收的数据,设置应答报文中的确认序列号s为解析得到的序列号n,最后服务器发送应答报文给客户端;客户端根据应答报文中的确认序列号发送对应的数据包给服务器;
其中,进行数据包完整性判断是:比较实际收到的数据包长度是否与解析得到的数据包长度字段的值一致,若一致,说明数据包完整,若不一致,说明数据包不完整;
判断数据包是否是期望接收的数据的方法是:比对接收到的数据包中数据偏移量的值是否与服务器上的已确认音频流长度的大小相等,如果是,表明该数据包是期望接收的数据,如果不相等,表明该数据包不是期望接收的数据。
2.根据权利要求1所述的一种语音直播过程中音频数据完整性的保障方法,其特征在于,所述的客户端,发送数据的流程包括如下步骤:
步骤1.1,初始设置序列号n=0,已发送数据长度length1=0;序列号n代表音频数据在音频流文件中位置序号;
步骤1.2,判断是否存在序列号为n的音频数据,若是,继续执行步骤1.3,若否,转步骤1.5执行;
步骤1.2,判断是否有新的音频数据需要传输,若有新数据,继续执行步骤1.3,若否无新数据,转步骤1.5执行;
判断本地录制产生的音频文件大小与已发送数据长度length1数值是否相等,若数值相等表示无新数据产生,若数值不相等表示有新数据需要传输;
步骤1.3,以n为序列号,将当前数据打包,发送数据包给服务器;
步骤1.4,等待服务器响应,并检测是否超时,若超时,执行步骤1.5,否则,更新序列号n和已发送数据长度length1,然后继续转步骤1.2执行;
更新n为接收到的应答报文中的确认序列号s,更新length1为接收到的应答报文中已确认音频流长度的值;
步骤1.5,判断直播过程是否结束,若是,结束数据传输,否则继续转步骤1.2执行。
3.根据权利要求1所述的一种语音直播过程中音频数据完整性的保障方法,其特征在于,所述的服务器,接收数据的流程包括如下步骤:
步骤2.1,服务器等待客户端发送来的数据包;
步骤2.2,当接收到客户端发送来的数据包时,校验数据包是否完整,若不完整,执行步骤2.4;若数据包完整,继续判断数据包是否是期望接收的数据,若是,执行步骤2.3,否则,执行步骤2.4;
步骤2.3,按照数据偏移量将字节流写入音频文件,设置确认序列号s=n+1,并更新已确认音频流长度length2的值,然后将应答包返回给客户端;
步骤2.4,设置确认序列号s=n,保持已确认音频流长度length2不变,然后将应答包返回给客户端,然后继续等待客户端发送数据包,转步骤2.1执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610543006.2A CN106685908B (zh) | 2016-07-11 | 2016-07-11 | 语音直播过程中音频数据完整性的保障方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610543006.2A CN106685908B (zh) | 2016-07-11 | 2016-07-11 | 语音直播过程中音频数据完整性的保障方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106685908A CN106685908A (zh) | 2017-05-17 |
CN106685908B true CN106685908B (zh) | 2019-06-28 |
Family
ID=58839766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610543006.2A Expired - Fee Related CN106685908B (zh) | 2016-07-11 | 2016-07-11 | 语音直播过程中音频数据完整性的保障方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106685908B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234595B (zh) * | 2017-11-29 | 2021-05-14 | 山东鲁能软件技术有限公司 | 日志传输方法及系统 |
CN111770389A (zh) * | 2020-03-20 | 2020-10-13 | 深圳宇翊技术股份有限公司 | 一种基于组播和单播混合策略的pis补帧算法 |
CN111540369B (zh) * | 2020-06-01 | 2023-04-07 | 杭州电子科技大学 | 一种用于呼吸暂停鼾声的采集传输系统 |
CN112423018A (zh) * | 2020-10-27 | 2021-02-26 | 深圳Tcl新技术有限公司 | 媒体文件编码传输方法、装置、设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1755314A2 (en) * | 2005-07-28 | 2007-02-21 | Third Brigade, Inc. | TCP normalisation engine |
CN102137027A (zh) * | 2011-05-03 | 2011-07-27 | 厦门市美亚柏科信息股份有限公司 | 数据的可靠传输方法和装置 |
CN104639330A (zh) * | 2015-02-04 | 2015-05-20 | 华南理工大学 | 一种goose报文完整性认证方法 |
CN104917596A (zh) * | 2015-06-18 | 2015-09-16 | 东南大学 | 一种硬件实现的ip/tcp校验装置 |
CN105471917A (zh) * | 2016-01-14 | 2016-04-06 | 成都麦杰康科技有限公司 | 数据传输方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9007904B2 (en) * | 2011-11-17 | 2015-04-14 | International Business Machines Corporation | System to improve an ethernet network |
-
2016
- 2016-07-11 CN CN201610543006.2A patent/CN106685908B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1755314A2 (en) * | 2005-07-28 | 2007-02-21 | Third Brigade, Inc. | TCP normalisation engine |
CN102137027A (zh) * | 2011-05-03 | 2011-07-27 | 厦门市美亚柏科信息股份有限公司 | 数据的可靠传输方法和装置 |
CN104639330A (zh) * | 2015-02-04 | 2015-05-20 | 华南理工大学 | 一种goose报文完整性认证方法 |
CN104917596A (zh) * | 2015-06-18 | 2015-09-16 | 东南大学 | 一种硬件实现的ip/tcp校验装置 |
CN105471917A (zh) * | 2016-01-14 | 2016-04-06 | 成都麦杰康科技有限公司 | 数据传输方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106685908A (zh) | 2017-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106685908B (zh) | 语音直播过程中音频数据完整性的保障方法 | |
CN103634610B (zh) | 直播内容分发系统及方法 | |
CN101488967B (zh) | 一种视频传输方法、嵌入式监控终端及监控平台服务器 | |
CN102263959B (zh) | 直播中转方法和系统 | |
CN102158553B (zh) | 用于远程桌面的播放多媒体文件的方法和装置 | |
CN105100954A (zh) | 一种基于互联网通信及流媒体直播的交互应答系统及方法 | |
JPH08125687A (ja) | データ転送方法、データ送信装置、データ受信装置およびビデオメールシステム | |
WO2011079801A1 (zh) | 一种图片信息的传输方法、装置和通信系统 | |
US20220255866A1 (en) | Audio/video communication method, terminal, server, computer device, and storage medium | |
CN105830451A (zh) | 用于内容分发的方法和装置 | |
CN102656857B (zh) | 一种启动阶段的流媒体数据获取、发送方法及装置 | |
CN101517948A (zh) | 通信装置、通信方法和记录介质 | |
WO2014075453A1 (zh) | 一种实时流媒体上传中的丢帧控制与续传方法及系统 | |
CN103532923B (zh) | 一种实时媒体流传输方法及系统 | |
CN101516057B (zh) | 一种通过移动终端实现流媒体播放的方法 | |
WO2014200386A1 (ru) | Передача данных от веб-сервера терминальным устройствам посредством беспроводной сети | |
RU2531571C2 (ru) | Система видеоконтроля и ее способ прямого исправления ошибок (fec) | |
CN107517410A (zh) | 视频业务质量评估的方法及装置 | |
CN103166808A (zh) | 一种iptv业务质量的监测方法,装置及系统 | |
US7801182B2 (en) | Transmission data structure, and method and device for transmitting the same | |
CN110113623A (zh) | 一种基于sip协议的音视频切片传输平台 | |
CN101257617B (zh) | 一种移动流媒体点播业务中的续播系统及其方法 | |
TW200527855A (en) | Method and equipment for lossless packet delivery to a mobile terminal during handover | |
CN102325275A (zh) | 一种流媒体播放的丢包方法、装置及服务器 | |
CN106375859A (zh) | 一种媒体处理方法、装置及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190628 |
|
CF01 | Termination of patent right due to non-payment of annual fee |