移动端音频高低码流自适应播放方法与流程

文档序号:12624379阅读:740来源:国知局
移动端音频高低码流自适应播放方法与流程

本方案适用于移动端,根据当前网络信号(包括WIFI、移动网络)的强弱,自动智能的识别并播放相应码流的音频。



背景技术:

当前手机厂商众多,生产的手机性能各不相同,网络信号(WIFI或移动网络)不同时段或不同的地段的强弱(RSSI:Received Signal Strength Indicator-接收的信号强度指示)不同,用户收听音频总是时断时续,甚至出现卡顿现象,这样给用户带来不好的体验,甚至有时还会影响到正常的工作或生活。

目前已知的技术如一种网络自适应的流媒体QoS控制方法(专利号:CN102547389B),根据服务器和客户端通过XMPP协议的QoS的消息传递和播放器缓冲区的高低水位来判断,这样就会给本来网络较弱的情况下增加负担,性能和体验不是很好。如一种嵌入式网络自适应/实时高清视频的传输方法(专利号:CN102098547A),是根据网络传输模块的评估返回值,再对采集的视频做高码流的编码或低码流的编码,这样就会带来播放的延时和增加服务器的负载。

因此,在这种情况下,使用移动终端的用户,如果音频的分发商使用相同的码流的音频内容,网络差的用户因为网络问题体验不好,而网络信号好的用户不能因为网络较好而体验到较好的(高清码流)音频内容。



技术实现要素:

本方案的详细内容涉及到服务器和移动端

1、服务端部分

服务端负责音频码流的分发,分发时根据情况可以分发出多个码流:高清码流(128k)、普通码流(56k)和低码流(16k),使用多媒体开源框架FFMPEG,根据需求切出相应的音频码流切片,切流命令如下:

ffmpeg–i音频源文件地址–acodec音频编解码库编解码参数输出文件(*.m3u8)

切出的文件格式大致如下:

#EXTM3U

#EXT-X-VERSION:3

#EXT-X-ALLOW-CACHE:YES

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=16000//低码流

http://www.example.com/low.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=56000//普通码流

http://www.example.com/middle.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=128000//高清码流

http://www.example.com/high.m3u8

#EXT-X-ENDLIST

服务端处理好的各类规格码流的音频数据存储到服务器上,然后使用统一的接口地址对外公布,以便移动端访问。

2、移动端部分

移动端的设备,由于所处的位置是不固定的,所导致的网络状态可能不稳定,如手机在办公区使用WIFI,拿着手机到处走动时,网络信号就会忽强忽弱,所以就会感觉到播放网络音频时,就会出现偶尔的停顿或卡顿现象,同样如果使用移动网络4G情况下,可能走到另一个地方而导致4G信号很弱而转为弱的3G,也会导致音频播放卡顿或停止。

我们设计出可以根据网络信号的RSSI的dB值的大小,定义类型如下:

dBm<=-80db时为弱信号,播放低码流音频;

dBm>=-25db时为强信号,播放高清码流音频;

dBm值介于两者之间的为正常的普通的信号,播放中码流音频。

移动端播放器开始播放音频时,默认播放普通码流的音频,播放过程中开始定期网络信号的检测,根据检测信号的结果,自动播放相应码流的音频,如果网络信号较弱时,就按照播放时间戳切换到低码流音频流播放,信号很好时同样按照播放时间切换到高清码流的音频流播放点。有时还可以对丢包较严重的码流进行申请重传丢包,播放器根据当前音频播放的时间进行高低码流的无缝切换,这样更好的保障了用户的体验。

针对广播音频,特别是直播节目,如果网络信号很差,导致用户收听广播时断时续不能正常的收听到播音员的播出内容,有时可能由于丢掉一些内容而理解错误,使用了网络智能自适应音频码流,就保障了不会漏掉收听内容,体验更好。

附图说明

图1:码流自适应切流、播放音频示意图;

图2:移动端动态监测网络信号并切换音频码流示意图。

具体实施方式

本方案的操作步骤如下:

1、服务端下载FFMPEG源代码,配置编译参数并编译FFMPEG,配置中要包括支持音频AAC格式和M3U8格式,在编译过程中,可能会报错,需要下载一些插件支持;

2、切片服务器使用切片工具FFMPEG,根据需要切流的音频流源地址、码流信息和切片的时长,配置相应的切流参数,分别切出高中低等不同码流的音频文件,存储到指定的服务器;

3、存储服务器负责存储切片服务器切出的各类音频文件,供移动端访问连接;

4、移动端实时检测网络信号RSSI的强弱,然后根据检测的结果判断该值的稳定性,比如可能存在在某个短时间段内网络信号时强时弱的不稳定,在这种情况下,就不能对高低音频流切换那么频繁,而应使用低码流的音频,等待当网络信号变为强的信号稳定时切换到高清码流。

5、切换音频码流,首先记录一下当前播放的音频的时间戳,然后打开需要切换的音频码流,根据刚才记录的时间戳,直接从时间戳处播放,这样保证无缝的切换,这样给用户带来的体验更好。

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