FFmpeg指令-视频截取

场景

 

  sdk 需要视频素材,我自己找的视频素材太大不能作为素材资源(150K以内)。

操作

 

  记得 FFmpeg 能处理,用 man 查了下,当时写文档的人还真是很讲究。比如下面的图

 

  文档太长,还是 –help

1
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

  指令执行格式为 ffmpeg + 参数 + 输入文件参数 + -i 输入文件 ... 输出文件参数 输出文件,中括号表示可选,大括号代表必选。当前要做的是要截取一段时间。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
-t duration         record or transcode "duration" seconds of audio/video

-t duration (input/output)
When used as an input option (before "-i"), limit the duration of data read
from the input file.

When used as an output option (before an output url), stop writing the output
after its duration reaches duration.

duration must be a time duration specification, see the Time duration section
in the ffmpeg-utils(1) manual.

-to and -t are mutually exclusive and -t has priority.

-t-i 之前,duration 该用什么格式填写呢?

man 中找例子

1
ffmpeg -filter_complex 'color=c=red' -t 5 out.mkv

生成了 5s 的纯红色的视频

1
-ss time_off set the start time offset

设置开始时间的偏移量

到这里如何截取视频应该比较清楚了。试一下

1
2
3
4
ffmpeg -t 5 -ss 0 -i sample_iPod.m4v shot_sample_iPod.m4v 

-rwxrwxrwx@ 1 Jason staff 2236480 Jun 4 2016 sample_iPod.m4v
-rw-r--r-- 1 Jason staff 76820 Apr 21 20:31 shot_sample_iPod.m4v

 

视频被顺利截成 5s

一点感悟

  ffmpeg 很强大,看着好像挺麻烦的事情,找到合适的工具,瞬间就轻松不少。一开始没太注意,只知道的是 [] 表示可选的意思,现在又知道了 {} 表示必选,总结,总是会有所收获的。

参考

  1. 括号中的可选、必选表示
OC & Swift 混编 实践篇:iOS 应用重签名 (下)
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×