- 论坛徽章:
- 0
|
我在SUSE Linux Enterprise Server 10 (x86_64)上编译安装MPlayer源码,并且安装成功。
接下来我用如下命令对ts文件截图:
./mplayer -ss 00:05:26 -demuxer lavf -vf screenshot -vo jpeg -lavdopts skiploopfilter=all:skipframe=nonkey -nosound -frames 16 /home/heikediguo2.ts
命令解释如下:
-ss 00:05:26:在ts文件中的00:05:26这个时刻截图;
-demuxer lavf -vf screenshot:就在00:05:26这个时刻点截图,不要跑到其他时间点截图,比如跑到00:04:26;
-vo jpeg :截图为jpg格式的;
-lavdopts skiploopfilter=all:skipframe=nonkey: 去除截图有马赛克现象;
-nosound :解码时忽略音频;
-frames 16 :一共截取16帧;
/home/heikediguo2.ts:截图的视频,是一个ts文件。
现在出现一个问题:
1. 我在00:05:26这个时刻点截图16帧,但是都是完全一片灰白;但是截图20帧,从第18帧开始,是有清晰的图像的;
2. 我在00:01:34这个时刻点截图4帧,还是完全一片灰白;但是截图10帧,从第6帧开始,有清晰的图像的;
以此类推,在不同的时刻点,我需要截X帧(X>=1),其中,至少第X帧是有清晰的图像的;我怎么去确定这个X是多大呢?
我也想过其中一个方法:就是在上述截图命令中加上一个scale参数,可以指定截图的高和宽。这样截出来的图,如果是灰白的话,大小恒为512字节;如果是有清晰图像的话,大小就肯定不是512字节,所以可以根据截图的大小来判断是否截出了清晰的图像,但是总觉这个方法不好。
各位达人还有什么好的方法吗? |
|