使用FFmpeg从视频中截图的命令和java代码截取视频流

java http://www.cnblogs.com/jillzhang/archive/2006/11/03/549210.html
截取一张352x240尺寸大小的,格式为jpg的图片:

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后跟的时间单位为秒。

你可能感兴趣的:(java,Web,.net,F#,Flash)