1、“.....但构建出的对象均会由类型的指针来操作。这样设计的好处是分离了业务逻辑部南京邮电大学硕士研究生学位论文第五章流媒体客户端在智能手机上的实现分与功能实现部分,方便了将来的维护与升级。开始播放视频暂停视频播放停止视频播放进行快进快退定位设置音量获取当前播放位置获取当前音量值音视频同步算法在前面,我们已经设计了解码线程,在解码线程里面,我们从中获取了待解码的帧帧视频音频压缩数据,将这些压缩数据放入待解码的队列。然后解码线程从这个队列中提取帧数据,解码后放入原始数据队列,视频渲染线程和音频播放线程会从原始数据队列中获取数据去绘制屏幕和播放声音。现在,我们可以正确的解码视频流与音频流,但是,这里还有个重要的问题,就是音频与视频如何同步。音频和视频流当中都有些关于以多快的速度和在什么时间来播放它们的信息在里面。音频流有采样率,视频流有每秒的帧率,然而......”。
2、“.....再平均分配到时间轴上的方式来同步视频,那么就很有可能会失去同步。因此,作为种补充,在媒体流中的包有种叫做解码时间戳和显示时间戳的信息。我们知道,像在系列编码格式中,有三种帧格式,分别是帧表示双向预测帧,帧和帧表示关键帧,表示前向预测帧。帧是帧内编码,包含了个特定的完整图像,而帧依赖于前面的帧和帧,并且使用比较或者差分的方式来编码。帧与帧类似,但是它是依赖于前面和后面的帧的信息的,所以称为双向预测帧。对于段视频来说,帧的显示顺序是但是,在我们显示帧之前需要知道帧中的信息,所以,帧在计算机中的存储方式可能会是这样因此,我们需要个解码时间戳和个显示时间戳。解码时间戳告诉我们南京邮电大学硕士研究生学位论文第五章流媒体客户端在智能手机上的实现什么时候需要解码,显示时间戳告诉我们什么时候需要显示。在这里,我们有三种选择同步视频到音频,同步音频到视频......”。
3、“.....基于音频时钟同步首先,我们来看下同步视频到音频。将从媒体流中提取的信息放入解码后的帧队列中。我们还设置了个音频时钟,它记录了正在播放的音频的位置,视频线程中使用这个值来计算视频帧显示快了还是慢了。当音频和视频失去同步的时候,最简单的办法是试着跳到正确帧即俗称跳帧,但是缺点也很明显,就是会造成丢帧从而影响用户体验。作为种改进的方法,就是调整下次刷新屏幕的值如果帧的大幅落后于音频时钟,则减小显示延迟,尽可能快的刷新屏幕如果大幅先于音频时钟,则将显示延迟加倍,告诉视频线程慢点刷新屏幕。这里,还需要设置个门限阀值,当手机运算资源不足或数据不完整时,与音频时钟的差值超过这个门限时,我们就认为已经失去同步,此时需要使用跳帧的方法跳至当前正确的帧。我们看到,这种调整视频帧刷新屏幕速度的同步方法有时会导致视频丢帧,而对于部影视节目来说,视频的信息量较音频要高出许多,因此......”。
4、“.....以此来保证视频信息最大程度的还原到用户面前,从而保证良好的用户体验。改进的基于视频时钟的同步算法与上面样,我们先从中获得个视频时钟,然后同步音频到这个时钟上。具体同步的方法是测量音频的位置,然后与视频时钟比较,计算出需要修正的样本数。这就是说,通过丢弃音频样本的方法来加快回放速度或者通过插入样本来放慢回放速度。但是,并不能在每次出现偏差的时候都修正样本进行同步,因为这样会占用过多的运算资源来处理音频数据。所以我们使用个平均差异值,它表示了当前音频时间位置与视频时钟之间的差异,稍后我们会给出它的定义,当这个平均差直大于门限的时候,我们才会去修正样本进行同步。这样,我们保证了不会耗费过多的运算资源去处理音频数据,但是,我们也需要保证修正样本不会过大而导致声音变得尖锐。这个平均差异值的定义是这里研究的重点,我们知道,在时间轴上......”。
5、“.....对当前差异值的计算占有更重要的权重。所以,这里我们不会使用简单的均值,而是加权后的均值。加权均值的定义为南京邮电大学硕士研究生学位论文第五章流媒体客户端在智能手机上的实现这里,我们引入个衰减系数,它的定义如下上式中的为经验常数,用于调整过去差异值的衰减系数,可以根据实际用户体验做出调整。由此,我们可以计算出到当前时刻的差异值的总和,在式中我们看到过去时刻的音频时钟与视频时钟差异值都会乘以衰减系数的次方,离现在越远的值所占权重越小。当然,如果用这个公式去计算,那么代价是很大的,因为我们不得不分配相当可观的内存空间去存放这些参数,而且直至资源耗尽为止,这在手机平台上是不可接受的。因此,我们使用取近似值的方法来计算上式中的,这种近似取值在听觉上是难以察觉的。我们的近似值计算公式如下这样,我们便可以方便的计算和存储当前的差异值总和了......”。
6、“.....我们要做的就是计算出平均差异值,观察式我们不难发现,当的时候,权重系数就是个趋向于的几何级数。以此我们得到下面的式子我们根据式最终给出平均差异值的定义这是种近似的计算,因为当越来越大的时候,较远时刻的差异值在总和中所占的比例会迅速衰减,最后几乎可忽略不计。所以在计算平均值的时候,我们使用作除数代表了对当前对总和贡献最大的差异值个数。南京邮电大学硕士研究生学位论文第五章流媒体客户端在智能手机上的实现网络代理模块详细设计此模块用于处理协议,如系统接入资源协商会话建立等信令。在这里,我们使用了代理设计模式,这是种保护代理,由掌握着对单例对象的访问控制。像模块对的数据读取请求就必须由来完成。除了这些,它还负责与服务器间传递会话信息,用户信息及影片信息等。同时,负责接收媒体服务器推送过来的数据流,然后存入中并设有重传机制来保证数据完整性,确保向提交的数据为完整无误的......”。
7、“.....修改了报头的些字段以应用于文中的流媒体系统。主要将原有的字段改为存储偏移,这个是当前数据部分相对于整个媒体文件起始部分的偏移,用于有序的向内存文件中插入数据,以便还原文件原有的布局。而同步源标识符则被替换成了会话标识符,用来标识每次会话的,主要用来处理将来系统升级为架构时,同时出现多个会话进程的情况。最后将报文封装成报文传输。当网络代理建立起次会话,会去等待媒体流,当接收到报文后会解析其中的字段,根据这些字段将数据放到内存文件中正确的位置,并调用内存文件的接口完成数据校验。当确认数据完整后,网络代理才会去结束本次会话。当有数据丢失时,内存文件的校验函数会返回这些数据缺口信息,网络代理会使用这些信息向媒体服务器请求重传,直至数据接收完整。在数据接收过程中,网络代理会开启个超时定时器,来处理各种网络延迟服务器无响应等情况,防止程序进入僵死状态......”。
8、“.....存在较大的时延和抖动,所以,需要选择个合适的带宽来传输数据,并且要根据网络情况进行实时的调整。由于这里的报文是基于传输的,所以我们不能通过友好流媒体传输机制的方法来实时计算带宽,而需要使用单数据包技术。单数据包技术是向网络发送大小变化的探测数据包,由此统计到达目的端的时延来计算网络的带宽。这里,我们将数据包本身作为探测数据包,如果知道了个大小已知的数据包经过条链路的时间,就可以计算出该条链路的带宽。计算带宽时还必须考虑链路的传播时延,对于定的传输媒介,传播时延是固定的,在这里,我们不考虑网络的处理时延和发送时延,传输时间可以由下面的式子计算出为数据包的大小,为链路的传播时延,为链路的带宽,测试使用的网络下行带宽理论峰值为,考虑到具体环境影响,通常实用中无法达到理论带宽......”。
9、“.....客户端对每次会话中的每个包的时延进行统计,并计算出次会话中的平均时延,并将这个信息反馈给服务器,服务器将通过这些信息计算出可用的实际带宽,并以此控制媒体服务器的发送速率。这样做虽然减小了带宽使用率,但同时减少了丢包率,提高了系统在高误码的无线网络环境中的鲁棒性。南京邮电大学硕士研究生学位论文第五章流媒体客户端在智能手机上的实现内存文件映射模块详细设计内存文件映射模块主要用于在内存中存储来自网络的媒体数据,并提供与文件操作相似的读取写入等接口,并具有自校验功能以保证数据的完整性。这样做的目的主要在于,如果使用手机上的外存作为缓存,那么对的频繁读写将会严重消耗手机的电量,并且定程度上影响到的寿命,这对用户来说是难以接受的。所以,我们设计了内存文件,上层模块操作它就像操作普通文件样,只不过它存储于内存中,并可以实时增加删减,以保持尽可能少的内存占用......”。
1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。