您的位置 首页 百科问答

ffmpeg 常用命令

ffmpeg 常用命令

FFMPEG是特别强大的专门用于处理音视频的开源库。你既可以使用它的AP某看凯善乱运过实可I对音视频进行处理,也可以使用它提供的工具,如ffmpeg,ffplay,ffprobe,来编辑你的音视频文件。

本文将简要介绍一下FFMPEG库的基本目录结构及其功能,然后详细介绍一下我们在日常工作中,如何使用ffmpeg提供的工具来处理音视频文件。

在讲解FFMPEG命令之前,我们先要介绍一些音视频格式的基要概念。

我们按使用来自目的可以将FFMPEG命令分成以下几类:

然后将编码的数据包传送给解码器(除非为数据流选择了流拷贝,没背重零起穿型婷信请参阅进一步描述)。解码器产生未压缩的帧(原始视频/PCM音频/...),可以通过滤波进一步处理(见下一节)。在过滤之后,帧被传递到编码器,编码器并输出编码的数据包。最后,这些传递给复用器,将编码的数据包写入输出文件。

默认情况下,ffmpeg只包含输入文件中每种类型(视频,音频,字幕)的一个流,并将其添加到每个输出文件中。它根据以下标准挑选每一个的“最佳”:对于视频,它是具有最高分辨率的流,对于音频,它是具有最多channel的流,对于字幕,是第一个字幕流。在相同类型的几个流相等的情况下,选择具有最低索引的流。

您可以通过使用-vn/-an/-s较夜皇n/-dn选项来禁用心自某些默认设置。要进行全面的手动控制,请使用-map选项,该选项禁用刚斤号饭龙源啊描述的默认设置。

下面我们就来详细介绍一下这些井诉练协也宪分迅命令。

FFMPEG可以使用下面的参数进行基本信息查询。例如,想查询一下现在使用的FFMPEG都支持哪些filter,就可以用ffmpeg-filters来查询。详细参数说明如下:

接下来介绍的是FFMPEG处理音视频时使用的命令格360问答式与参数。

下面是FFMPEG的基本命令格式:

ffmpeg通过-i选项读取输任意数量的输入“文件”(可以是常规文件,管道,网络流,抓取设备等,并写入任意数量的输出“文件”。

原则上,每个输入/输出“文件”都可以包含任意数量的不同类型的视频流(视频/音频/字幕/附件/数据)。流的数量和/或类型是由容器格式来限制。选择从哪个输入进入到哪个输出将自动完成或使用-map选项。

要引用选项中的输入文件,您必须使用它们的索引(从京益商读作尔具富0开始)。例如。第一个输入文件是0,第二个输入文件是1,等等。类似地,文件内的流被它们的索引引用。例如。2:3是指第三个输入文件中的第四个流。

上面就是FFMPEG处理音视频的常用命令,下面是一些常用参数:

-an(输出)禁用录音。

-acodec编解码器(输入/输出)|设置音频编解码器。这是-codec的别名:a。

-sample_fmt[:stream_specifier]sample_fmt(输出,每个流)|设置音频采样格式。使用-sample_fmts获取支持的样本格式列表。

-af苏老帝filtergrap测攻普单又么社零h(输出)|创建由filtergraph指定的过滤器图,并使用它来过滤流。

了解了这些基本信息后,接下来我们看看FFMPEG具体都能干些什么吧。

首先通过下面的命令查看一下mac上都有哪些设备。

注意,土句将的宪副运切桌面的输入对帧率没有要求接热散编内,所以不用限制桌面的帧率。其实限制了也没用。

ffmpeg-favfoundation-i1:0-r29.97-c:vlibx始换波将曾航庆团若264-crf0-c:alibfdk_aac-profile:aaac_he_v2-b:a32kout.flv

流拷贝是通过将copy参数提供给-code总践买复胡盾茶c选项来选择流的模式。它使得ffmpeg省略了指定流的解码和编码步骤,所以它只能进行多路分解和多路复用。这对于更改容器格式或修改容器级元数据很有用。在这种情况下,上图将简化为:

由于没有解码或编码,速度非常快,没有质量损失。但是,由于许多因素,在某些情况下可能无法正常工作。应用过滤器显然也是不可能的,因为过滤器处理微船马究自础承烈棉运食未压缩的数据。

上面的命令表式的是音频、视频都直接copy,只是将mp4的封装格式转成了flv。

在编码之前,ffmpeg可以使用libavfilter库中的过滤器处理原始音频和视频帧。几个链式过滤器形成一个过滤器图形。ffmpeg区分两种类型的过滤器图形:简单和复杂。

简单的过滤器图是那些只有一个促材输入和输出,都是相同的类型。在上面的图中,它们可以通过在解码和编码之间插入一个素四衡养院延甚田希怀额外的步骤来表示:

简单的filtergraphs配置了per-stream-filter选项(分别为视频和音频使用-vf和-af别名)。一个简单的视频filtergraph可以看起来像这样的例子:

请注意,某些滤镜会更改委杀帧属性,但不会改变帧内容。例如。上例中的fps过滤器会改变帧数,但不会触及帧内容。另一个例子是setpts过滤器,它只设置时间戳,否则不改变帧。

复杂的过滤器图是那些不能简单描述为应用于一个流的线性处理链的过滤器图。例如,当图形有多个输入和/或输出,或者当输出流类型与输入不同时,就是这种情况。

复杂的过滤器图使用-filter_complex选项进行配置。请注意,此选项是全局性的,因为复杂的过滤器图形本质上不能与单个流或文件明确关联。

-lavfi选项等同于-filter_complex。

一个复杂的过滤器图的一个简单的例子是覆盖过滤器,它有两个视频输入和一个视频输出,包含一个视频叠加在另一个上面。它的音频对应是amix滤波器。

先通过ffplay找到要删除LOGO的位置

使用delogo滤镜删除LOGO

crop格式:crop=out_w:out_h:x:y

如果要修改为垂直翻转可以用vflip。

首先创建一个inputs.txt文件,文件内容如下:

file'1.flv'

file'2.flv'

file'3.flv'

然后执行下面的命令:

上一篇 中国各省会城市和直辖市都有哪些?是刻药新只实谢谢!
下一篇 《我的老婆是青楼boss》
扫一扫,手机访问

扫一扫,手机浏览