英语法语西班牙语

Ad


OnWorks 网站图标

avconv - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管提供商中运行 avconv

这是 avconv 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


ffmpeg - ffmpeg 视频转换器

概要


ffmpeg [全局选项] {[输入文件选项] -一世 输入文件} ... {[输出文件选项]
输出文件} ...

商品描述


ffmpeg的 是一个非常快的视频和音频转换器,也可以从实时音频/视频中抓取
来源。 它还可以在任意采样率之间转换并动态调整视频大小
带有高质量的多相滤波器。

ffmpeg的 从任意数量的输入“文件”(可以是常规文件、管道、
网络流、抓取设备等),由“-i”选项指定,并写入
任意数量的输出“文件”,由纯输出文件名指定。
在命令行上发现的任何不能解释为选项的东西都被考虑
成为输出文件名。

原则上,每个输入或输出文件可以包含任意数量的不同流
类型(视频/音频/字幕/附件/数据)。 允许的流数量和/或类型
可能受容器格式的限制。 选择来自哪些输入的流
输出要么自动完成,要么使用“-map”选项(参见流
选章)。

要在选项中引用输入文件,您必须使用它们的索引(从 0 开始)。 例如第一个
输入文件为 0,第二个为 1,以此类推。类似地,文件中的流由
他们的指数。 例如,“2:3”指的是第三个输入文件中的第四个流。 另见
流说明符章节。

作为一般规则,选项应用于下一个指定的文件。 因此,顺序是
重要的是,您可以在命令行上多次使用相同的选项。 每个
然后将出现应用于下一个输入或输出文件。 此规则的例外情况
是全局选项(例如详细级别),应首先指定。

不要混合输入和输出文件——首先指定所有输入文件,然后指定所有输出文件。
也不要混合属于不同文件的选项。 所有选项仅适用于
下一个输入或输出文件并在文件之间重置。

· 将输出文件的视频比特率设置为 64 kbit/s:

ffmpeg -i 输入.avi -b:v 64k -bufsize 64k 输出.avi

· 将输出文件的帧速率强制为 24 fps:

ffmpeg -i 输入.avi -r 24 输出.avi

· 强制输入文件的帧速率(仅对原始格式有效)为 1 fps 和
输出文件的帧速率为 24 fps:

ffmpeg -r 1 -i 输入.m2v -r 24 输出.avi

原始输入文件可能需要格式选项。

产品详情 商品描述


转码过程在 ffmpeg的 对于每个输出可以通过以下方式描述
图表:

_______ ________________
| | | |
| 输入 | 分路器 | 编码数据| 解码器
| 档案 | ---------> | 数据包| -----+
|_______| |____________| |
v
_________
| |
| 解码 |
| 帧|
| _________ |
________ ____________ | |
| | | | |
| 输出| <-------- | 编码数据| <----+
| 档案 | 多路复用器 | 数据包| 编码器
|________| |____________|

ffmpeg的 调用 libavformat 库(包含 demuxers)来读取输入文件并获取
包含来自它们的编码数据的数据包。 当有多个输入文件时, ffmpeg的
试图通过跟踪任何活动输入流上的最低时间戳来保持它们同步。

然后将编码的数据包传递给解码器(除非为
流,请参阅进一步的描述)。 解码器产生未压缩的帧(原始
视频/PCM 音频/...),可以通过过滤进一步处理(见下一节)。 后
过滤,帧被传递给编码器,编码器对它们进行编码并输出编码
数据包。 最后这些被传递给复用器,它把编码的数据包写入
输出文件。

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

简易 过滤图

简单的过滤器图是那些只有一个输入和输出的,两者都相同
类型。 在上图中,它们可以通过简单地插入一个额外的步骤来表示
解码和编码之间:

__________________________
| | | |
| 解码 | | 编码数据|
| 帧 |\ _ | 数据包|
|_____| \ /||______________|
\ __________ /
简单_\|| | / 编码器
过滤图 | 过滤|/
| 帧|
|__________|

使用每个流配置简单的过滤器图 -过滤 选项(与 -vf-af
分别为视频和音频的别名)。 一个简单的视频过滤图可以寻找
像这样的例子:

_______ _____________ _______ ________
| | | | | | | |
| 输入 | ---> | 去隔行 | ---> | 规模| ---> | 输出|
|_______| |______________| |_______| |________|

请注意,某些过滤器会更改框架属性,但不会更改框架内容。 例如“fps”
上面例子中的过滤器改变了帧数,但不接触帧
内容。 另一个例子是“setpts”过滤器,它只设置时间戳,否则
通过帧不变。

复杂 过滤图

复杂的过滤器图不能简单地描述为线性处理
链应用于一个流。 例如,当图形具有超过
一个输入和/或输出,或者当输出流类型与输入不同时。 他们可以
用下图表示:

_________
| |
| 输入 0 |\ __________
|_____| \ | |
\_____ /| 输出 0 |
\ | | / |__________|
_________ \| 复杂| /
| | | |/
| 输入 1 |---->| 过滤器|\
|_____| | | \ __________
/| 图 | \ | |
/ | | \| 输出 1 |
_____ / |_________| |__________|
| | /
| 输入 2 |/
| _________ |

复杂的过滤器图配置为 -filter_complex 选项。 请注意,这
option 是全局的,因为复杂的 filtergraph 就其性质而言,不能明确
与单个流或文件相关联。

-拉菲 选项相当于 -filter_complex.

复杂过滤器图的一个简单示例是“叠加”过滤器,它有两个视频
输入和一个视频输出,包含一个视频叠加在另一个之上。 它的音频
对应的是“混合”过滤器。

资讯 复制
流复制是通过将“复制”参数提供给 -编解码器 选项。 它
& ffmpeg的 省略指定流的解码和编码步骤,因此它只执行
分路和复用。 这对于更改容器格式或修改很有用
容器级元数据。 在这种情况下,上图将简化为:

_______ ______________ ________
| | | | | |
| 输入 | 分路器 | 编码数据| 多路复用器 | 输出|
| 档案 | ---------> | 数据包| -------> | 档案 |
|_______| |____________| |________|

由于没有解码或编码,因此速度非常快且没有质量损失。
但是,由于许多因素,它在某些情况下可能不起作用。 应用过滤器是
显然也是不可能的,因为过滤器适用于未压缩的数据。

选择


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

您可以使用“-vn/-an/-sn”选项禁用其中一些默认值。 对于全手册
控制,使用“-map”选项,禁用刚才描述的默认值。

配置


所有的数字选项,如果没有另外指定,都接受一个代表一个字符串的字符串
数字作为输入,后面可以跟 SI 单位前缀之一,例如:'K',
'M' 或 'G'。

如果 'i' 附加到 SI 单位前缀,则完整的前缀将被解释为
二进制倍数的单位前缀,基于 1024 的幂而不是
1000. 将“B”附加到 SI 单位前缀会将值乘以 8。这允许使用,
例如:“KB”、“MiB”、“G”和“B”作为数字后缀。

不带参数的选项是布尔选项,并设置相应的值
为真。 可以通过在选项名称前加上“no”来将它们设置为 false。 例如
使用“-nofoo”会将名称为“foo”的布尔选项设置为false。

资讯
某些选项适用于每个流,例如比特率或编解码器。 流说明符用于
精确指定给定选项属于哪个流。

流说明符是一个字符串,通常附加到选项名称并与它分开
由一个冒号。 例如,“-codec:a:1 ac3”包含“a:1”流说明符,它匹配
第二个音频流。 因此,它会为第二个音频流选择 ac3 编解码器。

一个流说明符可以匹配多个流,因此该选项适用于所有
他们。 例如,“-b:a 128k”中的流说明符匹配所有音频流。

空流说明符匹配所有流。 例如,“-codec copy”或“-codec:
copy" 将复制所有流而无需重新编码。

流说明符的可能形式是:

流索引
将流与此索引匹配。 例如“-threads:1 4”将设置线程数
第二个流到 4。

流类型[:流索引]
流类型 是以下之一:“v”或“V”表示视频,“a”表示音频,“s”表示
副标题,“d”代表数据,“t”代表附件。 'v' 匹配所有视频流,'V'
只匹配没有附加图片、视频缩略图或封面的视频流
艺术。 如果 流索引 给出,然后它匹配流号 流索引 这个的
类型。 否则,它匹配该类型的所有流。

p:程序编号[:流索引]
If 流索引 给出,然后它匹配带有数字的流 流索引 ,在
带有 id 的程序 程序编号. 否则,它匹配程序中的所有流。

#流标识 or i:流标识
通过流 id(例如 MPEG-TS 容器中的 PID)匹配流。

m:[:折扣值]
匹配带有元数据标签的流 具有指定值。 如果 折扣值 是不是
给定,匹配包含具有任何值的给定标签的流。

u 匹配具有可用配置的流,必须定义编解码器和必要的
必须存在诸如视频尺寸或音频采样率之类的信息。

请注意 ffmpeg的, 元数据匹配仅适用于输入文件。

通用 选项
这些选项在 ff* 工具之间共享。

-L 出示许可证。

-H, -?, -帮助, - 帮帮我 [ARG]
显示帮助。 可以指定一个可选参数来打印有关特定项目的帮助。
如果未指定参数,则仅显示基本(非高级)工具选项。

可能的值 ARG 是:


除基本工具选项外,还打印高级工具选项。


打印完整的选项列表,包括编码器的共享和私有选项,
解码器、多路分配器、多路复用器、过滤器等。

解码器=解码器名称
打印有关名为的解码器的详细信息 解码器名称。 使用 -解码器
选项以获取所有解码器的列表。

编码器=编码器名称
打印有关名为的编码器的详细信息 编码器名称。 使用 -编码器
获取所有编码器列表的选项。

分路器=分路器名称
打印有关名为 demuxer 的详细信息 分路器名称。 使用 格式
获取所有分路器和多路复用器列表的选项。

多路复用器=多路复用器名称
打印有关名为 muxer 的详细信息 多路复用器名称。 使用 格式
获取所有复用器和解复用器列表的选项。

过滤器=过滤器名称
打印有关过滤器名称的详细信息 过滤器名称。 使用 -过滤器
选项以获取所有过滤器的列表。

-版
显示版本。

格式
显示可用格式(包括设备)。

-设备
显示可用设备。

-编解码器
显示 libavcodec 已知的所有编解码器。

请注意,术语“编解码器”在本文档中用作快捷方式
什么更正确地称为媒体比特流格式。

-解码器
显示可用的解码器。

-编码器
显示所有可用的编码器。

-bsfs
显示可用的比特流过滤器。

-协议
显示可用的协议。

-过滤器
显示可用的 libavfilter 过滤器。

-pix_fmts
显示可用的像素格式。

-sample_fmts
显示可用的示例格式。

-布局
显示频道名称和标准频道布局。

颜色
显示识别的颜色名称。

-sources 设备[,选择1=val1[,选择2=val2]...]
显示输入设备的自动检测源。 某些设备可能提供系统-
无法自动检测的依赖源名称。 返回的列表不能是
假设总是完整的。

ffmpeg -sources 脉冲,服务器=192.168.0.4

-水槽 设备[,选择1=val1[,选择2=val2]...]
显示输出设备的自动检测接收器。 某些设备可能提供系统-
无法自动检测的相关接收器名称。 不能假设返回的列表
永远完整。

ffmpeg -接收脉冲,服务器=192.168.0.4

-日志级别 [重复+]日志级别 | -v [重复+]日志级别
设置库使用的日志记录级别。 加“repeat+”表示重复
日志输出不应压缩到第一行和“最后一条消息重复 n
times” 行将被省略。“repeat”也可以单独使用。如果使用“repeat”
单独使用,并且没有预先设置日志级别,将使用默认日志级别。 如果多个
给出了日志级别参数,使用 'repeat' 不会改变日志级别。 日志级别
是包含以下值之一的字符串或数字:

安静, -8
什么都不显示; 安静。

恐慌, 0
只显示可能导致进程崩溃的致命错误,例如 和 assert
失败。 这目前不用于任何事情。

致命的, 8
只显示致命错误。 这些是过程绝对不能之后的错误
之后继续。

错误, 16
显示所有错误,包括可以从中恢复的错误。

警告, 24
显示所有警告和错误。 任何与可能不正确或
将显示意外事件。

信息, 32
在处理过程中显示信息性消息。 这是除了警告和
错误。 这是默认值。

冗长, 40
与“信息”相同,但更详细。

调试, 48
显示所有内容,包括调试信息。

痕迹, 56

默认情况下,程序会记录到 stderr,如果终端支持着色,
颜色用于标记错误和警告。 可以禁用日志着色设置
环境变量 AV_LOG_FORCE_NOCOLOR or 无颜色, 或者可以强制设置
环境变量 AV_LOG_FORCE_COLOR. 环境变量的使用 无颜色
已弃用,并将在以下 FFmpeg 版本中删除。

-报告
将完整的命令行和控制台输出转储到名为
"程序-YYYYMMDD-HHMMSS.log" 在当前目录中。 此文件可用于
错误报告。 它还意味着“-loglevel 详细”。

设置环境变量 报告 任何值都具有相同的效果。 如果
value 是一个以 ':' 分隔的 key=value 序列,这些选项会影响报告;
如果选项值包含特殊字符或选项,则必须对其进行转义
分隔符“:”(请参阅​​ ffmpeg-utils 手册中的“引用和转义”部分)。

识别以下选项:

文件
设置用于报告的文件名; %p 扩展为
程序,%t 被扩展为时间戳,“%%”被扩展为普通的“%”

水平
使用数值设置日志详细级别(请参阅“-loglevel”)。

例如,要将报告输出到名为 文件日志 使用 32 的日志级别
(日志级别“信息”的别名):

FFREPORT=file=ffreport.log:level=32 ffmpeg -i 输入输出

解析环境变量的错误不是致命的,不会出现在
报告。

-隐藏横幅
禁止打印横幅。

所有 FFmpeg 工具通常都会显示版权声明、构建选项和库
版本。 此选项可用于禁止打印此信息。

-CPU标志 标志 (全球化)
允许设置和清除 CPU 标志。 此选项用于测试。 不使用
除非你知道自己在做什么。

ffmpeg -cpuflags -sse+mmx ...
ffmpeg -cpuflags mmx ...
ffmpeg -cpuflags 0 ...

此选项的可能标志是:

x86
MMX
毫米xext
上证
sse2
sse2慢
sse3
sse3慢
SSSE3
原子
sse4.1
sse4.2
AVX
AVX2
op
FMA3
FMA4
3dnow
3d无文本
BMI1
BMI2
移动
ARM
ARMV5TE
ARMv6
ARMv6t2
虚拟机
vfpv3

结束
AAArch64
ARMv8
虚拟机

PowerPC的
阿尔蒂克
具体 加工厂
奔腾2
奔腾3
奔腾4
k6
k62
速龙
Athlonxp
k8
-opencl_bench
此选项用于对所有可用的 OpenCL 设备进行基准测试并打印结果。
此选项仅在使用“--enable-opencl”编译 FFmpeg 时可用。

当 FFmpeg 配置了“--enable-opencl”时,全局 OpenCL 的选项
上下文是通过设置 -opencl_选项. 请参阅 ffmpeg- 中的“OpenCL 选项”部分
有关受支持选项的完整列表,请参阅 utils 手册。 除其他外,这些选项
包括选择特定平台和设备来运行 OpenCL 代码的能力
在。 默认情况下,FFmpeg 将在第一个平台的第一个设备上运行。 虽然
全局 OpenCL 上下文的选项为用户提供了选择
他们选择的 OpenCL 设备,大多数用户可能希望选择最快的
用于他们系统的 OpenCL 设备。

此选项通过识别来帮助选择最有效的配置
适合用户系统的设备。 内置基准测试运行在所有
OpenCL 设备和性能是针对每个设备进行测量的。 中的设备
结果列表根据列出的最快设备的性能进行排序
第一的。 用户可以随后调用 ffmpeg的 使用最常用的设备
适当通过 -opencl_选项 以获得 OpenCL 的最佳性能
加速代码。

使用最快的 OpenCL 设备的典型用法包括以下步骤。

运行命令:

ffmpeg-opencl_bench

记下平台 ID (PIDX) 和设备 ID (迪克斯) 的第一个即最快的设备
在列表中。 使用以下命令选择平台和设备:

ffmpeg -opencl_options platform_idx= :device_idx= ...

-opencl_选项 选项 (全球化)
设置 OpenCL 环境选项。 此选项仅在 FFmpeg 已启用时可用
用“--enable-opencl”编译。

选项 必须是一个列表 =折扣值 以“:”分隔的选项对。 请参阅“OpenCL
ffmpeg-utils 手册中的“选项”部分以获取支持的选项列表。

AV选项
这些选项由 libavformat、libavdevice 和 libavcodec 直接提供
图书馆。 要查看可用 AVOptions 的列表,请使用 -救命 选项。 他们是
分为两类:

通用
可以为任何容器、编解码器或设备设置这些选项。 通用选项是
列在容器/设备的 AVFormatContext 选项和 AVCodecContext 下
编解码器的选项。

私立
这些选项特定于给定的容器、设备或编解码器。 私人选项
列在其相应的容器/设备/编解码器下。

例如,要将 ID3v2.3 标头而不是默认 ID3v2.4 写入 MP3 文件,请使用
id3v2_版本 MP3 多路复用器的私有选项:

ffmpeg -i 输入.flac -id3v2_version 3 输出.mp3

所有编解码器 AVOptions 都是每个流,因此流说明符应该附加到
他们。

注意: -无选项 语法不能用于布尔 AVOptions,请使用 -选项 0/-选项 1.

注意:通过在 v/a/s 前加上 v/a/s 来指定每个流 AVOptions 的旧方法
选项名称现已过时,很快将被删除。

主要 选项
-f fmt (输入/输出)
强制输入或输出文件格式。 格式通常是自动检测输入
文件并从输出文件的文件扩展名猜测,所以这个选项不是
大多数情况下需要。

-i 文件名 (输入)
输入文件名

-y (全球化)
无需询问即可覆盖输出文件。

-n (全球化)
不要覆盖输出文件,如果指定的输出文件已经存在,则立即退出
存在。

-C[:流说明符] 编解码器 (输入/输出,每个流)
-编解码器[:流说明符] 编解码器 (输入/输出,每个流)
选择编码器(在输出文件之前使用时)或解码器(在输出文件之前使用时)
输入文件)用于一个或多个流。 编解码器 是解码器/编码器的名称或
特殊值“复制”(仅输出)以指示流不会被重新
编码。

举个例子

ffmpeg -i 输入 -map 0 -c:v libx264 -c:a 复制输出

使用 libx264 编码所有视频流并复制所有音频流。

对于每个流,应用最后一个匹配的“c”选项,所以

ffmpeg -i 输入 -map 0 -c 复制 -c:v:1 libx264 -c:a:137 libvorbis 输出

将复制除第二个视频之外的所有流,该视频将使用 libx264 编码,
和第 138 个音频,它将用 libvorbis 编码。

-t 为期 (输入/输出)
当用作输入选项时(在“-i”之前),限制 为期 从读取的数据
输入文件。

当用作输出选项时(在输出文件名之前),停止写入输出
在其持续时间达到 为期.

为期 必须是持续时间规范,请参阅 时间 为期 部分 in
ffmpeg 实用程序(1) 手册.

-to 和 -t 是互斥的,-t 有优先权。

-至 位置 (产量)
停止写入输出 位置. 位置 必须是持续时间规范,
看到 时间 为期 部分 in ffmpeg 实用程序(1) 手册.

-to 和 -t 是互斥的,-t 有优先权。

-fs 限制大小 (产量)
设置文件大小限制,以字节为单位。

-SS 位置 (输入/输出)
当用作输入选项时(在“-i”之前),在这个输入文件中寻找 位置。 笔记
在大多数格式中不可能精确查找,所以 ffmpeg的 将寻求
最近的搜索点之前 位置. 当转码和 -accurate_seek 已启用
(默认),在搜索点和 位置 将被解码
并丢弃。 进行流复制时或 -noaccurate_seek 被使用,它将是
保留。

当用作输出选项时(在输出文件名之前),解码但丢弃输入
直到时间戳到达 位置.

位置 必须是持续时间规范,请参阅 时间 为期 部分 in
ffmpeg 实用程序(1) 手册.

-sseof 位置 (输入/输出)
类似于“-ss”选项,但相对于“文件结尾”。 即负值是
在文件的前面,0 位于 EOF。

-它的偏移量 抵消 (输入)
设置输入时间偏移。

抵消 必须是持续时间规范,请参阅 时间 为期 部分 in
ffmpeg 实用程序(1) 手册.

偏移量被添加到输入文件的时间戳中。 指定正偏移
意味着相应的流被延迟了指定的持续时间
抵消.

-时间戳 日期 (产量)
在容器中设置录制时间戳。

日期 必须是日期规范,请参阅 日期 部分 in ffmpeg 实用程序(1) 手册.

-元数据[:元数据说明符] =折扣值 (输出,每个元数据)
设置元数据键/值对。

可选 元数据说明符 可用于设置流或章节的元数据。
有关详细信息,请参阅“-map_metadata”文档。

此选项会覆盖使用“-map_metadata”设置的元数据。 也可以删除
元数据使用空值。

例如,在输出文件中设置标题:

ffmpeg -i in.avi -metadata title="我的标题" out.flv

设置第一个音频流的语言:

ffmpeg -i 输入 -metadata:s:a:0 语言=eng 输出

-目标 类型 (产量)
指定目标文件类型(“vcd”、“svcd”、“dvd”、“dv”、“dv50”)。 类型 可以加前缀
与“pal-”、“ntsc-”或“film-”一起使用相应的标准。 所有格式
然后自动设置选项(比特率、编解码器、缓冲区大小)。 您只需键入:

ffmpeg -i myfile.avi -目标 vcd /tmp/vcd.mpg

不过,您可以指定其他选项,只要您知道它们没有
与标准冲突,例如:

ffmpeg -i myfile.avi -目标 vcd -bf 2 /tmp/vcd.mpg

-dframes (产量)
设置要输出的数据帧数。 这是“-frames:d”的别名。

-帧[:流说明符] 帧数 (输出,每流)
之后停止写入流 帧数 框架。

-q[:流说明符] q (输出,每流)
-qscale[:流说明符] q (输出,每流)
使用固定质量标度 (VBR)。 的意思 q/量表 是编解码器相关的。 如果 量表
用于不带 流说明符 那么它只适用于视频流,这是
保持与先前行为的兼容性并指定相同的编解码器
音频和视频的 2 个不同编解码器的特定值通常不是
未使用 stream_specifier 时使用。

-筛选[:流说明符] 过滤图 (输出,每流)
创建由指定的过滤器图 过滤图 并使用它来过滤流。

过滤图 是要应用于流的过滤器图的描述,并且必须具有
同一类型流的单个输入和单个输出。 在过滤图中,
输入与标签“in”相关联,输出与标签“out”相关联。 见
有关 filtergraph 语法的更多信息,请参阅 ffmpeg-filters 手册。

查看 -filter_complex 选项 如果要创建具有多个输入的过滤器图
和/或输出。

-filter_script [:流说明符] 文件名 (输出,每流)
此选项类似于 -过滤,唯一的区别是它的参数是
要从中读取过滤器图描述的文件的名称。

-预[:流说明符] 预设名称 (输出,每流)
指定匹配流的预设。

-统计 (全球化)
打印编码进度/统计信息。 默认情况下它是打开的,要明确禁用它,您
需要指定“-nostats”。

-进步 网址 (全球化)
将程序友好的进度信息发送到 网址.

大约每秒写入一次进度信息,并在结束时写入
编码过程。 它是由“=折扣值” 行。 仅由字母数字组成
人物。 进度信息序列的最后一个键始终是“进度”。

-标准输入
在标准输入上启用交互。 默认情况下打开,除非使用标准输入作为
一个输入。 要明确禁用交互,您需要指定“-nostdin”。

禁用标准输入上的交互很有用,例如,如果 ffmpeg 在
后台进程组。 使用“ffmpeg ...
/dev/null”,但它需要一个 shell。

-debug_ts (全球化)
打印时间戳信息。 默认情况下它是关闭的。 此选项主要用于
测试和调试目的,输出格式可能会从一个版本更改为
另一个,所以它不应该被可移植脚本使用。

另请参阅选项“-fdebug ts”。

-附 文件名 (产量)
将附件添加到输出文件。 这被一些格式支持,比如 Matroska
例如用于渲染字幕的字体。 附件作为特定的
流类型,因此此选项将向文件添加新流。 那么就可以
以通常的方式在此流上使用每个流选项。 创建的附件流
使用此选项将在所有其他流之后创建(即那些使用
“-map”或自动映射)。

请注意,对于 Matroska,您还必须设置 mimetype 元数据标签:

ffmpeg -i 输入 -attach DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv

(假设附件流将是输出文件中的第三个)。

-转储附件[:流说明符] 文件名 (输入,每个流)
将匹配的附件流提取到名为 文件名。 如果 文件名 is
为空,则将使用“文件名”元数据标签的值。

例如,将第一个附件提取到名为“out.ttf”的文件中:

ffmpeg -dump_attachment:t:0 out.ttf -i 输入

提取由“文件名”标签确定的文件的所有附件:

ffmpeg -dump_attachment:t "" -i 输入

技术说明——附件是作为编解码器额外数据实现的,所以这个选项可以
实际上用于从任何流中提取额外数据,而不仅仅是附件。

-不自动旋转
禁用根据文件元数据自动旋转视频。

视频 附加选项
-v帧 (产量)
设置要输出的视频帧数。 这是“-frames:v”的别名。

-r[:流说明符] FPS (输入/输出,每个流)
设置帧率(Hz 值、分数或缩写)。

作为输入选项,忽略存储在文件中的任何时间戳,而是生成
假设帧速率恒定的时间戳 FPS. 这与 -帧率
用于某些输入格式的选项,如 image2 或 v4l2(它曾经在
FFmpeg 的旧版本)。 如果有疑问,请使用 -帧率 而不是输入选项 -r.

作为输出选项,复制或删除输入帧以实现恒定输出帧
FPS.

-s[:流说明符] 尺寸 (输入/输出,每个流)
设置帧大小。

作为输入选项,这是一个快捷方式 视频大小 私人选项,认可
由某些帧大小未存储在文件中或
可配置——例如原始视频或视频采集器。

作为输出选项,这会将“缩放”视频过滤器插入到 结束
相应的过滤器图。 请直接使用“比例”过滤器将其插入
开始或其他地方。

格式是 宽x高 (默认 - 与源相同)。

-方面[:流说明符] 方面 (输出,每流)
设置由指定的视频显示纵横比 方面.

方面 可以是浮点数字符串,也可以是以下形式的字符串 NUM:,其中
NUM 是纵横比的分子和分母。 例如“4:3”,
“16:9”、“1.3333”和“1.7777”是有效的参数值。

如果与 -v编解码器 复制,它会影响存储在的纵横比
容器级别,但不是存储在编码帧中的纵横比(如果存在)。

-vn (产量)
禁用视频录制。

-v编解码器 编解码器 (产量)
设置视频编解码器。 这是“-codec:v”的别名。

-经过[:流说明符] n (输出,每流)
选择通行证编号(1 或 2)。 它用于进行两遍视频编码。 这
视频的统计信息在第一次通过时被记录到日志文件中(另请参见
选项 -passlogfile),并且在第二遍中,该日志文件用于生成
以确切要求的比特率播放视频。 在第 1 关中,您可以仅停用音频和
将输出设置为 null,Windows 和 Unix 的示例:

ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y NUL
ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y /dev/null

-密码文件[:流说明符] 字首 (输出,每流)
将两遍日志文件名前缀设置为 字首, 默认文件名前缀是
``ffmpeg2pass''。 完整的文件名将是 前缀-N.log,其中 N 是一个数字
特定于输出流

-vf 过滤图 (产量)
创建由指定的过滤器图 过滤图 并使用它来过滤流。

这是“-filter:v”的别名,参见 -过滤 选项.

高级 视频 选项
-pix_fmt[:流说明符] 格式 (输入/输出,每个流)
设置像素格式。 使用“-pix_fmts”显示所有支持的像素格式。 如果
选择的像素格式无法选择,ffmpeg 会打印警告并选择
编码器支持的最佳像素格式。 如果 像素_fmt 以“+”为前缀,ffmpeg
如果无法选择请求的像素格式,则会出现错误退出,并且
filtergraphs 内的自动转换被禁用。 如果 像素_fmt 是一个“+”,
ffmpeg 选择与输入(或图形输出)相同的像素格式并自动
转换被禁用。

-sws_flags 标志 (输入/输出)
设置 SwScaler 标志。

-vdt n
丢弃阈值。

-rc_覆盖[:流说明符] 覆盖 (输出,每流)
特定间隔的速率控制覆盖,格式为“int,int,int”列表
用斜线分隔。 两个第一个值是开始和结束帧编号,最后一个
一个是量化器,如果是正的,或者是质量因子,如果是负的。

-伊尔梅
编码器中的强制隔行支持(仅限 MPEG-2 和 MPEG-4)。 使用此选项,如果
您的输入文件是隔行扫描的,并且您希望将隔行扫描格式保持在最低限度
损失。 另一种方法是将输入流与 -去隔行,但
去隔行引入了损失。

-PSNR
计算压缩帧的 PSNR。

-vstats
将视频编码统计数据转储到 vstats_HHMMSS.log.

-vstats_文件 文件
将视频编码统计数据转储到 文件.

-最佳[:流说明符] n (输出,每流)
top=1/bottom=0/auto=-1 字段优先

-直流 精确
Intra_dc_precision。

-vtag Fourcc/标签 (产量)
强制视频标签/fourcc。 这是“-tag:v”的别名。

-qphist (全球化)
显示 QP 直方图

-vbsf 比特流过滤器
已弃用,请参阅 -bsf

-force_key_frames[:流说明符] [,...] (输出,每流)
-force_key_frames[:流说明符] 表达式:表达式 (输出,每流)
在指定的时间戳处强制关键帧,更准确地说是在之后的第一帧
每个指定时间。

如果参数以“expr:”为前缀,则字符串 表达式 被解释为
表达式并为每一帧求值。 关键帧被强制,以防万一
评估是非零的。

如果其中一个时间是“章节”[三角洲]",它扩展到
文件中所有章节的开头,移动 三角洲,表示为时间
秒。 此选项可用于确保搜索点出现在
章标记或输出文件中的任何其他指定位置。

例如,要在 5 分钟插入一个关键帧,再加上 0.1 秒之前的关键帧
每章开头:

-force_key_frames 0:05:00,章节-0.1

中的表达式 表达式 可以包含以下常量:

n 当前处理的帧数,从0开始

n_强制
强制帧数

上一个_forced_n
前一个强制帧的编号,未强制关键帧时为“NAN”


上一个_forced_t
前一个强制帧的时间,当没有强制关键帧时为“NAN”

t 当前处理帧的时间

例如,每 5 秒强制一个关键帧,您可以指定:

-force_key_frames expr:gte(t,n_forced*5)

在最后一个强制帧的时间后 5 秒强制一个关键帧,从
第二个13:

-force_key_frames expr:if(isnan(prev_forced_t),gte(t,13),gte(t,prev_forced_t+5))

请注意,强制使用太多关键帧对于前瞻算法非常有害
某些编码器:使用固定 GOP 选项或类似选项会更有效。

-copyinkf[:流说明符] (输出,每流)
在进行流复制时,还要复制开头找到的非关键帧。

-hwacel[:流说明符] 华赛尔 (输入,每个流)
使用硬件加速来解码匹配的流。 允许的值
华赛尔 是:

没有
不要使用任何硬件加速(默认)。

汽车
自动选择硬件加速方式。

VDA 使用 Apple VDA 硬件加速。

虚拟机
使用 VDPAU(Unix 视频解码和演示 API)硬件加速。

dxva2
使用 DXVA2(DirectX 视频加速)硬件加速。

如果所选的 hwaccel 不可用或不受支持,则此选项无效
选择的解码器。

请注意,大多数加速方法都是为了播放,不会更快
而不是现代 CPU 上的软件解码。 此外, ffmpeg的 通常需要复制
解码的帧从 GPU 内存进入系统内存,导致进一步
性能损失。 因此,此选项主要用于测试。

-hwaccel_设备[:流说明符] hwacel_device (输入,每个流)
选择用于硬件加速的设备。

此选项仅在以下情况下才有意义 -hwacel 选项也被指定。 它的确切
含义取决于所选的特定硬件加速方法。

虚拟机
对于 VDPAU,此选项指定要使用的 X11 显示/屏幕。 如果这个选项是
未指定,值 显示屏玻璃制造 使用环境变量

dxva2
对于 DXVA2,此选项应包含要使用的显示适配器的编号。
如果未指定此选项,则使用默认适配器。

-hwaccels
列出此 ffmpeg 版本中支持的所有硬件加速方法。

Audio 附加选项
-框架 (产量)
设置要输出的音频帧数。 这是“-frames:a”的别名。

-ar[:流说明符] 频率 (输入/输出,每个流)
设置音频采样频率。 对于输出流,它默认设置为
相应输入流的频率。 对于输入流,此选项只会使
对音频抓取设备和原始多路分配器的感知并映射到相应的
分路器选项。

-aq q (产量)
设置音频质量(特定于编解码器,VBR)。 这是 -q:a 的别名。

-ac[:流说明符] 通道 (输入/输出,每个流)
设置音频通道数。 对于输出流,它默认设置为
输入音频通道数。 对于输入流,此选项仅对
音频抓取设备和原始解复用器并映射到相应的解复用器
选项​​。

-一个 (产量)
禁用录音。

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

-sample_fmt[:流说明符] 样本_fmt (输出,每流)
设置音频样本格式。 使用“-sample_fmts”获取支持的样本列表
格式。

-af 过滤图 (产量)
创建由指定的过滤器图 过滤图 并使用它来过滤流。

这是“-filter:a”的别名,参见 -过滤 选项.

高级 Audio 选项
-标签 Fourcc/标签 (产量)
强制音频标签/fourcc。 这是“-tag:a”的别名。

-absf 比特流过滤器
已弃用,请参阅 -bsf

-guess_layout_max 通道 (输入,每个流)
如果某些输入通道布局未知,则仅尝试猜测它是否对应于
最多指定的通道数。 例如,2 告诉 ffmpeg的 认识 1
声道为单声道,2 声道为立体声,但不是 6 的 5.1 声道。 默认为
总是尝试猜测。 使用 0 禁用所有猜测。

字幕 选项
-编解码器 编解码器 (输入/输出)
设置字幕编解码器。 这是“-codec:s”的别名。

-sn (产量)
禁用字幕录制。

-sbsf 比特流过滤器
已弃用,请参阅 -bsf

高级 字幕 选项
-fix_sub_duration
修复字幕持续时间。 对于每个字幕,等待相同的下一个数据包
流并调整第一个的持续时间以避免重叠。 这是必要的
一些字幕编解码器,尤其是 DVB 字幕,因为在原来的时长
包只是一个粗略的估计,结束实际上是一个空的字幕
框架。 必要时未使用此选项可能会导致持续时间过长
或由于非单调时间戳而导致的混合失败。

注意这个选项会延迟所有数据的输出直到下一个字幕包
被解码:它可能会大大增加内存消耗和延迟。

-画布的尺寸 尺寸
设置用于渲染字幕的画布大小。

高级 选项
地图 [ - ]输入文件编号[:流说明符][,同步文件 ID[:流说明符]] | [链接标签]
(产量)
指定一个或多个输入流作为输出文件的源。 每个输入流
由输入文件索引标识 输入文件编号 和输入流索引
输入流 ID 在输入文件中。 两个索引都从 0 开始。如果指定,
同步文件 ID:流说明符 设置哪个输入流用作演示同步
参考。

命令行上的第一个“-map”选项指定输出流 0 的源,
第二个“-map”选项指定输出流 1 等的源。

流标识符前的“-”字符创建“否定”映射。 它
从已创建的映射中禁用匹配流。

替代 [链接标签] 表单将映射来自复杂过滤器图的输出(请参阅
-filter_complex 选项)到输出文件。 链接标签 必须对应于一个定义的
图中的输出链接标签。

例如,将所有流从第一个输入文件映射到输出

ffmpeg -i 输入 -map 0 输出

例如,如果您在第一个输入文件中有两个音频流,则这些流是
由“0:0”和“0:1”标识。 您可以使用“-map”来选择要放置的流
一个输出文件。 例如:

ffmpeg -i 输入 -map 0:1 out.wav

将输入流映射到 INPUT 由“0:1”标识到(单个)输出流
in 输出.wav.

例如,从输入文件中选择索引为 2 的流 一个.mov (由指定
标识符“0:2”),以及来自输入的索引为 6 的流 b.mov (由指定
标识符“1:6”),并将它们复制到输出文件 出.mov:

ffmpeg -i a.mov -i b.mov -c 复制 -map 0:2 -map 1:6 out.mov

从输入文件中选择所有视频和第三个音频流:

ffmpeg -i 输入 -map 0:v -map 0:a:2 输出

要映射除第二个音频之外的所有流,请使用负映射

ffmpeg -i 输入 -map 0 -map -0:a:1 输出

选择英文音频流:

ffmpeg -i 输入 -map 0:m:language:eng 输出

请注意,使用此选项会禁用此输出文件的默认映射。

-ignore_unknown
如果复制此类流,则忽略类型未知的输入流而不是失败
尝试过。

-copy_unknown
允许复制未知类型的输入流,而不是在复制此类时失败
流被尝试。

-地图频道
[输入文件编号.流说明符.频道 ID|-1][:输出文件编号.流说明符]
将音频通道从给定输入映射到输出。 如果
输出文件编号.流说明符 未设置,音频通道将映射到所有
音频流。

使用“-1”代替 输入文件编号.流说明符.频道 ID 将映射一个静音
通道。

例如,假设 INPUT 是立体声音频文件,可以切换两种音频
使用以下命令的频道:

ffmpeg -i 输入 -map_channel 0.0.1 -map_channel 0.0.0 输出

如果您想将第一个通道静音并保留第二个通道:

ffmpeg -i 输入 -map_channel -1 -map_channel 0.0.1 输出

“-map_channel”选项的顺序指定通道中的顺序
输出流。 根据映射的通道数推测输出通道布局
(单声道,如果一个“-map_channel”,立体声,如果两个,等等)。 结合使用“-ac”
“-map_channel”使通道增益电平在输入和输出通道时更新
布局不匹配(例如两个“-map_channel”选项和“-ac 6”)。

您还可以将输入的每个通道提取到特定输出; 下列
命令提取两个通道 INPUT 音频流(文件 0,流 0)到
那些 输出_CH0输出_CH1 输出:

ffmpeg -i 输入 -map_channel 0.0.0 OUTPUT_CH0 -map_channel 0.0.1 OUTPUT_CH1

以下示例将立体声输入的通道拆分为两个单独的流,
它们被放入同一个输出文件中:

ffmpeg -i 立体声.wav -map 0:0 -map 0:0 -map_channel 0.0.0:0.0 -map_channel 0.0.1:0.1 -y out.ogg

请注意,当前每个输出流只能包含来自单个输入的通道
溪流; 例如,您不能使用“-map_channel”来选择多个输入音频通道
包含在不同的流中(来自相同或不同的文件)并将它们合并到
单个输出流。 因此,目前不可能,例如,转动
将两个单独的单声道流合并为一个立体声流。 但是拆分立体声
流成两个单通道单流是可能的。

如果您需要此功能,一个可能的解决方法是使用 合并 筛选。 为了
例如,如果您需要合并媒体(此处 输入.mkv) 有 2 个单声道音频流进入
一个单立体声声道音频流(并保留视频流),您可以使用
以下命令:

ffmpeg -i input.mkv -filter_complex "[0:1] [0:2] amerge" -c:a pcm_s16le -c:v 复制 output.mkv

-地图元数据[:元数据规范输出] 入档[:元数据规范输入] (输出,每个元数据)
设置下一个输出文件的元数据信息 入档. 请注意,这些是文件
索引(从零开始),而不是文件名。 可选的 元数据规范输入/输出 参数
指定要复制的元数据。 元数据说明符可以具有以下形式:

g 全局元数据,即适用于整个文件的元数据

s[:流规格]
每个流元数据。 流规格 是一个流说明符,如 资讯
章节。 在输入元数据说明符中,第一个匹配的流是
复制自。 在输出元数据说明符中,所有匹配的流都被复制到。

c:章节索引
每章元数据。 章节索引 是从零开始的章节索引。

p:程序索引
每个程序的元数据。 程序索引 是从零开始的程序索引。

如果省略元数据说明符,则默认为全局。

默认情况下,全局元数据从第一个输入文件中复制,每个流和每个
章节元数据与流/章节一起复制。 这些默认映射是
通过创建相关类型的任何映射来禁用。 负文件索引可以是
用于创建仅禁用自动复制的虚拟映射。

例如将元数据从输入文件的第一个流复制到全局
输出文件的元数据:

ffmpeg -i in.ogg -map_metadata 0:s:0 输出.mp3

反过来,即将全局元数据复制到所有音频流:

ffmpeg -i in.mkv -map_metadata:s:a 0:g out.mkv

请注意,简单的 0 在此示例中也可以使用,因为全局元数据是
默认情况下假设。

-地图章节 输入文件索引 (产量)
使用索引从输入文件复制章节 输入文件索引 到下一个输出文件。 如果
没有指定章节映射,然后从第一个输入文件复制章节
至少有一章。 使用负文件索引禁用任何章节复制。

-benchmark (全球化)
在编码结束时显示基准信息。 显示使用的 CPU 时间和
最大内存消耗。 并非所有设备都支持最大内存消耗
系统,如果不支持,它通常会显示为 0。

-benchmark_all (全球化)
在编码期间显示基准信息。 显示在各个步骤中使用的 CPU 时间
(音频/视频编码/解码)。

-时限 为期 (全球化)
ffmpeg 运行后退出 为期 秒。

-倾倒 (全球化)
将每个输入数据包转储到 stderr。

-十六进制 (全球化)
转储数据包时,也转储有效载荷。

-回覆 (输入)
以本机帧速率读取输入。 主要用于模拟抓取设备。 或实时输入
流(例如从文件中读取时)。 不应与实际抓取设备一起使用或
实时输入流(可能导致数据包丢失的地方)。 默认情况下 ffmpeg的 尝试去
尽可能快地读取输入。 此选项将减慢读取速度
输入到输入的本机帧速率。 它对实时输出很有用
(例如直播)。

-循环输入
循环输入流。 目前它仅适用于图像流。 这个选项是
用于自动 FFserver 测试。 此选项已弃用,请使用 -loop 1。

-循环输出 次数
为支持循环的格式(例如动画 GIF)重复循环输出(0 将
无限循环输出)。 此选项已弃用,请使用 -loop。

-垂直同步 参数
视频同步方法。 出于兼容性原因,旧值可以指定为数字。
必须始终将新添加的值指定为字符串。

0, 直通
每个帧都带有它的时间戳从多路复用器传递到多路复用器。

1, CFR
帧将被复制和删除,以实现完全请求的常量
帧率。

2, 录像机
帧与其时间戳一起传递或丢弃,以防止 2
具有相同时间戳的帧。

下降
作为直通但会破坏所有时间戳,使复用器生成新的
基于帧速率的时间戳。

- 1, 汽车
根据多路复用器功能在 1 和 2 之间进行选择。 这是默认的
方法。

请注意,在此之后,多路复用器可能会进一步修改时间戳。 为了
例如,在格式选项的情况下 避免_否定_ts 启用。

使用 -map,您可以选择应从哪个流中获取时间戳。 你可以
保持视频或音频不变,并将剩余的流同步到
不变的一个。

-frame_drop_threshold 参数
丢帧阈值,它指定视频帧在它们之前可以落后多少
被丢弃。 以帧速率为单位,所以 1.0 是一帧。 默认值为 -1.1。 一
可能的用例是在嘈杂的时间戳的情况下避免丢帧或增加
精确时间戳的情况下的丢帧精度。

-异步 每秒采样数
音频同步方法。 “拉伸/挤压”音频流以匹配时间戳,
参数是每秒更改音频的最大样本数。 -异步 1
是一种特殊情况,其中仅纠正音频流的开头,而没有任何纠正
后期更正。

请注意,在此之后,多路复用器可能会进一步修改时间戳。 为了
例如,在格式选项的情况下 避免_否定_ts 启用。

此选项已被弃用。 改用“aresample”音频过滤器。

-副本
不处理输入时间戳,但在不尝试清理的情况下保留它们的值
他们。 特别是,不要删除初始开始时间偏移值。

请注意,根据 垂直同步 选项或特定的多路复用器处理(例如,如果
格式选项 避免_否定_ts 已启用)输出时间戳可能不匹配
即使选择了此选项,也带有输入时间戳。

-从零开始
当与 复制品, 移动输入时间戳,使它们从零开始。

这意味着使用例如“-ss 50”将使输出时间戳从 50 秒开始,
无论输入文件的起始时间戳是什么。

-copytb 模式
指定流复制时如何设置编码器时基。 模式 是一个整数
数值,并且可以采用以下值之一:

1 使用分路器时基。

时基从相应的输入复制到输出编码器
分路器。 有时需要这样做以避免非单调增加
复制具有可变帧速率的视频流时的时间戳。

0 使用解码器时基。

时基从相应的输入复制到输出编码器
解码器。

-1 尝试自动做出选择,以生成合理的输出。

默认值为 -1。

-最短 (产量)
当最短的输入流结束时完成编码。

-dts_delta_threshold
时间戳不连续增量阈值。

-多路延迟 (输入)
设置最大解复用器解码延迟。

-多路预加载 (输入)
设置初始解复用器解码延迟。

-streamid 输出流索引:新价值 (产量)
为输出流分配一个新的 stream-id 值。 应指定此选项
在它适用的输出文件名之前。 对于多个的情况
输出文件存在时,streamid 可能会被重新分配给不同的值。

例如,将流 0 PID 设置为 33,将流 1 PID 设置为 36 以用于输出
mpegts 文件:

ffmpeg -i infile -streamid 0:33 -streamid 1:36 out.ts

-bsf[:流说明符] 比特流过滤器 (输出,每流)
为匹配流设置比特流过滤器。 比特流过滤器 是逗号分隔的
比特流过滤器列表。 使用“-bsfs”选项获取比特流列表
过滤器。

ffmpeg -i h264.mp4 -c:v 复制 -bsf:v h264_mp4toannexb -an out.h264

ffmpeg -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt

-标签[:流说明符] 编解码器标签 (输入/输出,每个流)
强制使用标签/fourcc 来匹配流。

-时间码 hh:mm:ssSEPff
指定用于写入的时间码。 SEP 是 ':' 表示非删除时间码和 ';' (或“.”)为
下降。

ffmpeg -i 输入.mpg -时间码 01:02:03.04 -r 30000/1001 -s ntsc 输出.mpg

-filter_complex 过滤图 (全球化)
定义一个复杂的过滤器图,即具有任意数量的输入和/或输出的过滤器图。
对于简单的图形——那些具有相同类型的一个输入和一个输出的图形——请参阅
-过滤 选项​​。 过滤图 是过滤器图的描述,如
ffmpeg-filters 手册的“Filtergraph 语法”部分。

输入链接标签必须使用
“[file_index:stream_specifier]”语法(即与 地图 用途)。 如果
流说明符 匹配多个流,将使用第一个。 一个未标记的
输入将连接到匹配类型的第一个未使用的输入流。

输出链接标签指的是 地图. 未标记的输出被添加到第一个
输出文件。

请注意,使用此选项可以仅使用 lavfi 源而不使用正常
输入文件。

例如,将图像覆盖在视频上

ffmpeg -i video.mkv -i image.png -filter_complex '[0:v][1:v]overlay[out]' -map
'[out]' out.mkv

这里的“[0:v]”指的是第一个输入文件中的第一个视频流,链接
到覆盖过滤器的第一个(主要)输入。 类似地,第一个视频流
第二个输入链接到覆盖的第二个(覆盖)输入。

假设每个输入文件中只有一个视频流,我们可以省略输入标签,
所以上面的等价于

ffmpeg -i video.mkv -i image.png -filter_complex 'overlay[out]' -map
'[out]' out.mkv

此外,我们可以省略输出标签和过滤器图中的单个输出
会自动添加到输出文件中,所以我们可以简单地写

ffmpeg -i video.mkv -i image.png -filter_complex 'overlay' out.mkv

使用 lavfi "color" 源生成 5 秒纯红色视频:

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

-拉菲 过滤图 (全球化)
定义一个复杂的过滤器图,即具有任意数量的输入和/或输出的过滤器图。
相当于 -filter_complex.

-filter_complex_script 文件名 (全球化)
此选项类似于 -filter_complex,唯一的区别是它的参数是
要从中读取复杂过滤器图描述的文件的名称。

-accurate_seek (输入)
此选项启用或禁用输入文件中的准确搜索 -SS 选项。
它默认启用,因此转码时搜索是准确的。 用
-noaccurate_seek 禁用它,这可能很有用,例如在复制一些流和
转码其他。

-seek_timestamp (输入)
此选项启用或禁用在输入文件中按时间戳查找 -SS
选项。 默认情况下它是禁用的。 如果启用,则参数 -SS 选项是
被视为实际时间戳,并且不会被文件的开始时间偏移。 这个
仅对不从时间戳 0 开始的文件重要,例如传输流。

-线程队列大小 尺寸 (输入)
此选项设置从文件读取时排队的最大数据包数或
设备。 低延迟/高速率实时流,如果数据包可能会被丢弃
没有及时阅读; 提高这个值可以避免它。

-override_ffserver (全球化)
覆盖来自的输入规范 服务器. 使用此选项,您可以映射任何
输入流到 服务器 并控制编码的许多方面 ffmpeg的。 没有
这个选项 ffmpeg的 将传送到 服务器 要求什么 服务器.

该选项适用于需要无法指定的功能的情况
服务器 但可以是 ffmpeg的.

-sdp_文件 文件 (全球化)
将输出流的 sdp 信息打印到 文件. 这允许转储 sdp
当至少一个输出不是 rtp 流时的信息。 (至少需要其中之一
输出格式为 rtp)。

-丢弃 (输入)
允许在多路分配器处丢弃特定的流或流帧。 不是全部
分路器支持这一点。

没有
不丢弃任何帧。

默认
默认,不丢弃任何帧。

参考
丢弃所有非参考帧。

比迪尔
丢弃所有双向帧。

诺基
丢弃除关键帧之外的所有帧。

所有 丢弃所有帧。

-x错误 (全球化)
出错时停止并退出

作为一个特殊的例外,您可以使用位图字幕流作为输入:它将是
转换为与文件中最大视频大小相同的视频,如果为 720x576
没有视频。 请注意,这是一个实验性的临时解决方案。 这将是
一旦 libavfilter 对字幕有适当的支持,就会被删除。

例如,要在以 MPEG-TS 格式存储的 DVB-T 记录之上硬编码字幕,
将字幕延迟 1 秒:

ffmpeg -i input.ts -filter_complex \
'[#0x2ef] setpts=PTS+1/TB [sub] ; [#0x2d0] [sub] 叠加' \
-sn -map '#0x2dc' output.mkv

(0x2d0、0x2dc 和 0x2ef 分别是视频、音频和音频的 MPEG-TS PID
字幕流; 0:0、0:3 和 0:7 也会起作用)

预置
预设文件包含一系列 选项=折扣值 对,每行一个,指定一个
在命令行上指定的选项序列。 行开始
带有散列 ('#') 字符的将被忽略并用于提供注释。 检查
预设 FFmpeg 源代码树中的目录以获取示例。

有两种类型的预设文件:ffpreset 和 avpreset 文件。

预设

ffpreset 文件使用“vpre”、“apre”、“spre”和“fpre”选项指定。 这
“fpre”选项将预设的文件名而不是预设名称作为输入,并且可以
可用于任何类型的编解码器。 对于“vpre”、“apre”和“spre”选项,选项
在预设文件中指定的应用到当前选择的相同类型的编解码器
预设选项。

传递给“vpre”、“apre”和“spre”预设选项的参数标识预设
根据以下规则使用文件:

首先ffmpeg搜索一个名为 ARG.ffpreset 在目录中 $FFMPEG_DATADIR (如果
设置),和 $HOME/.ffmpeg, 并在配置时定义的数据目录中(通常
前缀/共享/ffmpeg) 或在 预设 沿着 win32 上的可执行文件的文件夹,在那个
命令。 例如,如果参数是“libvpx-1080p”,它将搜索文件
libvpx-1080p.ff预设.

如果没有找到这样的文件,那么 ffmpeg 将搜索一个名为 编解码器名称-ARG.ff预设
在上述目录中,其中 编解码器名称 是编解码器的名称
将应用预设文件选项。 例如,如果您选择视频编解码器
“-vcodec libvpx”并使用“-vpre 1080p”,然后它将搜索文件
libvpx-1080p.ff预设.

预设

avpreset 文件使用“pre”选项指定。 它们的工作方式类似于 ffpreset 文件,
但它们只允许特定于编码器的选项。 因此,一个 选项=折扣值 对指定
不能使用编码器。

当指定了“pre”选项时,ffmpeg 将查找后缀为 .avpreset 的文件
在目录中 $AVCONV_DATADIR (如果设置),和 $HOME/.avconv,并在定义的数据目录中
在配置时(通常 前缀/共享/ffmpeg), 以该顺序。

首先ffmpeg搜索一个名为 编解码器名称-ARG.avpreset 上面提到的
目录,其中 编解码器名称 是预设文件选项的编解码器的名称
将被应用。 例如,如果您选择带有“-vcodec libvpx”的视频编解码器并使用
“-pre 1080p”,然后它会搜索文件 libvpx-1080p.avpreset.

如果没有找到这样的文件,那么 ffmpeg 将搜索一个名为 ARG.avpreset 在
相同的目录。

示例


视频 Audio 抓住
如果指定输入格式和设备,则 ffmpeg 可以直接抓取视频和音频。

ffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg

或者使用 ALSA 音频源(单声道输入,卡 ID 1)而不是 OSS:

ffmpeg -f alsa -ac 1 -i hw:1 -f video4linux2 -i /dev/video0 /tmp/out.mpg

请注意,您必须在启动 ffmpeg 之前激活正确的视频源和频道
与任何电视观众,如http://linux.bytesex.org/xawtv/> 由 Gerd Knorr 撰写。 你还有
使用标准混音器正确设置录音电平。

X11 抓住
通过 ffmpeg 抓取 X11 显示

ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0 /tmp/out.mpg

0.0 是 X11 服务器的 display.screen 编号,与 DISPLAY 环境变量相同。

ffmpeg -f x11grab -video_size cif -帧速率 25 -i :0.0+10,20 /tmp/out.mpg

0.0 是 X11 服务器的 display.screen 编号,与 DISPLAY 环境变量相同。
10 是 x 偏移,20 是抓取的 y 偏移。

视频 Audio 文件 格式 转变
任何支持的文件格式和协议都可以作为 ffmpeg 的输入:

例子:

· 您可以使用 YUV 文件作为输入:

ffmpeg -i /tmp/test%dY /tmp/out.mpg

它将使用以下文件:

/tmp/test0.Y、/tmp/test0.U、/tmp/test0.V、
/tmp/test1.Y、/tmp/test1.U、/tmp/test1.V 等...

Y 文件使用两倍于 U 和 V 文件的分辨率。 它们是原始文件,没有
标题。 它们可以由所有体面的视频解码器生成。 您必须指定大小
图像的 -s 如果 ffmpeg 无法猜到,则可以选择。

· 您可以从原始 YUV420P 文件输入:

ffmpeg -i /tmp/test.yuv /tmp/out.avi

test.yuv 是一个包含原始 YUV 平面数据的文件。 每帧由Y
平面,然后是 U 和 V 平面,垂直和水平分辨率的一半。

· 你可以输出到一个原始的 YUV420P 文件:

ffmpeg -i mydivx.avi 大文件.yuv

· 可以设置多个输入文件和输出文件:

ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg

将音频文件 a.wav 和原始 YUV 视频文件 a.yuv 转换为 MPEG 文件 a.mpg。

· 还可以同时进行音视频转换:

ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2

以 22050 Hz 采样率将 a.wav 转换为 MPEG 音频。

· 您可以同时编码为多种格式,并从输入定义映射
流到输出流:

ffmpeg -i /tmp/a.wav -map 0:a -b:a 64k /tmp/a.mp2 -map 0:a -b:a 128k /tmp/b.mp2

将 a.wav 转换为 2 kbits 的 a.mp64 和 2 kbits 的 b.mp128。 '-地图文件:索引'
指定每个输出流使用哪个输入流,按顺序
输出流的定义。

· 您可以对解密的 VOB 进行转码:

ffmpeg -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.avi

这是一个典型的 DVD 翻录示例; 输入是一个 VOB 文件,输出一个 AVI 文件
带有 MPEG-4 视频和 MP3 音频。 请注意,在此命令中,我们使用 B 帧,因此
MPEG-4 流与 DivX5 兼容,GOP 大小为 300,即一个帧内
对于 10fps 输入视频,每 29.97 秒一次。 此外,音频流是
MP3 编码,因此您需要通过将“--enable-libmp3lame”传递给启用 LAME 支持
配置。 该映射对于 DVD 转码以获得所需的效果特别有用
音频语言。

注意:要查看支持的输入格式,请使用“ffmpeg -formats”。

· 您可以从视频中提取图像,或从多个图像创建视频:

从视频中提取图像:

ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg

这将每秒从视频中提取一个视频帧并将它们输出
文件名 foo-001.jpeg, foo-002.jpeg等。图像将被重新缩放以适应新的
WxH 值。

如果只想提取有限数量的帧,可以使用上述命令
结合 -vframes 或 -t 选项,或结合 -ss 启动
从某个时间点提取。

从多个图像创建视频:

ffmpeg -f image2 -framerate 12 -i foo-%03d.jpeg -s WxH foo.avi

语法“foo-%03d.jpeg”指定使用由三位数字组成的十进制数
用零填充以表示序列号。 它与支持的语法相同
C printf 函数,但仅适用于接受普通整数的格式。

导入图像序列时,-i 还支持扩展类似 shell 的通配符
内部模式(通配),通过选择特定于 image2 的“-pattern_type glob”
选项。

例如,用于从匹配 glob 模式的文件名创建视频
“foo-*.jpeg”:

ffmpeg -f image2 -pattern_type glob -framerate 12 -i 'foo-*.jpeg' -s WxH foo.avi

· 您可以在输出中放置许多相同类型的流:

ffmpeg -i test1.avi -i test2.avi -map 1:1 -map 1:0 -map 0:1 -map 0:0 -c 复制 -y test12.nut

结果输出文件 test12.螺母 将包含前四个流
以相反的顺序输入文件。

· 强制CBR视频输出:

ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v

· 四个选项 lmin、lmax、mblmin 和 mblmax 使用 'lambda' 单位,但您可以使用
QP2LAMBDA 常数可轻松从“q”单位转换:

ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext

使用 onworks.net 服务在线使用 avconv


免费服务器和工作站

下载 Windows 和 Linux 应用程序

  • 1
    libusb
    libusb
    启用用户空间的库
    与之通信的应用程序
    USB 设备。 受众:开发人员,结束
    用户/桌面。 编程语言:C。
    分类...
    下载 libusb
  • 2
    斯威格
    斯威格
    SWIG 是一种软件开发工具
    连接用 C 编写的程序和
    C++ 具有各种高级
    编程语言。 SWIG 用于
    不同的...
    下载痛饮
  • 3
    WooCommerce Nextjs 反应主题
    WooCommerce Nextjs 反应主题
    React WooCommerce 主题,构建于
    Next JS、Webpack、Babel、Node 和
    Express,使用 GraphQL 和 Apollo
    客户。 React 中的 WooCommerce 商店(
    包含:产品...
    下载 WooCommerce Nextjs React 主题
  • 4
    archlabs_repo
    archlabs_repo
    ArchLabs 的软件包仓库 这是一个
    也可以获取的应用程序

    https://sourceforge.net/projects/archlabs-repo/.
    它已在 OnWorks 中托管...
    下载 archlabs_repo
  • 5
    和风项目
    和风项目
    Zephyr 项目是新一代
    实时操作系统 (RTOS)
    支持多种硬件
    架构。 它基于一个
    小尺寸内核...
    下载 Zephyr 项目
  • 6
    SCCons
    SCCons
    SCons是一个软件构建工具
    这是一个更好的选择
    经典的“Make”构建工具
    我们都知道并热爱。 SCons 是
    实施了一个...
    下载 SCons
  • 更多 ”

Linux 命令

Ad