一种基于HTTP服务器的三维音效在线处理方法与流程

文档序号:11156728阅读:426来源:国知局
一种基于HTTP服务器的三维音效在线处理方法与制造工艺

本发明涉及音频媒体服务技术,具体涉及一种基于HTTP服务器的三维音效在线处理方法。



背景技术:

随着互联网和终端技术的发展,越来越多的在线音频服务开始出现。目前在线音频服务的三维音效处理通常在终端播放器本地实现,由于终端技术和硬件条件的多样性及对三维音效处理的支持程度不一样,导致在每个终端不能达到一个统一的实现效果。没有一个统一的实现方式。



技术实现要素:

本发明的目的在于克服目前在线音频服务的三维音效处理尚存在的上述缺陷,利用在线音频服务的现有系统,提出了一种基于HTTP服务器的三维音效在线处理方法,在该方法中,在在线音频服务的媒体服务HTTP服务器处理链中插入三维音效处理模块,过滤和拦截带三维音效参数的请求,对音频数据进行音效变换,实现了在线音频播放的三维音效的实时处理,满足了各类终端的统一的音效体验。

为了实现上述目的,本发明提供了一种基于HTTP服务器的三维音效在线处理方法,所述方法包括:

步骤1)页面播放器接收到音效处理的指令后,将采集的数据拼装新的URL,并向HTTP服务器进行请求;

步骤2)在HTTP服务器端,三维音效处理以模块方式加载到HTTP服务器请求处理链中,拦截带三维音效参数的URL数据请求,对音频数据进行音效变换处理,并将处理后的音频数据返回给所述页面播放器;

步骤3)所述页面播放器对音频进行播放处理。

上述技术方案中,所述步骤1)具体包括:

步骤101)页面播放器接收到音效处理的指令后,判断能否对本地播放器的Buffer数据进行操作,如果可以,则依据当前播放位置,清除本地播放器中缓存的音频数据,并设置支持清除缓存标识为TRUE;否则,设置支持清除缓存标识为FALSE;

步骤102)将当前播放位置、三维音效参数坐标和支持清除缓存标识拼装新的 URL,向HTTP服务器发出请求。

上述技术方案中,所述步骤2)具体包括:

步骤201)三维音效处理以模块方式加载到HTTP服务器请求处理链中,拦截带三维音效参数的URL数据请求;

步骤202)依据拦截的URL数据请求,获取对应的音频文件的文件名、当前播放位置、三维音效参数坐标和支持清除缓存标识,如果支持清除缓存标识为TRUE,则转入步骤203);否则转入步骤204);

步骤203)根据音频文件的文件名,读取音频文件,获取音频文件的元数据,依据当前播放位置,定位到具体的音频数据帧,按帧进行三维音效变换,进入步骤205);

步骤204)根据音频文件的文件名,读取音频文件,获取音频文件的元数据,依据当前播放位置,定位到具体的音频数据帧,针对当前音频帧之前的数据,直接输出到客户端播放器的响应流中,针对当前音频帧之后的数据,进行三维音效变换,执行步骤205);

步骤205)从定位的音频数据帧开始依次进行音效变换,并把变换后的数据帧保存到设定的输出Buffer中;

步骤206)只对音频帧数据进行变换,对音频文件中的元数据信息直接输出;

步骤207)将处理后的音频数据返回给所述页面播放器。

上述技术方案中,所述步骤206)中的音效变换中,当设定的输出Buffer大小达到预定值时,把Buffer中的数据输出到客户端播放器的响应流中,并清空Buffer。

上述技术方案中,所述步骤3)具体包括:

步骤301)判断所述支持清除缓存标识是否为TRUE,如果判断结果是肯定的,所述页面播放器获取音频数据,直接从当前位置继续播放,获取三维音效效果;否则,进入步骤302);

步骤302)重新初始化所述页面播放器,在页面播放器进入SEEKABLE状态后,寻找到当前的播放位置进行播放,获取三维音效效果。

本发明的有益效果在于:

1.本发明的方法利用了通用HTTP服务器的并发处理能力,实现音频数据的实时在线三维音效处理;

2.本发明的方法通过基于服务端进行三维音效处理,避免了终端条件的差异,提供了统一的服务体验。

附图说明

图1是本发明的基于HTTP服务器的三维音效在线处理方法的流程图;

图2是本发明的HTTP服务器的三维音效处理处理流程图。

具体实施方式

下面结合附图和具体实施例对本发明做进一步详细的说明。

如图1所示,一种基于HTTP服务器的三维音效在线处理方法,所述方法包括:

步骤1)页面播放器接收到音效处理的指令后,将采集的数据拼装新的URL,并向HTTP服务器进行请求;具体包括:

步骤101)页面播放器接收到音效处理的指令后,判断能否对本地播放器的Buffer数据进行操作,如果可以,则依据当前播放位置,清除本地播放器中缓存的音频数据,并设置支持清除缓存标识为TRUE;否则,设置支持清除缓存标识为FALSE;

所述页面播放器加载在终端上并在终端上运行;

步骤102)将当前播放位置、三维音效参数<x,y,z>坐标和支持清除缓存标识拼装新的URL,向HTTP服务器发出请求。

步骤2)在HTTP服务器端,三维音效处理以模块方式加载到HTTP服务器请求处理链中,拦截带三维音效参数的URL数据请求,对音频数据进行音效变换处理,并将处理后的音频数据返回给所述页面播放器;

如图2所示,所述步骤2)具体包括:

步骤201)三维音效处理以模块方式加载到HTTP服务器请求处理链中,拦截带三维音效参数的URL数据请求;

步骤202)依据拦截的URL数据请求,获取对应的音频文件的文件名、当前播放位置、三维音效参数坐标和支持清除缓存标识,如果支持清除缓存标识为TRUE,则转入步骤203);否则转入步骤204);

步骤202)依据拦截的URL,获取对应的音频文件的文件名、当前播放位置、三维音效参数<x,y,z>坐标和支持清除缓存标识,如果支持清除缓存标识为TRUE,则转入步骤203);否则转入步骤204);

步骤203)根据音频文件的文件名,读取音频文件,获取音频文件的元数据,依据当前播放位置,定位到具体的音频数据帧,按帧进行三维音效变换,进入步骤205);

步骤204)根据音频文件的文件名,读取音频文件,获取音频文件的元数据,依据当前播放位置,定位到具体的音频数据帧,针对当前音频帧之前(包括当前帧)的数据,直接输出到客户端播放器的响应流中,针对当前音频帧之后的数据,进行三维音效变换,执行步骤205);

步骤205)从定位的音频数据帧开始依次进行音效变换,并把变换后的数据帧保存到设定的输出Buffer中;

在进行音效变换时,为方便处理,保证进行变换的帧数据变换前后的音频帧数据的字节大小相同;在设定的输出Buffer大小达到预定值时,把Buffer中的数据输出到客户端播放器的响应流中,并清空Buffer;

步骤206)只对音频数据帧进行变换,对音频文件中的元数据信息直接输出;

步骤207)将处理后的音频数据返回给所述页面播放器。

步骤3)页面播放器根据支持清除缓存标识对音频进行相应播放处理,具体包括:

步骤301)如果支持清除缓存标识为TRUE,则页面播放器获取音频数据,直接从当前位置进行继续播放,获取三维音效效果;否则,进入步骤302);

步骤302)重新初始化所述页面播放器,在页面播放器进入SEEKABLE状态后,SEEK到当前的播放位置进行播放,获取三维音效效果。

实例1:

NGINX是一个高性能的HTTP服务器,其特点是占有内存少,并发能力强,同时把请求处理流程划分为多个阶段,各阶段按照处理时机定义了清晰的执行语义,很容易介入请求处理流程进行模块开发。

下面基于NGINX进行三维音效处理,具体流程如下:

(1)NGINX根目录下放置提供在线音频服务的MP3文件,如:content_1.mp3、content_2.mp3;

(2)在NGINX的“location/”的配置指令下面,添加videopanner指令,用于启动三维音效处理;

(3)启动NGINX服务器;访问包含页面播放器处理流程的在线音频服务页面,通常,页面播放器处理流程包含在一个js文件中;

(4)页面加载后,会进行页面播放器的初始化,并基于给定的音频文件URL向中的HTTP服务器请求对应的MP3文件;

(5)音频MP3文件开始播放后,播放器页面会呈现出一个包含音源和听者的三维坐标空间,用户使用鼠标拖动来移动音源或听者的位置,在拖动结束之后,获取音源的三维音效参数<x,y,z>坐标、本地播放器支持清除缓存标识和当前播放位置拼装在请求URL上向NGINX请求音频文件;

(6)NGINX调用videopanner指令,拦截请求URL,并解析出音频文件的文件名、当前播放位置、三维音效参数<x,y,z>坐标和支持清除缓存标识等参数;

(7)判断支持清除缓存标识,如果为TRUE,则执行步骤(8);否则执行步骤 (9);

(8)根据音频文件的文件名,读取音频文件,获取音频文件的元数据,依据当前播放位置,定位到具体的音频数据帧,进行音效变换,执行步骤(10);

(9)根据音频文件的文件名,读取音频文件,获取音频文件的元数据,依据当前播放位置,定位到具体的音频数据帧,针对当前音频帧之前(包括当前帧)的数据,直接输出到客户端播放器的响应流中,针对当前音频帧之后的数据,进行音效变换,执行步骤(10);

(10)按照当前帧数据依次进行音效变换,并把变换后的数据帧保存到设定的输出Buffer中;在设定的输出Buffer大小达到90%时,把Buffer中的数据输出到客户端播放器的响应流中,并清空Buffer;

(11)只对音频帧数据进行变换,对音频MP3文件中的元数据信息直接进行输出不处理。

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