声明:
这里主要介绍如何运用Excel来分析音视频是否同步,希望可以对大家有所帮助。
介绍:
学习音视频就一定要知道做音视频同步,而现在我们来分析音视频同步的工具也是有的,比如easyICE等,但是针对音视频同步这样的问题,我们该如何只通过音视频的pts log打印来判断是不是音视频同步有问题那?由于很多时候音视频的pts很多,我们很难一个个的分析来获得对这个问题整体的了解,这个时候就需要通过Excel来将获得的音视频的pts统计并以图形的方式直观的表现出来。
具体实现:
1. 获得pts数据:
pcr=0x4417038 apts=0x4417038 vpts=0x4416ed0
pcr=0x441aad0 apts=0x441aad0 vpts=0x441a710
pcr=0x441cdf8 apts=0x441cdf8 vpts=0x441ca38
pcr=0x441fcd8 apts=0x441fcd8 vpts=0x441fb70
pcr=0x4422bb8 apts=0x4422bb8 vpts=0x44225a0
pcr=0x4425a98 apts=0x4425a98 vpts=0x44256d8
pcr=0x4428978 apts=0x4428978 vpts=0x4428810
pcr=0x442cfc8 apts=0x442cfc8 vpts=0x442ce60
pcr=0x4430a60 apts=0x4430a60 vpts=0x44306a0
pcr=0x4432d88 apts=0x4432d88 vpts=0x44329c8
pcr=0x4435c68 apts=0x4435c68 vpts=0x4435b00
在上面的数据中pcr为系统时钟,而apts为音频的pts,vpts为视频的pts
2. 通过Excel的命令来获得pcr,apts和vpts对应的值
不同的人有不同的提取方式,我一般会使用Excel的right和left命令来从一串字符中提取需要的数字,我相信Excel用的好的同学一定有更好的方法。
right命令:从字符串右边起获得指点个数的字符
=RIGHT(C2,7) :参数1表示要获取的字符串的位置或字符串,参数2表示获得字符串的个数
left命令:从字符串左边起获得指点个数的字符
=LEFT(RIGHT(C2,22),7):参数1表示要获取的字符串的位置或字符串,参数2表示获得字符串的个数
而left和right相互使用就可以获得任何你想要的数据了
3. 将16进制的数字转化为10进制:
从上面获得的pcr,vpts和apts都是16进制的数据,使用这些数据比较大小很不方便,需要使用Excel的命令来将16进制转化为10进制:
需要用到的命令 HEX2DEC: 将16进制的数字转化为10进制
=HEX2DEC(S2) :参数1表示需要转化的16进制数据或所在单元格
4. 数据分析
获得pcr,apts和vpts后就可以对这些数据进行分析了,例如需要算apts与vpts的差值,以及前后apts的差值或者前后vpts的差值等。而在查看数据前由于需要更好的分析,可以将某一行或者一列冻结方便在拖动滚轮的时候这一个选定的行或者列保持:
选中需要冻结的行或者列,之后点击 冻结窗格
5. 作图:
获得这些数据后要想更加直观的看出各个数据的差异就需要画图来体现他们的不同了,这个时候建议大家使用组合图,柱形图和折线图结合的方式,可以将数据表现的更加生动:
在上面的图中可以很好的体现pts的变化。