ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a.jpg
把视频的前30帧转换成一个Animated Gif :
ffmpeg -i test.asf -vframes 30 -y -f gif a.gif
目前还没有找到截取任意一帧为图片的方法。
另外,由于Flash在线录制的视频格式为Flv格式,Flash能播放的视频格式也仅为Flv格式,所以从Flv到其它视频如avi,mpeg,rm,asf,wmv之间的转换就是一个问题,今天试了一下FFmpeg可以在命令行做到Flv到其它视频格式的互转。那么在Server-side程序中使用WSH即可实现web在线转换视频格式及视频截图的功能,目前没有实践,但理论上可行,明天就试一下。
说到利用FFmpeg从视频截图的命令,那天在找从视频截取指定帧的图片的办法,这么多天没有进展,原来我从网上找的关于FFmpeg的参数命令列表并不全,少了-ss这么一个参数.于是这个问题也到现在才解决.
今天利用FFmpeg -h > ffmpeg.txt,把FFmpeg的命令打印出来后,才发现了这一参数:
-ss time_off set the start time offset
使用-ss参数,可以从指定的时间开始处理转换任务.如:
ffmpeg -i test2.asf -y -f image2 -ss 08.010 -t 0.001 -s 352x240 b.jpg
那么从任意一帧截图的问题也就解决了.只要-ss后的时间参数是随机产生,并且在视频的有效时间内,就可以了.
另外,-ss后跟的时间单位为秒。