ffmpeg 多张图片转视频,视频转gif,截取视频,截取视频里的帧

ffmpeg 是一个强大的处理视频命令库。

百度百科:FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

总之我们可以使用ffmpeg来很方便的处理各种格式的视频或者图片。

我在工作中用到过以下命令:

1、多张图片合成mp4格式的视频

ffmpeg -f image2 -r 1 -i /storage/emulated/0/DCIM/dateme/vframe/yiba_frame_%02d.png -vcodec mpeg4 /storage/emulated/0/DCIM/dateme/video/yiba_v_1497949606343.mp4

注意:
1、-r 1必须放在-i 前面不然生成的视频时长会有问题。-r 1表示每秒1帧,这样我的6张图片生成的视频时间长度就是6s。
2、%02d表示我的文件名是01、02、03这样由两位整数组成的数字。具体每一个文件名就是yiba_frame_01.png,yiba_frame_02.png,yiba_frame_03.png。。。。。。
3、-vcodec mpeg4 表示使用mpeg4编码标准,因为我要输出mp4格式的文件,如果不加这个参数也会出错。(亲测)

以上命令亲测可用。

2、每隔一秒钟截取一帧图片

命令:

ffmpeg -i /storage/emulated/0/DCIM/dateme/video/yiba_v_1497949588158.mp4 -ss 00:00 -t 10 -r 1 -f image2 -vf fps=fps=1 /storage/emulated/0/DCIM/dateme/vframe/yiba_frame_%02d.png 

提示:
1、-i 后面跟输入文件路径
2、-ss 后面跟开始截图的时间 -t 表示截取的视频长度为10s
3、-vf fps=fps=1 表示截图频率为每秒1帧(和-r 1的作用是一样的,所以可以去掉r 1)
4、-f image2表示输入或输出文件的格式是image2格式,f是format格式的意思

3、截取视频前3秒 并转化为gif

ffmpeg -ss 00:00:01 -t 3 -i /storage/emulated/0/DCIM/dateme/video/yiba_v_1497949777519.mp4 -vf crop=iw:ih*2/3 -s 320x240 -r 7 /storage/emulated/0/DCIM/dateme/gif/yiba_gif_1497949820078.gif

提示:

1、-ss 00:00:01表示从视频第一秒开始截取
2、- t 表示截图3秒钟的视频
3、-vf crop=iw:ih*2/3 表示截取视频的部分区域,其中宽为视频宽度,高为原视频的2/3
4、-r 7 表示每秒帧率为7帧
5、最后直接加上要生成的gif的路径就会把截取好的视频输出为gif了。

特别提示:

由于我对ffmpeg不了解,以上命令都是我在工作中摸索出来的,在我的项目里使用是没有问题的,大家可以作为参考,如果有说的不对的地方请留言告诉我哦,(^__^)

附上ffmpeg的一个文档,内容为英文。可以用来参考:

ffmpeg Documentation
https://ffmpeg.org/ffmpeg.html#Video-and-Audio-file-format-conversion

你可能感兴趣的:(android学习笔记)