本文转载至:http://wiki.jackslab.org/MPlayer_Tips
作者: comcat 发表日期: 2007-04-24 15:30
Mplayer 中有 -benchmark 参数可以收集视频播放的数据
1. 常用命令
mplayer -benchmark foreman.avi
如果不需要视频输出,可以这样:
mplayer -benchmark -vo null foreman.avi
一般情况下,我们测试某个视频解码器的效果,也不需要音频的数据,则:
mplayer -nosound -vo null -benchmark foreman.avi
2. 结果分析
foreman.avi 这段视频播放完了,mplayer 会输出类似如下信息:
BENCHMARKs: VC: 97.821s VO: 0.000s A: 0.000s Sys: 7.679s = 105.500s BENCHMARK%: VC: 92.7213% VO: 0.0000% A: 0.0000% Sys: 7.2787% = 100.0000%
第一行是以秒为单位的统计,第二行是以百分比为单位的统计。每行最后等号后面是总计。
各主要字段的含义如下:
VC: 视频解码所需时间 VO: 视频输出所需时间 A: 音频解码所需时间
以上为用户空间程序执行所花时间
Sys: 花在内核空间的时间
则:播放该视频数据解析如下:
视频解码时间为 97.821s 视频输出的时间为 0.000s 音频输出的时间为 0.000s 用于核心态代码的时间为7.679s 总时间为 105.500s
3. 福珑(内置龙芯2E)上实际测试
测试视频使用新闻联播报道龙梦的一段,mpeg4 格式
音视频信息 mplayer 报:
VIDEO: [DIV3] 720x576 24bpp 25.000 fps 944.1 kbps (115.2 kbyte/s) AUDIO: 44100 Hz, 2 ch, s16le, 1411.2 kbit/100.00% (ratio: 176400->176400)
I. mplayer -benchmark test.avi
AO: [oss] 44100Hz 2ch s16le (2 bytes per sample) VO: [xv] 720x576 => 720x576 Planar YV12 A: 159.7 V: 159.4 A-V: 0.267 ct: 6.984 3987/3987 121% 39% 2.9% 2251 0 BENCHMARKs: VC: 193.669s VO: 63.772s A: 4.612s Sys: 10.932s = 272.985s BENCHMARK%: VC: 70.9451% VO: 23.3610% A: 1.6895% Sys: 4.0045% = 100.0000%
II. mplayer -benchmark test.avi -vo xvidix (使用优化过的视频输出组件)
AO: [oss] 44100Hz 2ch s16le (2 bytes per sample) VO: [xvidix] 720x576 => 720x576 Planar YV12 A: 159.2 V: 159.4 A-V: -0.287 ct: -0.040 3987/3987 44% 0% 1.3% 56 0 BENCHMARKs: VC: 71.352s VO: 0.161s A: 2.062s Sys: 96.128s = 169.704s BENCHMARK%: VC: 42.0451% VO: 0.0951% A: 1.2153% Sys: 56.6445% = 100.0000%
测试I 花费在视频输出上的时间为 63.772s,占总时间的 23.3610%
且因为视频输出的速度跟不上,造成测试视频解码的时间是测试II 的2倍多。
mplayer 默认的视频输出组件 xv ,不知是不是与 Xorg 有关?
mplayer -ss START_TIME -noframedrop -nosound -vo jpeg -frames N NAME_OF_VIDEO_FILE
mplayer -identify movie-filename -nosound -vc dummy -vo null | grep ID_LENGTH