FFmpeg常用命令

举报
山海之光 发表于 2019/12/23 15:58:08 2019/12/23
【摘要】 作为一个图像算法工程师,有时候也要处理视频。再经过算法处理之前,可能要对视频进行抽帧、格式转换、裁剪、合并等操作,虽然网络上有很多视频处理软件,但是要么是要收费、要么是不好用。其实作为程序员,可以用鼎鼎大名的开源工具FFmpeg来做视频的编辑处理。在我看来,FFmpeg是最强大的视频编辑处理开源工具,没有之一。其官网是http://ffmpeg.org/,在官网可以下载FFmpeg的源码,也...

作为一个图像算法工程师,有时候也要处理视频。再经过算法处理之前,可能要对视频进行抽帧、格式转换、裁剪、合并等操作,虽然网络上有很多视频处理软件,但是要么是要收费、要么是不好用。其实作为程序员,可以用鼎鼎大名的开源工具FFmpeg来做视频的编辑处理。

在我看来,FFmpeg是最强大的视频编辑处理开源工具,没有之一。其官网是http://ffmpeg.org/,在官网可以下载FFmpeg的源码,也可以下载编译好的、直接运行的可执行文件,大多数人只需要用它就行了,这里是windows 64位可执行文件下载地址。

下载将得到一个压缩包,目录结构如下:

1576120598946520.png

bin里面有三个可执行文件,分别是ffmpeg.exe、ffplay.exe和ffprobe.exe,doc目录是html文档,打开其中的ffmpeg.html就可以查看ffmpeg.exe的使用方法。ffmpeg的功能非常多,本文列举一些常用的命令。执行命令的方法是:以windows为例,进入到上图的bin目录中,按住Shift键,点击鼠标右键,选择“在此处打开命令窗口”,然后输入命令,回车,即可执行。

1. 格式转换

命令:ffmpeg -i testfile.mp4 -codec copy testfile.flv

命令解析:

-i,指定输入视频路径;

-codec copy,填上该参数可以省去解码和编码的过程,使视频格式转换更快,如果加上这个参数时有报错,可以把这个参数去掉;

testfile.flv,是输出视频路径;

2. 视频裁剪

命令:ffmpeg -i testfile.mp4 -ss 00:01:10 -t 10 testfile_v2.mp4

命令解析:

-i,指定输入视频路径;

-ss,表示拖动到某一个时间位置,格式为:时:分:秒;

-t,表示限制从输入文件读取数据的时长,单位为 s;

testfile_v2.mp4,输出视频路径;

3. 视频合并

命令:ffmpeg -f concat -i input.txt testmerge.mp4

命令解析:

-f,指定输入或输出的file format,concat是format的其中一种,表示合并

-i,指定数据的数据源,input.txt 指定了两个文件的路径,格式为 file absolutefilepath,如下所示:

file D:\testfile_1.mp4

file D:\testfile_2.mp4

testmerge.mp4,输出视频路径;

4. 视频分辨率降低

命令:ffmpeg -i 1.mp4 -s 960x540 1_2.mp4

命令解析:

-i,指定的输入视频

-s,期望输出的分辨率大小,最好查询一下原视频的分辨率,然后同比率调整期望的分辨率

常见问题解决

(1)视频格式转换时,报错Too many packets buffered for output stream

原因是有些视频数据有问题,导致视频处理过快,容器封装时队列溢出,解决办法是增加容器封装队列大小,比如在命令之后增加一个参数

-max_muxing_queue_size 1024

参考资料

https://zhuanlan.zhihu.com/p/455572544




【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。