FLV流的音频数据传输方法、装置和系统与流程

文档序号:17324518发布日期:2019-04-05 21:43阅读:211来源:国知局
FLV流的音频数据传输方法、装置和系统与流程

本发明涉及视频流技术领域,具体而言,本发明涉及一种flv流的音频数据传输方法、flv流的音频数据传输装置和flv流的音频数据传输系统。



背景技术:

随着直播、视频监控和同屏共享的发展,flv流(flashvideo,视频流)的应用也越来越广泛。flv流在传输数据时,是按照数据类型将数据封装到tag中,tag包括标签头部信息(tagheader)和标签文件内容(tagdata),标签文件内容分为音频、视频和脚本三种类型,其中音频标签文件内容(audiotagdata)包括音频标签头部信息(audiotagheader)和音频数据区(audiodata)。flv流在音频数据封装上,videofileformatspecificationversion10中音频格式描述(soundformat)定义了15种具体的音频格式类型以及一种自定义类型。

传统的flv流的音频数据传输方法,只能依据定义的音频格式类型传输音频数据,导致接收端接收的音频数据音质较差,影响了flv流的传输音频数据质量。



技术实现要素:

本发明的目的旨在至少能解决上述的技术缺陷之一,特别是flv流中接收端接收的音频数据音质较差的技术缺陷。

本发明提供一种flv流的音频数据传输方法,包括如下步骤:

在flv音频流的aac序列头结构中的编码结构类型中标识无损音频流对应的标签;

通过编码器对无损音频数据进行编码,并将编码后的无损音频编码数据和无损音质头部信息封装到aac音频数据结构;

将所述aac序列头结构和所述aac音频数据结构发送至服务器端,其中,所述服务器端将所述aac序列头结构和所述aac音频数据结构下发至接收端,所述接收端识别所述无损音频流对应的标签后调用无损音质对应的解码器,所述解码器根据所述无损音质头部信息对所述无损音频编码数据进行解码。

在一个实施例中,所述通过编码器对无损音频数据进行编码的步骤,包括:

获取所述无损音频数据;当所述aac序列头结构中的编码结构类型中标识有所述无损音频流对应的标签,调用所述编码器;通过所述编码器对所述无损音频数据进行编码,得到所述无损音频编码数据。

在一个实施例中,flv流的音频数据传输方法,还包括:

将所述aac序列头结构和所述aac音频数据结构作为无损音频流;向所述服务器同时发送所述无损音频流和所述无损音频数据对应视频的视频流。

在一个实施例中,所述无损音频流的音频帧和所述视频流的视频帧均包含时间戳,其中,所述时间戳用于标识所述无损音频流中音频帧与所述视频流中视频帧的编码顺序。

本发明还提供一种flv流的音频数据传输装置,包括:

标签标识模块,用于在flv音频流的aac序列头结构中的编码结构类型中标识无损音频流对应的标签;

aac音频数据结构封装模块,用于通过编码器对无损音频数据进行编码,并将编码后的无损音频编码数据和无损音质头部信息封装到aac音频数据结构;

结构发送模块,用于将所述aac序列头结构和所述aac音频数据结构发送至服务器端,其中,所述服务器端将所述aac序列头结构和所述aac音频数据结构下发至接收端,所述接收端识别所述无损音频流对应的标签后调用无损音质对应的解码器,所述解码器根据所述无损音质头部信息对所述无损音频编码数据进行解码。

本发明还提供一种flv流的音频数据传输方法,包括如下步骤:

接收服务器端下发的aac序列头结构,其中,所述aac序列头结构中的编码结构类型中标识有无损音频流对应的标签;

接收所述服务器端下发的aac音频数据结构,其中,所述aac音频数据结构封装有无损音质头部信息和对无损音频数据进行编码得到的无损音频编码数据;

根据所述aac序列头结构和所述无损音质头部信息对所述无损音频编码数据进行解码。

在一个实施例中,所述根据所述aac序列头结构和所述无损音质头部信息对所述无损音频编码数据进行解码的步骤,包括:

当所述aac序列头结构中的编码结构类型中识别有所述无损音频流对应的标签时,调用对应的解码器;利用所述解码器根据所述无损音质头部信息对所述无损音频编码数据进行解码。

在一个实施例中,flv流的音频数据传输方法,还包括:

对所述无损音频编码数据进行解码,获得无损音频数据;接收所述无损音频数据对应视频的视频流,并对所述视频流解码,获得视频数据;同步所述无损音频数据和所述视频数据,输出音频和视频画面同步的无损音质视频。

在一个实施例中,所述无损音频编码数据的音频帧和所述视频流的视频帧均包含时间戳,所述时间戳用于标识所述音频帧与所述视频帧的编码顺序;所述同步所述无损音频数据和所述视频数据的步骤,包括:

根据所述音频帧的时间戳和所述视频帧的时间戳获取所示音频帧和所述视频帧的编码顺序;根据所述编码顺序,对所述音频帧对应的音频和所述视频帧对应的视频画面进行同步,得到所述同步的无损音质视频。

本发明还提供一种flv流的音频数据传输装置,包括:

aac序列头结构接收模块,用于接收服务器端下发的aac序列头结构,其中,所述aac序列头结构中的编码结构类型中标识有无损音频流对应的标签;

aac音频数据结构接收模块,用于接收所述服务器端下发的aac音频数据结构,其中,所述aac音频数据结构封装有无损音质头部信息和对无损音频数据进行编码得到的无损音频编码数据;

无损音频编码数据解码模块,用于根据所述aac序列头结构和所述无损音质头部信息对所述无损音频编码数据进行解码。

本发明还提供一种flv流的音频数据传输系统,包括:发送端和接收端;

所述发送端,用于执行如上述任一项实施例所述的flv流的音频数据传输方法;

所述接收端,用于执行如上述任一项实施例所述的flv流的音频数据传输方法。

本发明还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如任一实施例所述flv流的音频数据传输方法的步骤。

本发明还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行任一实施例所述flv流的音频数据传输方法的步骤。

本发明还提供一种终端,其包括:

一个或多个处理器;

存储器;

一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行任一实施例所述的flv流的音频数据传输方法。

上述flv流的音频数据传输方法、装置、系统、计算机设备、存储介质和终端,通过在aac序列头结构中标识有无损音频流对应的标签,以及在aac音频数据结构中封装有无损音质头部信息,可以实现利用flv流对无损音质格式的数据进行传输,提高了flv流中音频的音质。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为一个实施例中提供的flv流的音频数据传输方法的实施环境图;

图2为一个实施例中flv流的音频数据传输方法的流程图;

图3为一个实施例中flv流的音频数据传输装置的结构示意图;

图4为又一个实施例中flv流的音频数据传输方法的流程图;

图5为又一个实施例中flv流的音频数据传输装置的结构示意图;

图6为再一个实施例中flv流的音频数据传输方法的流程图;

图7为再一个实施例中flv流的音频数据传输装置的结构示意图;

图8为另一个实施例中flv流的音频数据传输方法的时序图

图9为一个实施例中计算机设备的内部结构示意图;

图10为一个实施例中终端的内部结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通讯链路上,执行双向通讯的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通讯设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通讯设备;pcs(personalcommunicationsservice,个人通讯系统),其可以组合语音、数据处理、传真和/或数据通讯能力;pda(personaldigitalassistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或gps(globalpositioningsystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通讯终端、上网终端、音乐/视频播放终端,例如可以是pda、mid(mobileinternetdevice,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。

本技术领域技术人员可以理解,这里所使用的远端网络设备,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(cloudcomputing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,远端网络设备、终端设备与wns服务器之间可通过任何通讯方式实现通讯,包括但不限于,基于3gpp、lte、wimax的移动通讯、基于tcp/ip、udp协议的计算机网络通讯以及基于蓝牙、红外传输标准的近距无线传输方式。

如图1所示,图1为一个实施例中提供的flv流的音频数据传输方法的实施环境图,在该实施环境中,包括服务器端110、发送端120和接收端130。

在一个实施例中,如图2所示,图2为一个实施例中flv流的音频数据传输方法的流程图。flv流在传输数据时,是按照数据类型来讲数据封装到不同的tag中,音频数据、视频数据各自使用不同的封装方式,而在音频数据封装上,以aac(advancedaudiocoding,高级音频编码)音频格式类型为例来进行拓展。本实施例提供一种flv流的音频数据传输方法,以该方法应用在服务器端110为例进行说明,包括如下步骤:

步骤s210:接收发送端上传的flv音频流的aac序列头结构,其中,aac序列头结构中的编码结构类型中标识有无损音频流对应的标签。

aac对应audiodata中包括aac序列头结构;无损音频流对应的标签用于接收端的播放器在接收到该标签时可以创建和调用无损音质格式对应的解码器。例如可以以“11”作为无损音频流对应的标签。本步骤中,服务器端根据无损音频流对应的标签可以识别所接受的数据类型为无损音质,并对无损音质的音频数据继续接收和保存。

步骤s220:接收发送端上传的aac音频数据结构,其中,aac音频数据结构封装有无损音质头部信息和对无损音频数据进行编码得到的无损音频编码数据。

aac格式对应audiodata的aac音频数据结构中封装有格式头部信息和编码数据,编码数据时根据格式头部信息对音频数据进行编码所得。本步骤中,为了使得接收端的播放器除了根据aac序列头结构识别无损音质格式外,还通过aac音频数据结构中封装的无损音质头部信息识别无损音质格式;服务器端可以保存发送端上传的aac音频数据结构。

步骤s230:将aac序列头结构和aac音频数据结构下发至接收端,其中,接收端识别无损音频流对应的标签后调用无损音质对应的解码器,解码器根据无损音质头部信息对无损音频编码数据进行解码。

本步骤中,服务器端按照次序向接收端下发aac序列头结构和aac音频数据结构。接收端先接收aac序列头结构,识别无损音频流对应的标签并创建和调用无损音质格式对应的解码器,解码器对aac音频数据结构进行解码,得到无损音频。

上述flv流的音频数据传输方法,通过在aac序列头结构中标识有无损音频流对应的标签,以及aac音频数据结构中封装有无损音质头部信息,可以实现flv流对无损音质格式的数据的传输,提高了flv流中音频的音质。

在一个实施例中,将aac序列头结构和aac音频数据结构下发至接收端的步骤,包括:

在接收该接收端的无损音频请求时,查找无损音频请求对应的aac序列头结构。

本步骤中,服务器端在接收到接收端的无损音频请求,从已保存的发送端上传的数据中查找与该请求对应的aac序列头结构。

当aac序列头结构中标识有无损音频流对应的标签时,将aac序列头结构下发至接收端。

本步骤中,识别有无损音频流对应的标签时,按照flv流的传输规则,先下发aac序列头结构,接收端先接收aac序列头结构,以便于接收端先创建和调用对应的解码器。

将aac音频数据结构下发至接收端。

本步骤中,按照flv流的传输规则,服务器端继续下发aac音频数据结构,接收端继续接收aac音频数据结构并调用对应的解码器进行解码。

上述flv流的音频数据传输方法,接收端向服务器端上传无损音频请求,服务器端按照flv流的传输规则下发aac序列头结构和aac音频数据结构,便于接收端按照flv流的传输规则准确地接收和解码无损音质的数据,提高flv流传输的音质。

如图3所示,图3为一个实施例中flv流的音频数据传输装置的结构示意图,本实施例中提供一种flv流的音频数据传输装置,包括aac序列头结构接收模块310、aac音频数据结构接收模块320和结构下发模块330,其中:

aac序列头结构接收模块310,用于接收发送端上传的flv音频流的aac序列头结构,其中,aac序列头结构中的编码结构类型中标识有无损音频流对应的标签。

aac序列头结构接收模块310中,aac对应audiodata中包括aac序列头结构;无损音频流对应的标签用于接收端的播放器在接收到该标签时可以创建和调用无损音质格式对应的解码器。例如可以以“11”作为无损音频流对应的标签。aac序列头结构接收模块310可以控制服务器端根据无损音频流对应的标签可以识别所接受的数据类型为无损音质,并对无损音质的音频数据继续接收和保存。

aac音频数据结构接收模块320,用于接收发送端上传的aac音频数据结构,其中,aac音频数据结构封装有无损音质头部信息和对无损音频数据进行编码得到的无损音频编码数据。

aac音频数据结构接收模块320中,aac格式对应audiodata的aac音频数据结构中封装有格式头部信息和编码数据,编码数据时根据格式头部信息对音频数据进行编码所得。为了使得播放器除了根据aac序列头结构识别无损音质格式外,aac音频数据结构接收模块320还通过aac音频数据结构中封装的无损音质头部信息识别无损音质格式,也保存发送端上传的aac音频数据结构。

结构下发模块330,用于将aac序列头结构和aac音频数据结构下发至接收端,其中,接收端识别无损音频流对应的标签后调用无损音质对应的解码器,解码器根据无损音质头部信息对无损音频编码数据进行解码。

结构下发模块330控制服务器端按照次序向接收端下发aac序列头结构和aac音频数据结构。接收端先接收aac序列头结构,识别无损音频流对应的标签并创建和调用无损音质格式对应的解码器,解码器对aac音频数据结构进行解码,得到无损音频。

上述flv流的音频数据传输装置,通过在aac序列头结构中标识有无损音频流对应的标签,以及aac音频数据结构中封装有无损音质头部信息,可以实现flv流对无损音质格式的数据的传输,提高了flv流中可传输音频的音质质量。

在一个实施例中,结构下发模块330还用于在接收该接收端的无损音频请求时,查找无损音频请求对应的aac序列头结构;当aac序列头结构中标识有无损音频流对应的标签时,将aac序列头结构下发至接收端;将aac音频数据结构下发至接收端。

在一个实施例中,如图4所示,图4为又一个实施例中flv流的音频数据传输方法的流程图,本实施例中提供一种flv流的音频数据传输方法,以该方法应用在发送端120为例进行说明,包括如下步骤:

步骤s410:在flv音频流的aac序列头结构中的编码结构类型中标识无损音频流对应的标签。

本步骤中,发送端将无损音频流对应的标签标识在编码结构类型中,以便于服务器端将aac序列头结构下发至接收端时,接收端可以根据编码结构类型中无损音频流对应的标签创建和调用对应的解码器。

步骤s420:通过编码器对无损音频数据进行编码,并将编码后的无损音频编码数据和无损音质头部信息封装到aac音频数据结构。

本步骤中,发送端将无损音质头部信息封装到aac音频数据结构,以便于接收端可以根据无损音质头部信息判定无损音频编码数据所对应的音频格式是无损音质格式,接收端按照无损音质格式对无损音频编码数据进行解码。

步骤s430:将aac序列头结构和aac音频数据结构发送至服务器端,其中,服务器端将aac序列头结构和aac音频数据结构下发至接收端,接收端识别无损音频流对应的标签后调用无损音质对应的解码器,解码器根据无损音质头部信息对无损音频编码数据进行解码。

本步骤中,将aac序列头结构和aac音频数据结构通过服务器端转发至接收端。发送端可以依次向服务器端上传aac序列头结构和aac音频数据结构。

上述flv流的音频数据传输方法,通过在aac序列头结构中标识有无损音频流对应的标签,以及在aac音频数据结构中封装有无损音质头部信息,可以实现利用flv流对无损音质格式的数据进行传输,提高了flv流中音频的音质。

发送端可以包括主播客户端,主播客户端可以上传和播放直播的音视频流。

在一个实施例中,步骤s420通过编码器对无损音频数据进行编码的步骤,包括:

步骤s421:获取无损音频数据。

本步骤中,发送端可以生成无损音频数据。如发送端可以通过麦克风等声音采集设备采集声音,转换成可以由存储介质保存的无损音频数据。

发送端在生成音视频流时,还可以。

步骤s422:当aac序列头结构中的编码结构类型中标识有无损音频流对应的标签,调用编码器。

本步骤中,在编码结构类型中标识无损音频流对应的标签后,发送端可以根据无损音频流对应的标签创建和调用可无损编码的编码器。

步骤s423:通过编码器对无损音频数据进行编码,得到无损音频编码数据。

本步骤中,将无损音频数据按照无损音质的格式进行无损编码,得到无损音频编码数据。

上述flv流的音频数据传输方法,标识无损音频流对应的标签后,进行无损编码,以便于上传aac序列头结构后,可以及时上传aac音频数据结构,提高产生和上传无损音频流的效率。

在一个实施例中,flv流的音频数据传输方法,还包括:

步骤s441:将aac序列头结构和aac音频数据结构作为无损音频流。

步骤s442:向服务器端同时发送无损音频流和无损音频数据对应视频的视频流。

上述flv流的音频数据传输方法,服务器端可以用于向接收端转发该无损音频流和视频流,以便于接收端在播放视频的同时播放对应的无损音频。

传统方式下,服务器端向接收端下发音视频流,即将普通音频流和视频流一并下发至接收端,接收端根据该音视频流同步播放普通音频和视频。而当上传无损音频流后,为了使客户端可以同步播放无损音频和视频,还需要向服务器端上传对应的视频流。

在一个实施例中,无损音频流的音频帧和视频流的视频帧均包含时间戳,其中,时间戳用于标识无损音频流中音频帧与视频流中视频帧的编码顺序。

上述flv流的音频数据传输方法,时间戳可以便于接收端据此同步播放视频和无损音频。

另外传统方式下,在服务器端接收发送端上传的普通音频流和视频流后,会在同一服务器设备中对普通音频流和视频流的时间戳进行修改,并通过同一服务器设备对音视频流就那些下发,此时同一服务器设备进行修改的时间戳可以便于客户端进行普通音频和视频的同步。但是当另外上传无损音频流时,考虑到实际的服务器群下发无损音频流和音视频流的视频流的服务器可能不是同一个服务器,服务器修改无损音频流和音视频流的时间戳会引起客户端播放无损音频和视频的不同步。因此,本实施例中需要记录发送端在编码时的时间戳,使得接收端可以按照编码顺序完成无损音频和视频的同步播放。

在一个实施例中,如图5所示,图5为又一个实施例中flv流的音频数据传输装置的结构示意图,本实施例中提供一种flv流的音频数据传输装置,包括标签标识模块510、aac音频数据结构封装模块520和结构发送模块530:

标签标识模块510,用于在flv音频流的aac序列头结构中的编码结构类型中标识无损音频流对应的标签。

标签标识模块510中,发送端将无损音频流对应的标签标识在编码结构类型中,以便于服务器端将aac序列头结构下发至接收端时,接收端可以根据编码结构类型中无损音频流对应的标签创建和调用对应的解码器。

aac音频数据结构封装模块520,用于通过编码器对无损音频数据进行编码,并将编码后的无损音频编码数据和无损音质头部信息封装到aac音频数据结构。

aac音频数据结构封装模块520中,发送端将无损音质头部信息封装到aac音频数据结构,以便于接收端可以根据无损音质头部信息判定无损音频编码数据所对应的音频格式是无损音质格式,接收端按照无损音质格式对无损音频编码数据进行解码。

结构发送模块530,用于将aac序列头结构和aac音频数据结构发送至服务器端,其中,服务器端将aac序列头结构和aac音频数据结构下发至接收端,接收端识别无损音频流对应的标签后调用无损音质对应的解码器,解码器根据无损音质头部信息对无损音频编码数据进行解码。

结构发送模块530将aac序列头结构和aac音频数据结构通过服务器端转发至接收端。发送端可以依次向服务器端上传aac序列头结构和aac音频数据结构。

上述flv流的音频数据传输装置,通过在aac序列头结构中标识有无损音频流对应的标签,以及在aac音频数据结构中封装有无损音质头部信息,可以实现利用flv流对无损音质格式的数据进行传输,提高了flv流中音频的音质。

关于flv流的音频数据传输装置的具体限定可以参见上文中对于flv流的音频数据传输方法的限定,在此不再赘述。上述flv流的音频数据传输装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,aac音频数据结构封装模块520还用于获取无损音频数据;当aac序列头结构中的编码结构类型中标识有无损音频流对应的标签,调用编码器;通过编码器对无损音频数据进行编码,得到无损音频编码数据。

在一个实施例中,如图6所示,图6为再一个实施例中flv流的音频数据传输方法的流程图,本实施例中提供一种flv流的音频数据传输方法,以该方法应用在接收端130为例进行说明,包括如下步骤:

步骤s610:接收服务器端下发的aac序列头结构,其中,aac序列头结构中的编码结构类型中标识有无损音频流对应的标签。

aac对应audiodata中包括aac序列头结构;无损音频流对应的标签用于接收端的播放器在接收到该标签时可以创建和调用无损音质格式对应的解码器。在一种具体的实施方式下,可以以标识“11”作为无损音频流对应的标签。

步骤s620:接收服务器端下发的aac音频数据结构,其中,aac音频数据结构封装有无损音质头部信息和对无损音频数据进行编码得到的无损音频编码数据。

本步骤中,aac格式对应audiodata的aac音频数据结构中封装有格式头部信息和编码数据,编码数据时根据格式头部信息对音频数据进行编码所得。

步骤s630:根据aac序列头结构和无损音质头部信息对无损音频编码数据进行解码。

本步骤中,接收端可以根据aac序列头结构和无损音质头部信息识别无损音频流,并对无损音频编码数据解码。

上述flv流的音频数据传输方法,通过aac序列头结构中标识有无损音频流对应的标签,以及aac音频数据结构中封装有无损音质头部信息,可以让接收端识别无损音频流,实现flv流对无损音质格式的数据的传输,提高了flv流中音频的音质。

接收端可以包括观众客户端,观众客户端可以下载和播放直播的音视频流。

在一个实施例中,步骤s630根据aac序列头结构和无损音质头部信息对无损音频编码数据进行解码的步骤,包括:

步骤s631:当aac序列头结构中的编码结构类型中识别有无损音频流对应的标签时,调用对应的解码器。

本步骤中,接收端在aac序列头结构中识别无损音质格式,调用对应的解码器。

步骤s632:利用解码器根据无损音质头部信息对无损音频编码数据进行解码。

本步骤中,接收端识别无损音质头部信息,根据无损音质头部信息中记载的无损音质的格式参数,对无损音频编码数据进行解码。

上述flv流的音频数据传输方法,接收端识别无损音频流,并对无损音频编码数据进行解码,实现flv流对无损音质格式的数据的传输,提高了flv流中音频的音质。

在一个实施例中,flv流的音频数据传输方法,还包括:

步骤s641:对无损音频编码数据进行解码,获得无损音频数据。步骤s642:接收无损音频数据对应视频的视频流,并对视频流解码,获得视频数据。步骤s643:同步无损音频数据和视频数据,输出音频和视频画面同步的无损音质视频。

上述flv流的音频数据传输方法,分别获取无损音频数据和视频流解码,并对其进行同步播放,完成具有无损音质的视频播放,提高视频播放的质量。

传统方式下,接收端接收服务器端下发的音视频流,同步播放该音视频流中的音频数据和视频数据。而本实施例中,在接收端接收无损音频数据和音视频流,提取音视频流中的视频数据,同步播放无损音频数据和视频数据,提高视频播放的质量。

在一个实施例中,无损音频编码数据的音频帧和视频流的视频帧均包含时间戳,时间戳用于标识音频帧与视频帧的编码顺序;步骤s643同步无损音频数据和视频数据的步骤,包括:

步骤s643a:根据音频帧的时间戳和视频帧的时间戳获取所示音频帧和视频帧的编码顺序;步骤s643b:根据编码顺序,对音频帧对应的音频和视频帧对应的视频画面进行同步,得到同步的无损音质视频。

上述flv流的音频数据传输方法,按照发送端的解码时的时间戳进行音频和视频画面的同步,避免服务器端因不同服务器设备的下发数据造成无法同步的情况。

在一个实施例中,如图7所示,图7为再一个实施例中flv流的音频数据传输装置的结构示意图,本实施例中提供一种flv流的音频数据传输装置,包括aac序列头结构接收模块710、aac音频数据结构接收模块720和无损音频编码数据解码模块730:

aac序列头结构接收模块710,用于接收服务器端下发的aac序列头结构,其中,aac序列头结构中的编码结构类型中标识有无损音频流对应的标签。

aac序列头结构接收模块710中,aac对应audiodata中包括aac序列头结构;无损音频流对应的标签用于接收端的播放器在接收到该标签时可以创建和调用无损音质格式对应的解码器。例如可以以“11”作为无损音频流对应的标签。

aac音频数据结构接收模块720,用于接收服务器端下发的aac音频数据结构,其中,aac音频数据结构封装有无损音质头部信息和对无损音频数据进行编码得到的无损音频编码数据。

aac音频数据结构接收模块720中,aac格式对应audiodata的aac音频数据结构中封装有格式头部信息和编码数据,编码数据时根据格式头部信息对音频数据进行编码所得。

无损音频编码数据解码模块730,用于根据aac序列头结构和无损音质头部信息对无损音频编码数据进行解码。

无损音频编码数据解码模块730可以根据aac序列头结构和无损音质头部信息识别无损音频流,并对无损音频编码数据解码

上述flv流的音频数据传输装置,通过aac序列头结构中标识有无损音频流对应的标签,以及aac音频数据结构中封装有无损音质头部信息,可以让接收端识别无损音频流,实现flv流对无损音质格式的数据的传输,提高了flv流中音频的音质。

关于flv流的音频数据传输装置的具体限定可以参见上文中对于flv流的音频数据传输方法的限定,在此不再赘述。上述flv流的音频数据传输装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,如图1所示,本实施例中提供一种flv流的音频数据传输系统,包括:发送端120和接收端130。

发送端120,用于执行上述的flv流的音频数据传输方法。

发送端120,在flv音频流的aac序列头结构中的编码结构类型中标识无损音频流对应的标签;通过编码器对无损音频数据进行编码,并将编码后的无损音频编码数据和无损音质头部信息封装到aac音频数据结构;将aac序列头结构和aac音频数据结构发送至服务器端110。

发送端120还可以获取无损音频数据;当aac序列头结构中的编码结构类型中标识有无损音频流对应的标签,调用编码器;通过编码器对无损音频数据进行编码,得到无损音频编码数据。

发送端120还可以将aac序列头结构和aac音频数据结构作为无损音频流;向服务器同时发送无损音频流和无损音频数据对应视频的视频流。

接收端130,用于执行上述的flv流的音频数据传输方法。

接收端130,接收服务器端110下发的aac序列头结构;接收服务器端110下发的aac音频数据结构;根据aac序列头结构和无损音质头部信息对无损音频编码数据进行解码。

接收端130还可以用于当aac序列头结构中的编码结构类型中识别有无损音频流对应的标签时,调用对应的解码器;利用解码器根据无损音质头部信息对无损音频编码数据进行解码

接收端130还可以对无损音频编码数据进行解码,获得无损音频数据;接收无损音频数据对应视频的视频流,并对视频流解码,获得视频数据;同步无损音频数据和视频数据,输出音频和视频画面同步的无损音质视频。

接收端130还可以根据音频帧的时间戳和视频帧的时间戳获取所示音频帧和视频帧的编码顺序;根据编码顺序,对音频帧对应的音频和视频帧对应的视频画面进行同步,得到同步的无损音质视频。

服务器端110,用于执行上述的flv流的音频数据传输方法。

服务器端110,接收发送端120上传的flv音频流的aac序列头结构,其中,aac序列头结构中的编码结构类型中标识有无损音频流对应的标签;接收发送端120上传的aac音频数据结构,其中,aac音频数据结构封装有无损音质头部信息和对无损音频数据进行编码得到的无损音频编码数据;将aac序列头结构和aac音频数据结构下发至接收端130。

服务器端110还可以在接收该接收端130的无损音频请求时,查找无损音频请求对应的aac序列头结构;当aac序列头结构中标识有无损音频流对应的标签时,将aac序列头结构下发至接收端130;将aac音频数据结构下发至接收端130。

上述flv流的音频数据传输系统通过aac序列头结构中标识有无损音频流对应的标签,以及aac音频数据结构中封装有无损音质头部信息,可以让接收端130识别无损音频流,实现flv流对无损音质格式的数据的传输,提高了flv流中音频的音质。

在另一个实施例中,如图8所示,图8为另一个实施例中flv流的音频数据传输方法的时序图,本实施例中提供一种flv流的音频数据传输方法。

flv流在传输数据时,是按照数据类型来将数据封装到不同的tag中,音频、视频数据各自使用不同的封装方式,而在音频数据封装上,现有规范,如videofileformatspecificationversion10,音频结构数据(audiodata)结构的soundformat定义了15种具体的音频格式类型,以及一种自定义类型。本实施例中使用aac音频格式类型(即音频格式描述值为10)来进行拓展,以传输无损音质的数据如flac(freelosslessaudiocodec,无损音频压缩编码)音频格式。

首先,flv流在传输音频数据之前,需要首先发送"aacsequenceheader",音频的相关信息封装到aac序列头(audiospecificconfig)结构中,这项数据包含的是音频数据的编码信息,没有这个音频头文件,解码器将无法解码,因此要使用aac音频格式来进行传输无损音质音频格式的数据,需要对此头部信息进行改动。本实施例中将aac序列头结构中的编码结构类型(audioobjecttype)改成11,使用11来标识当前流为无损音频流,接收端的播放器在接收到编码结构类型为11的音频头文件时,需要创建无损音质音频格式对应的解码器,以对接收到的音频数据进行解码。

然后,在传输音频数据时,常规音频数据是封装到aac音频数据(aacaudiodata)结构中的,而对于传输无损音质的音频数据时,还需在此将无损音质音频格式的头部信息封装到aac音频数据结构的数据(data)字段中,以便于播放器除了音频头文件之外,还可以通过此aac音频数据结构的数据字段来识别出当前的音频数据的格式为常规aac格式的数据,还是无损音质音频格式的数据,以提高兼容性。

flv流的音频数据传输系统包括主播客户端(发送端),cdn服务器,以及观众客户端(接收端)

s801:主播客户端为无损音质数据的生产端,产生无损音质数据,发送(上行)音频数据之前,按flv流中音频数据的封装格式,以及根据自定义规则,s802:封装自定义的音频头文件,对aac序列头结构的编码结构类型标识为11,用以告诉cdn服务器,当前主播客户端所发送的是无损音频流的数据,在s803:发送完此自定义音频头文件之后,发送无损音频编码数据。通过无损编码器对无损音频数据进行编码或获得无损音频编码数据,并带上无损音质音频格式的头部信息,s804:将无损音频编码数据和无损音质音频格式的头部信息封装到aac音频数据结构的数据字段中,s805:然后将aac音频数据结构发送到cdn服务器。

cdn服务器分别与主播客户端以及观众客户端连接,接收到主播客户端上传上来的数据会将此数据保存下来,s806:然后观众客户端请求到cdn服务器的时候,会按照flv流的传输规则,s807:将此自定义的音频头文件下发到观众客户端,s809:然后再下发无损音质对应的aac音频数据结构。

cdn服务器在识别到当前流为无损音频流时,不会对音频帧的时间戳进行处理,使用主播客户端的时间戳,同样,音视频流的视频帧中的时间戳,也是使用主播客户端的时间戳,这样,无损音频和视频都使用同个来源(主播端)的时间戳,观众客户端这边在播放时,才能够进行无损音频和视频的同步。

观众客户端,观众客户端接收数据时,首先会接收到"aacsequenceheader",然后解析这个音频头文件时,通过aac序列头结构的编码结构类型来判断当前流时常规aac的音频流,还是无损音质的音频流,s808:当编码结构类型为11的时候,会使用无损音质的flac格式对应的解码器,s810:来对接收到的无损音频编码数据进行解码。

如图9所示,图9为一个实施例中计算机设备的内部结构示意图。该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种flv流的音频数据传输方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种flv流的音频数据传输方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提出了一种计算机设备,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:接收发送端上传的flv音频流的aac序列头结构,其中,aac序列头结构中的编码结构类型中标识有无损音频流对应的标签;接收发送端上传的aac音频数据结构,其中,aac音频数据结构封装有无损音质头部信息和发送端根据编码器对对无损音频数据进行编码得到的无损音频编码数据;将aac序列头结构和aac音频数据结构下发至接收端,其中,接收端识别无损音频流对应的标签后调用无损音质对应的解码器,解码器根据无损音质头部信息对无损音频编码数据进行解码。

在一个实施例中,处理器所执行的将aac序列头结构和aac音频数据结构下发至接收端的步骤包括:在接收该接收端的无损音频请求时,查找无损音频请求对应的aac序列头结构;当aac序列头结构中标识有无损音频流对应的标签时,将aac序列头结构下发至接收端;将aac音频数据结构下发至接收端。

在一个实施例中,提出了一种计算机设备,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:在flv音频流的aac序列头结构中的编码结构类型中标识无损音频流对应的标签;通过编码器对无损音频数据进行编码,并将编码后的无损音频编码数据和无损音质头部信息封装到aac音频数据结构;将aac序列头结构和aac音频数据结构发送至服务器端,其中,服务器端将aac序列头结构和aac音频数据结构下发至接收端,接收端识别无损音频流对应的标签后调用无损音质对应的解码器,解码器根据无损音质头部信息对无损音频编码数据进行解码。

在一个实施例中,处理器所执行的通过编码器对无损音频数据进行编码的步骤包括:获取无损音频数据;当aac序列头结构中的编码结构类型中标识有无损音频流对应的标签,调用编码器;通过编码器对无损音频数据进行编码,得到无损音频编码数据。

在一个实施例中,提出了一种计算机设备,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:接收服务器端下发的aac序列头结构,其中,aac序列头结构中的编码结构类型中标识有无损音频流对应的标签;接收服务器端下发的aac音频数据结构,其中,aac音频数据结构封装有无损音质头部信息和对无损音频数据进行编码得到的无损音频编码数据;根据aac序列头结构和无损音质头部信息对无损音频编码数据进行解码。

在一个实施例中,处理器所执行的根据aac序列头结构和无损音质头部信息对无损音频编码数据进行解码的步骤包括:当aac序列头结构中的编码结构类型中识别有无损音频流对应的标签时,调用对应的解码器;利用解码器根据无损音质头部信息对无损音频编码数据进行解码。

在一个实施例中,提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:接收发送端上传的flv音频流的aac序列头结构,其中,aac序列头结构中的编码结构类型中标识有无损音频流对应的标签;接收发送端上传的aac音频数据结构,其中,aac音频数据结构封装有无损音质头部信息和发送端根据编码器对对无损音频数据进行编码得到的无损音频编码数据;将aac序列头结构和aac音频数据结构下发至接收端,其中,接收端识别无损音频流对应的标签后调用无损音质对应的解码器,解码器根据无损音质头部信息对无损音频编码数据进行解码。

在一个实施例中,处理器所执行的将aac序列头结构和aac音频数据结构下发至接收端的步骤包括:在接收该接收端的无损音频请求时,查找无损音频请求对应的aac序列头结构;当aac序列头结构中标识有无损音频流对应的标签时,将aac序列头结构下发至接收端;将aac音频数据结构下发至接收端。

在一个实施例中,提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:在flv音频流的aac序列头结构中的编码结构类型中标识无损音频流对应的标签;通过编码器对无损音频数据进行编码,并将编码后的无损音频编码数据和无损音质头部信息封装到aac音频数据结构;将aac序列头结构和aac音频数据结构发送至服务器端,其中,服务器端将aac序列头结构和aac音频数据结构下发至接收端,接收端识别无损音频流对应的标签后调用无损音质对应的解码器,解码器根据无损音质头部信息对无损音频编码数据进行解码。

在一个实施例中,处理器所执行的通过编码器对无损音频数据进行编码的步骤包括:获取无损音频数据;当aac序列头结构中的编码结构类型中标识有无损音频流对应的标签,调用编码器;通过编码器对无损音频数据进行编码,得到无损音频编码数据。

在一个实施例中,提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:接收服务器端下发的aac序列头结构,其中,aac序列头结构中的编码结构类型中标识有无损音频流对应的标签;接收服务器端下发的aac音频数据结构,其中,aac音频数据结构封装有无损音质头部信息和对无损音频数据进行编码得到的无损音频编码数据;根据aac序列头结构和无损音质头部信息对无损音频编码数据进行解码。

在一个实施例中,处理器所执行的根据aac序列头结构和无损音质头部信息对无损音频编码数据进行解码的步骤包括:当aac序列头结构中的编码结构类型中识别有无损音频流对应的标签时,调用对应的解码器;利用解码器根据无损音质头部信息对无损音频编码数据进行解码。

本发明实施例还提供了移动终端,如图10所示,图10为一个实施例中终端的内部结构示意图。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、pda(personaldigitalassistant,个人数字助理)、pos(pointofsales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:图10示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图10,手机包括:射频(radiofrequency,rf)电路1510、存储器1520、输入单元1530、显示单元1540、传感器1550、音频电路1560、无线保真(wirelessfidelity,wi-fi)模块1570、处理器1580、以及电源1590等部件。本领域技术人员可以理解,图10中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图10对手机的各个构成部件进行具体的介绍:

rf电路1510可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1580处理;另外,将设计上行的数据发送给基站。通常,rf电路1510包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(lownoiseamplifier,lna)、双工器等。此外,rf电路1510还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystemofmobilecommunication,gsm)、通用分组无线服务(generalpacketradioservice,gprs)、码分多址(codedivisionmultipleaccess,cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、长期演进(longtermevolution,lte)、电子邮件、短消息服务(shortmessagingservice,sms)等。

存储器1520可用于存储软件程序以及模块,处理器1580通过运行存储在存储器1520的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声纹播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元1530可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1530可包括触控面板1531以及其他输入设备1532。触控面板1531,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1531上或在触控面板1531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1580,并能接收处理器1580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1531。除了触控面板1531,输入单元1530还可以包括其他输入设备1532。具体地,其他输入设备1532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元1540可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1540可包括显示面板1541,可选的,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板1541。进一步的,触控面板1531可覆盖显示面板1541,当触控面板1531检测到在其上或附近的触摸操作后,传送给处理器1580以确定触摸事件的类型,随后处理器1580根据触摸事件的类型在显示面板1541上提供相应的视觉输出。虽然在图10中,触控面板1531与显示面板1541是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1531与显示面板1541集成而实现手机的输入和输出功能。

手机还可包括至少一种传感器1550,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1541的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1541和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路1560、扬声器1561,传声器1562可提供用户与手机之间的音频接口。音频电路1560可将接收到的音频数据转换后的电信号,传输到扬声器1561,由扬声器1561转换为声纹信号输出;另一方面,传声器1562将收集的声纹信号转换为电信号,由音频电路1560接收后转换为音频数据,再将音频数据输出处理器1580处理后,经rf电路1510以发送给比如另一手机,或者将音频数据输出至存储器1520以便进一步处理。

wi-fi属于短距离无线传输技术,手机通过wi-fi模块1570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图10示出了wi-fi模块1570,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器1580是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1520内的软件程序和/或模块,以及调用存储在存储器1520内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1580可包括一个或多个处理单元;优选的,处理器1580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1580中。

手机还包括给各个部件供电的电源1590(比如电池),优选的,电源可以通过电源管理系统与处理器1580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。

在本发明实施例中,该终端所包括的处理器1580还具有以下功能:权1内容。也即处理器1580具备执行上述的任一实施例flv流的音频数据传输方法的功能,在此不再赘述。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1