简单熟悉下参数
主要参数:
-i 设定输入流
-f 设定输出格式
-ss 开始时间 视频参数
-t 时长,如: 00:00:10,表示截取10秒长的视频;如果不设定,表示裁剪到文件尾
-b 设定视频流量,默认为200Kbit/s
-r 设定帧速率,默认为25
-s 设定画面的宽与高
-aspect 设定画面的比例
-vn 不处理视频
-vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器 ,可使用copy表示原样拷贝
音频相关:
-ar 设定采样率
-ac 设定声音的Channel数
-acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器
-an 不处理音频
以下几个常用实例亲测通过
1.根据视频生成gif
//vframes 帧数
ffmpeg -i /storage/emulated/0/video.mp4 -ss 00:00:10 -vframes 30 -y -f gif /storage/emulated/0/output1.gif
2.根据视频剪切一段视频(如果执行很长时间,可能这个视频有问题,换个试试)
//剪切视频 -r 提取图像频率, -ss 开始时间, -t 持续时间
ffmpeg -i /storage/emulated/0/video.mp4 -ss 00:10:00 -t 00:00:20 -acodec copy -vcodec copy /storage/emulated/0/skscut.mp4
3.根据视频生成图片
ffmpeg -i /storage/emulated/0/video.mp4 -ss 00:00:20 -t 1 -r 1 -q:v 2 -f image2 /storage/emulated/0/pic-103d.jpeg
4对视频画面顺时针旋转90°
ffmpeg -i /storage/emulated/0/video.mp4 -acodec copy -vcodec libx264 -b 800k -vf transpose=1 /storage/emulated/0/video90.mp4
5.缩放视频
//“-1” 表示由原始视频的宽高比自动计算而,可以自己填
ffmpeg -i /storage/emulated/0/video.mp4 -vf scale=-1:480 -acodec aac -vcodec h264 /storage/emulated/0/videoscale.mp4
6.修改视频指定宽高
ffmpeg -y -i /storage/emulated/0/myv.mp4 -s 2280*1080 /storage/emulated/0/myv22.mp4
推荐一个喜欢的库
https://github.com/bravobit/FFmpeg-Android,该库是由 WritingMinds/ffmpeg-android-java (作者已经2年没更新了)发展过来的,个人觉得不错。