FFmpeg 命令操作音视频

目的:FFmpeg 命令操作视频

环境:

系统:Win10
环境:ffmpeg-20180723-win64-shared

命令及参数说明

1. ffmpeg将mp4视频转换成gif格式图片

命令1:
ffmpeg -ss 2 -t 5 -i test.mp4 -s 640x480 -r 15 output.gif
说明:
-ss 2 -t 5 表示从第2秒到第5秒。
-s 640x480 设定分辨率, 乘号以小写字母x代替。
-r 15 设置帧率为15, 通常gif帧率>=15就比较流畅了。

命令2:
ffmpeg -i test.mp4 ./output.gif
说明:
转换成高质量gif。

2. ffmpeg将gif图片转换mp4视频图片

命令:
ffmpeg -f gif -i test.gif test.mp4
说明:
gif图片转为mp4视频, 同样也可以将gif转为其他视频格式, 如下命令:
ffmpeg -f gif -i test.gif test.mpeg
ffmpeg -f gif -i test.gif test.mkv

3. ffmpeg获取视频帧的图片

命令1:
ffmpeg -i test.mp4 -y -f image2 -ss 60 -vframes 1 test.jpg
说明:
截取视频开始第60s时的画面。
-ss 指定截取的秒数, 示例中截取第60秒时的画面。

命令2:
ffmpeg -i aa.mp4 -r 1 -ss 00:00:26 -t 00:00:07 %03d.png
说明
保存指定一段视频中每一秒的图片。
-i 输入视频文件, 格式可以多种, 如mkv、avi、mov。
-r 1 表示每秒一张, 类推-r 20表示每秒截取20张。
-ss xx:xx:xx 视频截取开始时间。
-t xx:xx:xx 视频截取截止时间。
%-3d.png 表示截取图片名从0依次递增, png为截取图片格式, 类似可使用%03d.jpg

命令3:
ffmpeg -i aa.mp4 -r 1 %03d.png
说明
保存全部视频中每一秒的图片。
-i 输入视频文件, 格式可以多种, 如mkv、avi、mov。
-r 1 表示每秒一张, 类推-r 20表示每秒截取20张。
%-3d.png 表示截取图片名从0依次递增, png为截取图片格式, 类似可使用%03d.jpg

4. ffmpeg视频剪切

命令1:
ffmpeg -ss 10 -t 15 -i test.mp4 -codec copy cut.mp4
说明:
裁剪10s到15s的视频段。
-ss xx:xx:xx 视频裁剪开始时间。
-t xx:xx:xx 视频裁剪截止时间。
-acodec copy 表示copy。
注意:将-ss和-t参数必须放在放在-i参数之前, 对输入文件执行seek操作, 会seek到-ss设置的时间点前面的关键帧上。
时间不精确,但是不会出现黑屏

命令2:
ffmpeg -ss 10 -t 15 -accurate_seek -i test.mp4 -codec copy cut.mp4
说明:
精确裁剪从10s到15s的视频段。
accurate_seek 剪切时间更加精确, accurate_seek必须放在-i参数之前。
-acodec copy 表示copy。

命令3:
ffmpeg -ss 10 -t 15 -accurate_seek -i test.mp4 -codec copy -avoid_negative_ts 1 cut.mp4
说明:
精准裁剪,时间不会精确裁剪, 会找到时间点附近的关键帧进行裁剪。
-avoid_negative_ts 1 找到时间点附近的关键帧进行裁剪, 如果编码格式采用的copy最好加上-avoid_negative_ts 1参数。
-acodec copy 表示copy。

5. ffmpeg截取mp3音频

命令1:
ffmpeg -i source.mp3 -ss 00:01:01 -t 00:02:50 -acodec copy output.mp3
说明:
截取mp3音频01:01到02:50的音频。
-ss xx:xx:xx 音频裁剪开始时间。
-t xx:xx:xx 音频裁剪截止时间。
-acodec copy 表示copy。

命令2:
ffmpeg -i source.mp3 -ss 00:01:01 -t 50 -acodec copy output.mp3
说明:
截取mp3音频从01:01开始50s的音频。
-ss xx:xx:xx 音频裁剪开始时间。
-t xx 音频裁剪长度, 单位是秒。
-acodec copy 表示copy。

6. ffmpeg视频逆时针旋转90度

命令:
ffmpeg -i test.mp4 -metadata:s:v rotate=“90” -codec copy cut.mp4
说明:
rotate参数直接填度数, 类似可以设置180、270等其他度数, 需要注意的是必须是90的倍数才会生效。

7. ffmpeg视频更改分辨率

命令1:
ffmpeg -i test.mp4 -strict -2 -s 640x480 cut.mp4
说明:
-strict -2 表示音频编码。
-s 640x480 表示给改到的分辨率, 注意中间是小写字母x表示乘号。
注意: 如果视频比例跟之前的不一样, 可能会导致视频变形。

命令2:
ffmpeg -i test.mp4 -strict -2 -vf scale=640:-1 cut.mp4
说明:
scale=x:y 表示按比例缩放宽高, 示例中宽为640, 高填充-1表示按比例自动缩放。
注意: scale后的宽或者高的值一定要是原视频成倍数关系的值, 如原视频为1280x720, 则1280/2=640
640/2=320 320/2=160 160/2=80 80/2=40 40平方根是20, 宽只要是20的倍数,即可执行成功。

命令3:
ffmpeg -i test.mp4 -strict -2 -vf scale=-1:480 cut.mp4
说明:
scale=x:y 表示按比例缩放宽高, 示例中高为480, 宽填充-1表示按比例自动缩放。
注意: scale后的宽或者高的值一定要是原视频成倍数关系的值, 如原视频为1280x720, 则720/2=360
360/2=180 180/2=90 90的平方根是30, 高只要是30的倍数, 即可执行成功。

8. ffmpeg视频画面裁剪

命令1:
ffmpeg -i test.mp4 -strict -2 -vf crop=iw/2:ih:0:0 cut.mp4
说明:
-strict -2 表示音频编码
crop=width:height:X:Y,width:height是裁剪出的尺寸宽高, X:Y是裁剪起始位置。
示例中iw/2是表示视频宽度为原来的1/2; ih表示高度不变;0:0代表从x 0, y 0处裁剪。
视频裁剪出原来宽度的前一般画面。

命令2:
ffmpeg -i test.mp4 -strict -2 -vf crop=iw/2:ih:iw/2:0 cut.mp4
说明:
参数讲解如上, 该命令是视频裁剪出原来宽度的后一半画面。

命令3:
ffmpeg -i test.mp4 -strict -2 -vf crop=iw:ih/3:0:0 cut.mp4
说明:
参数讲解如上, 该命令是视频裁剪出原来高度前三分之一的画面。

命令4:
ffmpeg -i test.mp4 -strict -2 -vf crop=iw:ih/3:0:ih*2/3 cut.mp4
说明:
参数讲解如上, 该命令是视频裁剪出原来高度后三分之一的画面。

命令5:
ffmpeg -i 40.mp4 -strict -2 -vf crop=iw/2:ih/2:iw/3:ih/3 cut.mp4
说明:
参数讲解如上, 该命令是视频裁剪出从原来高度1/3和宽度1/3点开始, 大小为原来宽高一半的视频。

命令6:
ffmpeg -i test.mp4 -strict -2 -vf crop=640:480:640:0 cut.mp4
说明:
参数讲解如上, 可直接使用像素尺寸来裁剪。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值