这是 ffmpeg-formats 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
ffmpeg 格式 - FFmpeg 格式
商品描述
本文档描述了支持的格式(复用器和解复用器)
libav格式库。
FORMAT 配置
libavformat 库提供了一些通用的全局选项,可以在所有
多路复用器和多路分配器。 此外,每个复用器或解复用器可能支持所谓的私有
选项,这是特定于该组件的。
可以通过指定来设置选项 -选项 折扣值 在 FFmpeg 工具中,或通过设置
值明确在“AVFormatContext”选项或使用 libavutil/opt.h API 用于
程序化使用。
支持的选项列表如下:
航空旗 标志 (输入/输出)
可能的值:
直接
减少缓冲。
探针尺寸 整数 (输入)
以字节为单位设置探测大小,即要分析以获取流的数据的大小
信息。 较高的值将能够检测到更多信息,以防万一
分散到流中,但会增加延迟。 必须是不小于整数
大于 32。默认为 5000000。
包大小 整数 (产量)
设置数据包大小。
标志 标志 (输入/输出)
设置格式标志。
可能的值:
点燃
忽略索引。
快速搜索
启用快速但不准确的搜索某些格式。
绅士
生成 PTS。
无填充
可以精确计算的缺失值不要填写。
没有解析
禁用 AVParsers,这也需要“+nofillin”。
导数
忽略 DTS。
丢弃腐败
丢弃损坏的帧。
排序
尝试通过 DTS 交错输出数据包。
保留边
不要合并边数据。
拉特姆
启用 RTP MP4A-LATM 负载。
无缓冲
减少可选缓冲引入的延迟
精确
只编写平台、构建和时间无关的数据。 这确保文件
并且数据校验和是可重复的并且在平台之间匹配。 它的主要用途
用于回归测试。
寻求任何 整数 (输入)
如果设置为 1,则在支持时允许在 demuxer 级别寻找非关键帧。默认
是0。
分析 整数 (输入)
指定分析多少微秒来探测输入。 更高的值将
启用检测更准确的信息,但会增加延迟。 它默认为
5,000,000 微秒 = 5 秒。
密匙 十六进制 绳子 (输入)
设置解密密钥。
索引内存 整数 (输入)
设置用于时间戳索引的最大内存(每个流)。
缓存大小 整数 (输入)
设置用于缓冲实时帧的最大内存。
调试 标志 (输入/输出)
打印特定的调试信息。
可能的值:
ts
最大延迟 整数 (输入/输出)
以微秒为单位设置最大复用或解复用延迟。
fps探测大小 整数 (输入)
设置用于探测 fps 的帧数。
音频预加载 整数 (产量)
设置音频数据包应提前交错的微秒数。
块持续时间 整数 (产量)
为每个块设置微秒。
块大小 整数 (产量)
为每个块设置大小(以字节为单位)。
错误检测, f_错误_检测 标志 (输入)
设置错误检测标志。 “f_err_detect”已弃用,只能通过
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 ffmpeg的 工具。
可能的值:
校验
验证嵌入的 CRC。
比特流
检测比特流规范偏差。
缓冲
检测不正确的比特流长度。
爆炸
在检测到小错误时中止解码。
小心
考虑违反规范并且尚未在野外看到的事物
错误。
兼容
将所有不符合规范的行为视为错误。
侵略性
考虑一个健全的编码器不应该做的错误。
最大交错增量 整数 (产量)
设置交错的最大缓冲持续时间。 持续时间表示为
微秒,默认为 1000000(1 秒)。
为确保所有流正确交错,libavformat 将等待直到它
在实际写入任何数据包之前,每个流至少有一个数据包
输出文件。 当某些流“稀疏”时(即之间存在很大的间隙)
连续的数据包),这会导致过度缓冲。
该字段指定第一个时间戳和第一个时间戳之间的最大差异
muxing 队列中的最后一个数据包,在该数据包之上libavformat 将输出一个数据包
不管它是否已经为所有流排队了一个数据包。
如果设置为 0,libavformat 将继续缓冲数据包,直到它有一个数据包
每个流,无论缓冲的最大时间戳差异如何
包。
使用_wallclock_as_timestamps 整数 (输入)
使用挂钟作为时间戳。
避免_否定_ts 整数 (产量)
可能的值:
使非负数
移动时间戳使它们非负。 另请注意,这仅影响
前导负时间戳,而不是非单调负时间戳。
置零
移动时间戳,使第一个时间戳为 0。
汽车 (默认)
在目标格式需要时启用移位。
禁用
禁用时间戳转换。
启用移位后,所有输出时间戳都会移位相同的量。 声音的,
视频和字幕不同步和相对时间戳差异被保留
与他们在没有转移的情况下的情况相比。
跳过初始字节 整数 (输入)
如果设置为 1,则设置在读取标头和帧之前要跳过的字节数。默认值为
0.
right_ts_overflow 整数 (输入)
如果设置为 1,则更正单个时间戳溢出。默认值为 1。
冲洗数据包 整数 (产量)
在每个数据包之后刷新底层 I/O 流。 默认 1 启用它,并具有
减少延迟的效果; 0 禁用它,可能会稍微提高性能
一些案例。
输出 ts 偏移 抵消 (产量)
设置输出时间偏移。
抵消 必须是持续时间规范,请参阅 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 时间 为期 部分 in 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。
ffmpeg 实用程序(1) 手册.
偏移量由复用器添加到输出时间戳。
指定一个正偏移量意味着相应的流被延迟
中指定的持续时间 抵消. 默认值为 0(意味着没有偏移量
应用)。
格式白名单 名单 (输入)
"," 分隔的允许分路器列表。 默认情况下,所有都是允许的。
转储分隔符 绳子 (输入)
用于分隔命令行上打印的关于 Stream 的字段的分隔符
参数。 例如用换行符和缩进分隔字段:
ffprobe -dump_separator "
“ -一世 〜/视频/matrixbench_mpeg2.mpg
格式 流 符
格式流说明符允许选择一个或多个匹配特定的流
属性。
流说明符的可能形式是:
流索引
将流与此索引匹配。
流类型[:流索引]
流类型 是以下之一:“v”表示视频,“a”表示音频,“s”表示副标题,“d”
用于数据,'t' 用于附件。 如果 流索引 给出,然后它匹配
流数 流索引 这种类型的。 否则,它匹配这个的所有流
类型。
p:程序编号[:流索引]
If 流索引 给出,然后它匹配带有数字的流 流索引 ,在
带有 id 的程序 程序编号. 否则,它匹配程序中的所有流。
#流标识
通过特定于格式的 ID 匹配流。
流说明符的确切语义由
“avformat_match_stream_specifier()”函数在 libavformat/avformat.h
标头。
分路器
解复用器是 FFmpeg 中的配置元素,可以从
特定类型的文件。
当您配置 FFmpeg 构建时,默认情况下会启用所有支持的分路器。
您可以使用配置选项“--list-demuxers”列出所有可用的。
您可以使用配置选项“--disable-demuxers”禁用所有分路器,并且
使用选项“--enable-demuxer=”有选择地启用单个分路器分路器”, 或禁用
它带有选项“--disable-demuxer=分路器”.
ff* 工具的选项“-formats”将显示已启用的分路器列表。
一些当前可用的分路器的描述如下。
aa
可听格式 2、3 和 4 多路分配器。
此解复用器用于解复用 Audible Format 2、3 和 4 (.aa) 文件。
苹果http
Apple HTTP Live Streaming 解复用器。
该解复用器呈现来自所有变体流的所有 AVStream。 id 字段设置为
比特率变体索引号。 通过在 AVStreams 上设置丢弃标志(通过按“a”
或 ffplay 中的“v”),调用者可以决定实际接收哪些变体流。 这
流所属的变体的总比特率在元数据键中可用
名为“variant_bitrate”。
apng
动画便携式网络图形解复用器。
此解复用器用于解复用 APNG 文件。 所有标题,但 PNG 签名,最多(但
不包括)第一个 fcTL 块作为额外数据传输。 然后分割帧
作为两个 fcTL 之间的所有块,或最后一个 fcTL 和 IEND 块之间的所有块。
-ignore_loop 布尔
如果设置,则忽略文件中的循环变量。
-最大帧率 INT
以每秒帧数为单位的最大帧速率(0 表示无限制)。
-默认fps INT
当文件中没有指定时,默认帧率以每秒帧数为单位(0 表示
尽可能快地)。
ASF
高级系统格式解复用器。
此解复用器用于解复用 ASF 文件和 MMS 网络流。
-无重新同步搜索 布尔
不要试图通过寻找某个可选的起始代码来重新同步。
CONCAT
虚拟连接脚本解复用器。
此解复用器从文本文件中读取文件列表和其他指令并将它们解复用
一个接一个,好像他们所有的数据包都混在一起了。
调整文件中的时间戳,以便第一个文件从 0 开始,每个下一个
文件从前一个完成的地方开始。 请注意,它是全局完成的,可能会导致
如果所有流的长度不完全相同,则会出现间隙。
所有文件必须具有相同的流(相同的编解码器、相同的时基等)。
每个文件的持续时间用于调整下一个文件的时间戳:如果
持续时间不正确(因为它是使用比特率计算的,或者因为文件是
截断,例如),它可能会导致伪影。 “持续时间”指令可用于
覆盖存储在每个文件中的持续时间。
句法
该脚本是一个扩展 ASCII 格式的文本文件,每行一个指令。 空行,
前导空格和以“#”开头的行将被忽略。 以下指令是
认可:
“文件 径"
要读取的文件的路径; 特殊字符和空格必须用反斜杠转义
或单引号。
所有后续与文件相关的指令都适用于该文件。
"ffconcat 版本 1.0“
确定脚本类型和版本。 它还设置了 安全 如果是,则选择 1
它的默认值-1。
为了让 FFmpeg 自动识别格式,这个指令必须准确出现
在脚本的第一行按原样(没有额外的空间或字节顺序标记)。
“期间 粗"
文件的持续时间。 这些信息可以从文件中指定; 指定它
如果文件中的信息不可用,这里可能更有效或有帮助
或准确。
如果为所有文件设置了持续时间,则可以在整个文件中查找
连接的视频。
"点 时间戳"
在文件点。 当分路器打开文件时,它会立即寻找
指定的时间戳。 搜索已完成,以便所有流都可以成功呈现
在点。
该指令最适用于帧内编解码器,因为对于非帧内编解码器
您通常会在实际入点和解码内容之前获得额外的数据包
也很可能包含入点之前的帧。
对于每个文件,文件入点之前的数据包的时间戳将小于
计算出的文件开始时间戳(第一个文件为负),以及
文件的持续时间(如果“持续时间”指令未指定)将减少
基于他们指定的入点。
由于指定入点之前的潜在数据包,数据包时间戳可能
两个连接文件之间的重叠。
“点 时间戳"
文件的出点。 当分路器到达指定的解码时间戳时
任何流,它将其作为文件结束条件处理并跳过当前
以及来自所有流的所有剩余数据包。
出点是独占的,这意味着分路器不会输出带有
解码时间戳大于或等于出点。
该指令最适用于所有流都在的帧内编解码器和格式
紧密交错。 对于非帧内编解码器,您通常会获得额外的
在 Out 点之后具有显示时间戳的数据包因此解码的内容将
最有可能在出点之后也包含帧。 如果您的数据流不紧密
交错,您可能无法在出点之前从所有流中获得所有数据包,并且您
可能只能解码最早的流,直到出点。
文件的持续时间(如果“持续时间”指令未指定)将是
根据他们指定的出点减少。
"file_packet_metadata 键=值"
文件包的元数据。 将为每个文件设置指定的元数据
包。 您可以多次指定此指令以添加多个元数据
条目。
“流”
在虚拟文件中引入一个流。 所有后续与流相关的指令
适用于最后引入的流。 必须设置某些流属性才能
允许识别子文件中的匹配流。 如果没有定义流
脚本,来自第一个文件的流被复制。
"exact_stream_id id"
设置流的id。 如果给出此指令,则带有
将使用子文件中的相应 id。 这对 MPEG-PS 特别有用
(VOB) 文件,其中流的顺序不可靠。
可选项
此多路分配器接受以下选项:
安全
如果设置为 1,则拒绝不安全的文件路径。 如果文件路径不安全,则该文件路径被认为是安全的
包含协议规范并且是相对的,所有组件仅包含
可移植字符集中的字符(字母、数字、句点、下划线和
连字符)并且在组件的开头没有句点。
如果设置为 0,则接受任何文件名。
默认为 -1,如果格式被自动探测,则相当于 1,而 0
除此以外。
自动转换
如果设置为 1,则尝试对数据包数据执行自动转换以使流
可串联。 默认值为 1。
目前,唯一的转换是将 h264_mp4toannexb 比特流过滤器添加到
MP264 格式的 H.4 流。 如果有解决方案,这尤其必要
的变化。
FLV
Adobe Flash 视频格式解复用器。
该解复用器用于解复用 FLV 文件和 RTMP 网络流。
-flv_元数据 布尔
根据 onMetaData 数组内容分配流。
库
Game Music Emu 库是视频游戏音乐文件模拟器的集合。
看到http://code.google.com/p/game-music-emu/>有关更多信息。
有些文件有多个轨道。 默认情况下,分路器将选择第一首曲目。 这
跟踪索引 选项可用于选择不同的曲目。 轨道索引从 0 开始。
demuxer 将轨道数导出为 轨道 元数据输入。
对于非常大的文件, 最大尺寸 选项可能需要调整。
库维
使用 quvi 项目播放来自 Internet 服务的媒体。
分路器接受一个 格式 请求特定质量的选项。 它默认设置为
世界上最好的.
看到http://quvi.sourceforge.net/>有关更多信息。
FFmpeg 需要使用“--enable-libquvi”构建才能启用此多路分配器。
GIF
动画 GIF 分离器。
它接受以下选项:
最小延迟
以百分之几秒为单位设置帧之间的最小有效延迟。 范围是 0 到
6000。默认值为 2。
最大gif延迟
以百分之一秒为单位设置帧之间的最大有效延迟。 范围是 0 到
65535。默认值为65535(将近十一分钟),允许的最大值
规范。
默认_延迟
以百分之几秒为单位设置帧之间的默认延迟。 范围是 0 到 6000。
默认值为 10。
忽略循环
GIF 文件可以包含循环一定次数(或无限次)的信息。
If 忽略循环 设置为 1,则输入的循环设置将被忽略,并且
不会发生循环。 如果设置为 0,则将发生循环并将循环编号
根据 GIF 的次数。 默认值为 1。
例如,使用叠加过滤器,在另一个视频上放置一个无限循环的 GIF:
ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex 覆盖=最短=1 out.mkv
请注意,在上面的示例中,覆盖过滤器的最短选项用于结束
以最短输入文件的长度输出视频,在这种情况下是 输入.mp4 as
本例中的 GIF 无限循环。
image2
图像文件分离器。
该解复用器从模式指定的图像文件列表中读取。 语法和
模式的含义由选项指定 模式类型.
模式可能包含一个后缀,用于自动确定
文件中包含的图像。
所有图像的大小、像素格式和每个图像的格式必须相同
序列中的文件。
此多路分配器接受以下选项:
帧率
设置视频流的帧率。 默认为 25。
循环
如果设置为 1,则循环输入。 默认值为 0。
模式类型
选择用于解释提供的文件名的模式类型。
模式类型 接受以下值之一。
没有
禁用模式匹配,因此视频将只包含指定的
图片。 如果您不想从创建序列,则应使用此选项
多个图像,您的文件名可能包含特殊模式字符。
序列
选择一个序列模式类型,用于指定索引的文件序列
连续编号。
序列模式可能包含字符串“%d”或“%0”Nd",它指定
每个文件名中代表序列号的字符的位置
与模式相匹配。 如果表格“%d0Nd" 被使用,该字符串表示
每个文件名中的数字是 0 填充的,并且 N 是 0 填充数字的总数
代表数字。 可以在模式中指定文字字符 '%'
带有字符串“%%”。
如果序列模式包含“%d”或“%0Nd", 文件的第一个文件名
模式指定的列表必须包含一个数字,包含在两者之间
起始编号 和 起始编号+起始编号范围-1,以及以下所有数字
必须是连续的。
例如,模式“img-%03d.bmp”将匹配
申请 img-001.bmp, img-002.bmp,..., img-010.bmp, 等等。; 模式
"i%%m%%g-%d.jpg" loading="lazy" 将匹配表单的一系列文件名 我%m%g-1.jpg,
我%m%g-2.jpg,..., 我%m%g-10.jpg等等。
请注意,模式不一定必须包含“%d”或“%0”Nd”,例如
转换单个图像文件 图片.jpeg 您可以使用以下命令:
ffmpeg -i img.jpeg img.png
水珠
选择全局通配符模式类型。
该模式被解释为“glob()”模式。 这仅在以下情况下可选
libavformat 是在 globbing 支持下编译的。
全局序列 (已弃用, 将 be 已删除)
选择混合 glob 通配符/序列模式。
如果您的 libavformat 版本是使用通配支持编译的,并且
提供的模式在“%*?[]{}”中至少包含一个全局元字符,即
前面是未转义的“%”,该模式被解释为“glob()”模式,
否则它被解释为一个序列模式。
所有 glob 特殊字符“%*?[]{}”都必须以“%”为前缀。 为了逃避一个
文字“%”你应该使用“%%”。
例如,模式“foo-%*.jpeg”将匹配所有以
"foo-" 并以 ".jpeg" 结尾,"foo-%?%?%?.jpeg" 将匹配所有
以“foo-”为前缀的文件名,后跟三个字符的序列,以及
以“.jpeg”结尾。
不推荐使用此模式类型以支持 水珠 和 序列.
默认值为 全局序列.
像素格式
设置要读取的图像的像素格式。 如果未指定,像素格式为
从序列中的第一个图像文件猜测。
起始编号
设置要开始读取的图像文件模式匹配的文件的索引。
默认值为 0。
起始编号范围
设置查找第一个图像文件时要检查的索引间隔范围
顺序,从 起始编号. 默认值为 5。
ts_from_file
如果设置为 1,则将帧时间戳设置为图像文件的修改时间。 注意
没有提供时间戳的单调性:图像的顺序与没有这个的顺序相同
选项。 默认值为 0。如果设置为 2,将设置帧时间戳为修改
图像文件的纳秒精度时间。
视频大小
设置要读取的图像的视频大小。 如果未指定,则猜测视频大小
从序列中的第一个图像文件。
例子
· 用 ffmpeg的 用于从文件序列中的图像创建视频 img-001.jpeg,
img-002.jpeg, ..., 假设输入帧率为每秒 10 帧:
ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
· 同上,但从按顺序读取索引为 100 的文件开始:
ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
· 读取匹配 "*.png" loading="lazy" glob 模式的图片,即所有以
".png" loading="lazy" 后缀:
ffmpeg -framerate 10 -pattern_type glob -i "*.png" loading="lazy" out.mkv
mov/mp4/3gp/快拍
Quicktime / MP4 解复用器。
此多路分配器接受以下选项:
启用_drefs
启用加载外部曲目,默认情况下禁用。 启用这个可以
理论上在某些用例中会泄漏信息。
使用绝对路径
允许通过绝对路径加载外部轨道,默认情况下禁用。 启用
这会带来安全风险。 仅当已知源为非时才应启用它
恶意的。
mpegts
MPEG-2 传输流解复用器。
此多路分配器接受以下选项:
重新同步大小
设置查找新同步的大小限制。 默认值为 65536。
修复图文电视点
使用从
图文电视流所属的第一个节目的 PCR,不会被丢弃。
默认值为 1,如果您想要图文数据包 PTS 和 DTS,请将此选项设置为 0
价值不变。
ts_数据包大小
输出选项携带原始数据包大小(以字节为单位)。 显示检测到的原始数据包
大小,不能由用户设置。
扫描所有pmts
扫描并组合所有 PMT。 该值是一个整数,值从 -1 到 1(-1 表示
自动设置,1 表示启用,0 表示禁用)。 默认值为 -1。
原始视频
原始视频解复用器。
该多路分配器允许读取原始视频数据。 由于没有标头指定
假定的视频参数,用户必须指定它们以便能够解码
数据正确。
此多路分配器接受以下选项:
帧率
设置输入视频帧率。 默认值为 25。
像素格式
设置输入视频像素格式。 默认值为“yuv420p”。
视频大小
设置输入视频大小。 必须明确指定该值。
例如读取一个 rawvideo 文件 输入.raw - ffplay,假设像素格式为
“rgb24”,视频大小为“320x240”,帧速率为每秒 10 张图像,使用
命令:
ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
b
SBaGen 脚本解复用器。
这个解复用器读取 SBaGen 使用的脚本语言http://uazu.net/sbagen/>至
生成双耳节拍会话。 SBG 脚本如下所示:
-如果
a: 300-2.5/3 440+4.5/0
b: 300-2.5/0 440+4.5/3
离开: -
现在 == 一个
+0:07:00 == 乙
+0:14:00 == 一个
+0:21:00 == 乙
+0:30:00 折扣
SBG 脚本可以混合使用绝对和相对时间戳。 如果脚本仅使用
绝对时间戳(包括脚本开始时间)或仅相对时间戳,则其
布局是固定的,转换很简单。 另一方面,如果脚本
混合两种时间戳,然后 现在 相对时间戳的参考将是
取自读取脚本时的当前时间,以及脚本布局
将根据该参考冻结。 这意味着如果脚本是直接
播放时,实际时间将与声音控制器的绝对时间戳匹配
时钟精度,但如果用户以某种方式暂停播放或搜索,所有时间都将是
相应地转移了。
字幕
JSON 字幕用于http://www.ted.com/>.
TED 不提供字幕的链接,但可以从页面上猜出它们。 这
文件 工具/bookmarklets.html 来自 FFmpeg 源代码树包含要公开的书签
他们。
此多路分配器接受以下选项:
开始时间
设置 TED 演讲的开始时间,以毫秒为单位。 默认值为 15000(15 秒)。 这是
用于将字幕与可下载视频同步,因为它们包含 15s
介绍。
示例:将字幕转换为大多数玩家都能理解的格式:
ffmpeg-i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-zh.srt
多路复用器
多路复用器是 FFmpeg 中的配置元素,允许将多媒体流写入
特定类型的文件。
当您配置 FFmpeg 构建时,默认情况下会启用所有支持的多路复用器。 你
可以使用配置选项“--list-muxers”列出所有可用的复用器。
您可以使用配置选项“--disable-muxers”禁用所有多路复用器和
使用选项“--enable-muxer=”有选择地启用/禁用单个多路复用器多路复用器” /
“--disable-muxer=多路复用器”.
ff* 工具的选项“-formats”将显示启用的复用器列表。
一些当前可用的多路复用器的描述如下。
阿菲
音频交换文件格式多路复用器。
可选项
它接受以下选项:
写_id3v2
设置为 3 时启用 ID2v1 标签写入。默认值为 0(禁用)。
id3v2_版本
选择 ID3v2 版本进行写入。 目前只有版本 3 和 4(又名 ID3v2.3 和
支持 ID3v2.4)。 默认为版本 4。
CRC
CRC(循环冗余校验)测试格式。
该复用器计算并打印所有输入音频和视频帧的 Adler-32 CRC。
默认情况下,音频帧被转换为有符号的 16 位原始音频和视频帧为原始
计算CRC之前的视频。
多路复用器的输出由以下形式的单行组成:CRC=0xCRC,其中 CRC 是一个
十六进制数 0 填充到 8 位,包含所有解码输入的 CRC
框架。
另见 框架 混频器。
例子
例如计算输入的CRC,并将其存储在文件中 输出.crc:
ffmpeg -i 输入 -f crc out.crc
您可以使用以下命令将 CRC 打印到标准输出:
ffmpeg -i 输入 -f crc -
您可以选择每个帧的输出格式 ffmpeg的 通过指定音频和
视频编解码器和格式。 例如计算转换为 PCM 的输入音频的 CRC
无符号 8 位和输入视频转换为 MPEG-2 视频,使用命令:
ffmpeg -i 输入 -c:a pcm_u8 -c:v mpeg2video -f crc -
框架
每包 CRC(循环冗余校验)测试格式。
该复用器计算并打印每个音频和视频数据包的 Adler-32 CRC。 经过
默认音频帧转换为有符号的 16 位原始音频和视频帧为原始
计算CRC之前的视频。
多路复用器的输出由以下形式的每个音频和视频数据包的一行组成:
, , , , , 0x
CRC 是一个 0 填充到 8 位的十六进制数,包含数据包的 CRC。
例子
例如计算音频和视频帧的CRC INPUT, 转换为原始
音视频包,并存入文件 输出.crc:
ffmpeg -i 输入 -f framecrc out.crc
要将信息打印到标准输出,请使用以下命令:
ffmpeg -i 输入 -f framecrc -
通过 ffmpeg的,您可以选择音频和视频帧的输出格式
通过指定音频和视频编解码器,在计算每个数据包的 CRC 之前进行编码。
例如,计算每个解码输入音频帧的 CRC 转换为 PCM
无符号 8 位和每个解码输入视频帧转换为 MPEG-2 视频,使用
命令:
ffmpeg -i 输入 -c:a pcm_u8 -c:v mpeg2video -f framecrc -
另见 CRC 混频器。
框架MD5
每包 MD5 测试格式。
该复用器计算并打印每个音频和视频数据包的 MD5 哈希值。 默认情况下
音频帧转换为带符号的 16 位原始音频和视频帧,然后再转换为原始视频
计算哈希。
多路复用器的输出由以下形式的每个音频和视频数据包的一行组成:
, , , , ,
MD5 是一个十六进制数,表示为数据包计算出的 MD5 哈希值。
例子
例如计算音频和视频帧的MD5 INPUT, 转换为原始
音视频包,并存入文件 输出.md5:
ffmpeg -i 输入 -f framemd5 out.md5
要将信息打印到标准输出,请使用以下命令:
ffmpeg -i 输入 -f framemd5 -
另见 md5 混频器。
GIF
动画 GIF 多路复用器。
它接受以下选项:
循环
设置循环输出的次数。 使用“-1”表示无循环,0 表示循环
无限期(默认)。
最终延迟
在最后一帧之后强制延迟(以厘秒表示)。 每帧以
延迟到下一帧。 默认为“-1”,这是一个特殊的值来告诉
复用器重新使用之前的延迟。 在循环的情况下,您可能需要自定义
例如,此值用于标记暂停。
例如,要编码 gif 循环 10 次,循环之间有 5 秒的延迟:
ffmpeg -i 输入 -loop 10 -final_delay 500 out.gif
注意 1:如果您想在单独的 GIF 文件中提取帧,您需要强制
image2 多路复用器:
ffmpeg -i 输入 -c:v gif -f image2 "out%d.gif"
注 2:GIF 格式的时基非常小:两帧之间的延迟不能
小于一厘秒。
高
Apple HTTP Live Streaming muxer,根据 HTTP Live Streaming 对 MPEG-TS 进行分段
(HLS) 规范。
它创建一个播放列表文件和一个或多个片段文件。 输出文件名指定
播放列表文件名。
默认情况下,复用器为每个生成的段创建一个文件。 这些文件具有相同的
名称作为播放列表,后跟序列号和 .ts 扩展名。
例如,要转换输入文件 ffmpeg的:
ffmpeg -i 输入.nut 输出.m3u8
此示例将生成播放列表, 出.m3u8, 和段文件: 输出0.ts, 输出1.ts,
输出2.ts等等。
另见 段 muxer,它提供了一个更通用和灵活的实现
分割器,可用于执行 HLS 分割。
可选项
此多路复用器支持以下选项:
hls_时间 秒
以秒为单位设置段长度。 默认值为 2。
hls_列表大小 尺寸
设置播放列表条目的最大数量。 如果设置为 0,列表文件将包含所有
段。 默认值为 5。
hls_ts_选项 选项列表
使用 :-separated 键=值参数列表设置输出格式选项。 价值观
必须对包含“:”的特殊字符进行转义。
hls_wrap 包装
设置段文件名编号之后的编号(在每个编号中指定的编号)
段文件)包装。 如果设置为 0,数字将永远不会被换行。 默认值为 0。
此选项可用于避免用许多段文件填充磁盘,并限制
写入磁盘的最大段文件数 包装.
起始编号 数
从播放列表序列号开始 数. 默认值为 0。
hls_allow_cache 允许缓存
显式设置客户端是否可以\fIs0(1) 或不能\fIs0(0) 缓存媒体
段。
hls_base_url 基地址
附加 基地址 播放列表中的每个条目。 用于生成播放列表
绝对路径。
请注意,每个片段的播放列表序列号必须是唯一的,而不是
与可以循环的段文件名序列号混淆,例如
例如,如果 包装 选项被指定。
hls_段_文件名 文件名
设置段文件名。 除非设置了 hls_flags single_file 文件名 用作a
带有段号的字符串格式:
ffmpeg in.nut -hls_segment_filename 'file%03d.ts' out.m3u8
此示例将生成播放列表, 出.m3u8, 和段文件: 文件000.ts,
文件001.ts, 文件002.ts等等。
hls_key_info_file 密钥信息文件
使用中的信息 密钥信息文件 用于段加密。 第一行
密钥信息文件 指定写入播放列表的密钥 URI。 密钥 URL 用于
在播放期间访问加密密钥。 第二行指定路径
用于在加密过程中获取密钥的密钥文件。 密钥文件被读取为
二进制格式的 16 个八位字节的单个打包数组。 可选的第三行指定
初始化向量 (IV) 作为要使用的十六进制字符串而不是
用于加密的段序列号(默认)。 更改为 密钥信息文件 将导致
使用新密钥/IV 和新密钥的播放列表中的条目进行分段加密
URI/IV。
关键信息文件格式:
(可选的)
示例键 URI:
http://server/file.key
/路径/到/file.key
文件.key
示例密钥文件路径:
文件.key
/路径/到/file.key
例四:
0123456789ABCDEF0123456789ABCDEF
密钥信息文件示例:
http://server/file.key
/路径/到/file.key
0123456789ABCDEF0123456789ABCDEF
示例外壳脚本:
#!/ bin / sh的
BASE_URL=${1:-'.'}
openssl rand 16 > file.key
echo $BASE_URL/file.key > file.keyinfo
echo file.key >> file.keyinfo
echo $(openssl rand -hex 16) >> file.keyinfo
ffmpeg -f lavfi -re -i testrc -c:v h264 -hls_flags 删除_段 \
-hls_key_info_file file.keyinfo out.m3u8
hls_flags 单文件
如果设置了这个标志,多路复用器将把所有的段存储在一个单一的 MPEG-TS 文件中,并且
将使用播放列表中的字节范围。 以这种方式生成的 HLS 播放列表将具有
版本号 4。例如:
ffmpeg -i in.nut -hls_flags 单文件输出.m3u8
将产生播放列表, 出.m3u8, 和一个单段文件, 输出.ts.
hls_flags 删除段
从播放列表中删除的段文件在一段时间后被删除
片段的持续时间加上播放列表的持续时间。
ICO
ICO 文件复用器。
微软的图标文件格式 (ICO) 有一些严格的限制需要注意:
· 任何尺寸的尺寸都不能超过 256 像素
· 只能存储BMP和PNG图片
· 如果使用 BMP 图像,它必须是以下像素格式之一:
BMP 位深度 FFmpeg 像素格式
1位pal8
4位pal8
8位pal8
16位rgb555le
24 位 bgr24
32位bgra
· 如果使用 BMP 图像,则必须使用 BITMAPINFOHEADER DIB 头
· 如果使用PNG图片,必须使用rgba像素格式
image2
图像文件混合器。
图像文件复用器将视频帧写入图像文件。
输出文件名由模式指定,可用于顺序生成
编号系列的文件。 模式可能包含字符串“%d”或“%0”Nd",这个字符串
指定表示文件名中编号的字符的位置。 如果
表格“%0Nd" 时,表示每个文件名中数字的字符串用 0 填充到 N
数字。 可以在模式中使用字符串“%%”指定文字字符“%”。
如果模式包含“%d”或“%0Nd",指定的文件列表的第一个文件名将
包含数字 1,以下所有数字将是连续的。
模式可能包含一个后缀,用于自动确定
要写入的图像文件。
例如,模式“img-%03d.bmp”将指定格式的文件名序列
img-001.bmp, img-002.bmp,..., img-010.bmp, 等等。模式 "img%%-%d.jpg" loading="lazy" 将指定
表单的文件名序列 图片%-1.jpg, 图片%-2.jpg,..., 图片%-10.jpg等等。
例子
下面的例子展示了如何使用 ffmpeg的 用于创建文件序列
img-001.jpeg, img-002.jpeg, ..., 每秒从输入视频中获取一张图像:
ffmpeg -i in.avi -vsync 1 -r 1 -f image2 'img-%03d.jpeg'
请注意, ffmpeg的, 如果没有用“-f”选项指定格式并且输出
filename 指定图像文件格式,自动选择image2 muxer,所以
前面的命令可以写成:
ffmpeg -i in.avi -vsync 1 -r 1 'img-%03d.jpeg'
另请注意,模式不一定包含“%d”或“%0”Nd”,例如
创建单个图像文件 图片.jpeg 从输入视频中,您可以使用以下命令:
ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg
- 时间 选项允许您使用日期和时间信息扩展文件名。
检查“strftime()”函数的文档以了解语法。
例如,要从“strftime()”“%Y-%m-%d_%H-%M-%S”模式生成图像文件,
以下 ffmpeg的 可以使用命令:
ffmpeg -f v4l2 -r 1 -i /dev/video0 -f image2 -strftime 1 "%Y-%m-%d_%H-%M-%S.jpg"
可选项
起始编号
从指定的数字开始序列。 默认值为 0。
更新
如果设置为 1,文件名将始终被解释为只是一个文件名,而不是一个
模式,相应的文件将不断被新图像覆盖。
默认值为 0。
时间
如果设置为 1,则使用“strftime()”中的日期和时间信息扩展文件名。
默认值为 0。
图像复用器支持 .YUV 图像文件格式。 这种格式的特殊之处在于
每个图像帧由三个文件组成,用于每个 YUV420P 组件。 阅读或
写入此图像文件格式,指定'.Y' 文件的名称。 多路复用器将
根据需要自动打开“.U”和“.V”文件。
Matroska的
Matroska 容器混合器。
这个 muxer 实现了 matroska 和 webm 容器规范。
元数据
此多路复用器中可识别的元数据设置为:
标题
设置提供给单个曲目的标题名称。
language
在 Matroska 语言表单中指定曲目的语言。
语言可以是 3 个字母的书目 ISO-639-2 (ISO 639-2/B) 形式
(如法语的“fre”),或语言代码与国家/地区代码混合用于专业
在语言中(如加拿大法语的“fre-ca”)。
立体声模式
在单个视频轨道中设置两个视图的立体 3D 视频布局。
识别以下值:
单
视频不是立体声
左右
两个视图并排排列,左眼视图在左侧
底部_顶部
两个视图都是上下排列,左眼视图在底部
顶底
两个视图都按上下方向排列,左眼视图在顶部
棋盘_rl
每个视图以棋盘交错的模式排列,左眼视图是
第一
棋盘_lr
每个视图以棋盘交错的方式排列,右眼视图是
第一
行交错_rl
每个视图由基于行的交错构成,右眼视图为第一行
行交错lr
每个视图由基于行的交错构成,左眼视图为第一行
col_interleaved_rl
两个视图都以基于列的交错方式排列,右眼视图是
第一栏
col_interleaved_lr
两个视图都以基于列的交错方式排列,左眼视图是
第一栏
浮雕_青色_红色
所有帧均采用浮雕格式,可通过红青色滤镜查看
右左
两个视图并排排列,右眼视图在左侧
浮雕_green_magenta
所有帧均采用浮雕格式,可通过绿色-洋红色过滤器查看
块_lr
双眼并入一格,左眼为先
块_rl
双眼并入一格,右眼为先
例如,可以使用以下命令行创建 3D WebM 剪辑:
ffmpeg -i sample_left_right_clip.mpg -an -c:v libvpx -metadatastereo_mode=left_right -ystereo_clip.webm
可选项
此多路复用器支持以下选项:
保留索引空间
默认情况下,此多路复用器将用于查找的索引(在 Matroska 术语中称为提示)写入
文件的结尾,因为它无法提前知道要为文件留下多少空间
文件开头的索引。 但是对于某些用例 - 例如流
寻找可能但很慢的地方 - 将索引放在开头很有用
文件。
如果此选项设置为非零值,复用器将保留给定数量的
文件头中的空间,然后尝试在混合时在那里写入提示
完成。 如果可用空间不足,复用将失败。 一个安全的大小
大多数用例应该是每小时视频大约 50kB。
请注意,只有在输出可查找时才会写入提示,并且此选项将没有
如果不是,效果。
md5
MD5 测试格式。
该复用器计算并打印所有输入音频和视频帧的 MD5 哈希值。 经过
默认音频帧转换为有符号的 16 位原始音频和视频帧为原始
计算哈希之前的视频。
多路复用器的输出由以下形式的一行组成:MD5=MD5,其中 MD5 是一个
表示计算出的 MD5 哈希值的十六进制数。
例如计算转换为原始音频和视频的输入的 MD5 哈希值,以及
将其存储在文件中 输出.md5:
ffmpeg -i 输入 -f md5 out.md5
您可以使用以下命令将 MD5 打印到标准输出:
ffmpeg -i 输入 -f md5 -
另见 框架MD5 混频器。
移动, mp4, 主义
MOV/MP4/ISMV(平滑流)多路复用器。
mov/mp4/ismv muxer 支持分片。 通常,一个 MOV/MP4 文件具有所有
存储在一个位置的所有数据包的元数据(写在文件末尾,它可以
通过添加移动到开头以获得更好的播放 快速启动 以及 运动标志,或使用
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 qt-快速启动 工具)。 一个碎片文件由许多碎片组成,其中数据包
这些数据包的元数据存储在一起。 写入碎片文件具有
优点是即使写入中断,文件也可解码(而正常的
如果 MOV/MP4 没有正确完成,则无法解码),并且当它需要更少的内存时
写入很长的文件(因为写入普通的 MOV/MP4 文件会存储有关每个文件的信息)
数据包在内存中,直到文件关闭)。 缺点是兼容性较差
与其他应用程序。
可选项
通过设置定义如何剪切文件的 AVOptions 之一来启用分段
成碎片:
-moov_size 字节
在文件的开头为 moov atom 保留空间,而不是放置
moov 原子在最后。 如果预留空间不足,复用就会失败。
-movflags 片段关键帧
在每个视频关键帧处开始一个新片段。
-frag_duration 为期
创建片段是 为期 微秒长。
-碎片大小 尺寸
创建最多包含的片段 尺寸 有效载荷数据字节。
-movflags 片段定制
允许调用者手动选择何时切割片段,通过调用
“av_write_frame(ctx, NULL)”用到目前为止写入的数据包写入一个片段。 (这个
仅对集成 libavformat 的其他应用程序有用,而不是来自 ffmpeg的.)
-min_frag_duration 为期
不要创建短于 为期 微秒长。
如果指定了多个条件,则在指定的条件之一时切割片段
条件满足。 对此的例外是“-min_frag_duration”,它必须是
满足任何其他适用条件。
此外,输出文件的写入方式可以通过其他一些调整
opţiuni:
-movflags 空_moov
直接在文件开头写一个初始的moov atom,不描述任何
其中的样本。 通常,一个 mdat/moov 对写在文件的开头,作为
普通 MOV/MP4 文件,仅包含文件的一小部分。 有了这个选项
设置,没有初始的 mdat 原子,moov 原子只描述轨道,但
持续时间为零。
此选项在写入 ismv(平滑流)文件时隐式设置。
-movflags 分开_moof
为每个轨道编写一个单独的 moof(电影片段)原子。 通常,所有的数据包
轨道是用 moof atom 编写的(效率稍高一些),但是有了这个
选项集,多路复用器为每个轨道写入一个 moof/mdat 对,使其更容易
单独的轨道。
此选项在写入 ismv(平滑流)文件时隐式设置。
-movflags 快速启动
运行第二遍将索引(moov atom)移动到文件的开头。 这个
操作可能需要一段时间,并且在碎片化等各种情况下都不起作用
输出,因此默认情况下不启用。
-movflags 提示
将 RTP 提示轨道添加到输出文件。
-movflags 禁用_chpl
禁用 Nero 章节标记(chpl atom)。 通常,Nero 章节和
QuickTime 章节轨道被写入文件。 设置此选项后,只有
QuickTime 章节轨道将被写入。 Nero 章节可能会导致失败
使用某些标记程序重新处理文件,例如 mp3Tag 2.61a 和 iTunes 11.3,
很可能其他版本也受到影响。
-movflags 省略_tfhd_offset
不要在 tfhd 原子中写入任何绝对 base_data_offset。 这避免了绑定片段
到文件/流中的绝对字节位置。
-movflags 默认_base_moof
与 omit_tfhd_offset 类似,该标志避免写入绝对
tfhd 原子中的 base_data_offset 字段,但通过使用新的 default-base-is-
moof 标志代替。 此标志是 14496-12:2012 的新标志。 这可能会使碎片
在某些情况下更容易解析(避免基于轨道片段位置
上一个轨道片段的隐式结束的计算)。
例如:
使用此功能,可以将平滑流内容实时推送到 IIS 上的发布点
混频器。 例子:
ffmpeg -re < > -movflags isml+frag_keyframe -f ismv http://server/publishingpoint.isml/Streams(编码器 1)
听得见 AAX
Audible AAX 文件是加密的 M4B 文件,可以通过指定 4
字节激活秘密。
ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:复制输出.mp4
mp3
MP3 多路复用器写入具有以下可选功能的原始 MP3 流:
· 开头的 ID3v2 元数据标头(默认启用)。 版本 2.3 和 2.4
支持,“id3v2_version”私有选项控制使用哪一个(3 或 4)。
将“id3v2_version”设置为 0 将完全禁用 ID3v2 标头。
多路复用器支持将附加图片(APIC 帧)写入 ID3v2 标头。 这
图片以带有单个数据包的视频流的形式提供给多路复用器。
可以有任意数量的这些流,每个流都对应一个 APIC 帧。
流元数据标签 标题 和 评论 映射到 APIC 描述 和 图片 类型
分别。 看http://id3.org/id3v2.4.0-frames> 对于允许的图片类型。
注意APIC帧必须写在开头,所以muxer会缓冲
音频帧,直到它获得所有图片。 因此建议提供
尽快将图片上传,以避免过度缓冲。
· 紧跟在 ID3v2 标头(如果存在)之后的 Xing/LAME 帧。 它默认启用,
但只有在输出可查找时才会写入。 “write_xing”私有选项
可以用来禁用它。 该框架包含可能有用的各种信息
到解码器,如音频持续时间或编码器延迟。
· 文件末尾的旧 ID3v1 标记(默认禁用)。 它可能已启用
使用“write_id3v1”私有选项,但由于其功能非常有限,因此
不推荐使用。
例子:
编写一个带有 ID3v3 标头和 ID2.3v3 页脚的 mp1:
ffmpeg -i 输入 -id3v2_version 3 -write_id3v1 1 out.mp3
要将图片附加到 mp3 文件,请选择音频和图片流
“地图”:
ffmpeg -i input.mp3 -i cover.png -c 复制 -map 0 -map 1
-metadata:s:v title="专辑封面" -metadata:s:v comment="封面(正面)" out.mp3
编写一个没有任何额外功能的“干净”MP3:
ffmpeg -i 输入.wav -write_xing 0 -id3v2_version 0 输出.mp3
mpegts
MPEG 传输流复用器。
此多路复用器执行 ISO 13818-1 和 ETSI EN 300 468 的一部分。
mpegts muxer 中识别的元数据设置是“service_provider”和
“服务名称”。 如果他们没有设置“service_provider”的默认值是“FFmpeg”并且
“service_name”的默认值为“Service01”。
可选项
多路复用器选项是:
-mpegts_original_network_id 数
设置 original_network_id(默认为 0x0001)。 这是网络的唯一标识符
在 DVB 中。 它的主要用途是通过路径唯一标识一个服务
Original_Network_ID、Transport_Stream_ID。
-mpegts_transport_stream_id 数
设置 transport_stream_id(默认为 0x0001)。 这标识了 DVB 中的转发器。
-mpegts_service_id 数
设置 service_id(默认为 0x0001),也称为 DVB 中的程序。
-mpegts_service_type 数
设置程序 service_type(默认 数字电视),请参阅下面的预定义列表
值。
-mpegts_pmt_start_pid 数
设置 PMT 的第一个 PID(默认 0x1000,最大 0x1f00)。
-mpegts_start_pid 数
设置数据包的第一个 PID(默认 0x0100,最大 0x0f00)。
-mpegts_m2ts_模式 数
如果设置为 2,则启用 m1ts 模式。默认值为 -1,禁用 m2ts 模式。
-多路复用 数
设置一个恒定的复用率(默认 VBR)。
-PCR_周期 数
覆盖默认 PCR 重传时间(默认 20 毫秒),如果可变则忽略
选择了复用率。
帕特时期 数
PAT/PMT 表之间的最长时间(以秒为单位)。
SDT_周期 数
SDT 表之间的最大时间(以秒为单位)。
-pes_payload_size 数
以字节为单位设置最小 PES 数据包有效负载。
-mpegts_flags 标志
设置标志(见下文)。
-mpegts_copyts 数
保留原始时间戳,如果 value 设置为 1。默认值为 -1,结果
移动时间戳,使它们从 0 开始。
-表版本 数
设置 PAT、PMT 和 SDT 版本(默认为 0,有效值为 0 到 31,包括在内)。
此选项允许更新流结构,以便标准消费者可以检测到
改变。 为此,重新打开输出 AVFormatContext(在 API 使用的情况下)或重新启动
ffmpeg 实例,循环改变 tables_version 值:
ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
...
ffmpeg -i source3.ts -codec copy -f mpegts -tables_version 31 udp://1.1.1.1:1111
ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
...
选项 mpegts_service_type 接受以下值:
十六进制值
ETSI 0 01 中定义的 0x300 到 468xff 之间的任何十六进制值。
数字电视
数字电视服务。
数字电台
数字广播服务。
图文
图文电视服务。
Advanced_codec_digital_radio
高级编解码器数字无线电服务。
mpeg2_数字_高清电视
MPEG2 数字高清电视服务。
Advanced_codec_digital_sdtv
高级编解码器数字 SDTV 服务。
Advanced_codec_digital_hdtv
高级编解码器数字 HDTV 服务。
选项 mpegts_flags 可以采用一组这样的标志:
重新发送标题
在写入下一个数据包之前重新发送 PAT/PMT。
拉特姆
对 AAC 使用 LATM 分组。
pat_pmt_at_frames
在每个视频帧重新发送 PAT 和 PMT。
例如:
ffmpeg -i file.mpg -c 复制\
-mpegts_original_network_id 0x1122 \
-mpegts_transport_stream_id 0x3344 \
-mpegts_service_id 0x5566 \
-mpegts_pmt_start_pid 0x1500 \
-mpegts_start_pid 0x150 \
-metadata service_provider="某些提供程序" \
-metadata service_name="某些频道" \
-y 输出.ts
MXF, MXF_D10
MXF 多路复用器。
可选项
多路复用器选项是:
商店_用户_评论 布尔
设置是否应存储用户评论(如果可用)或从不存储。 IRT D-10 不允许
用户评论。 因此,默认值是为 mxf 而不是为 mxf_d10 编写它们
空
空多路复用器。
这个 muxer 不生成任何输出文件,它主要用于测试或
基准测试的目的。
例如用基准解码 ffmpeg的 您可以使用以下命令:
ffmpeg -benchmark -i INPUT -f null out.null
请注意,上述命令不会读取或写入 输出为空 文件,但指定
输出文件是需要的 ffmpeg的 语法。
或者,您可以将命令编写为:
ffmpeg -benchmark -i 输入 -f null -
坚果
-同步点 标志
更改 nut 中的同步点用法:
默认 使用 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 正常 低开销 寻求 艾滋病。
没有 do 而不去 使用 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 同步点 at 全部, 减少 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 开销 但是 制造 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 流
不可搜索;
不推荐使用此选项,因为产生的文件非常损坏
敏感和寻求是不可能的。 此外,一般来说,来自
同步点可以忽略不计。 注意,-C 0 可用于禁用
所有不断增长的数据表,允许在有限的内存中混合无限流
并且没有这些缺点。
带时间戳 延长 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 同步点 - a 挂钟 领域。
- 没有 和 带时间戳 标志是实验性的。
-写入索引 布尔
最后写索引,默认是写索引。
ffmpeg -i 输入 -f_strict 实验 -syncpoints 无 - | 处理器
OGG
Ogg 容器多路复用器。
-page_duration 为期
首选页面持续时间,以微秒为单位。 多路复用器将尝试创建页面
大约 为期 微秒长。 这允许用户妥协
在搜索粒度和容器开销之间。 默认值为 1 秒。 值为 0
将填充所有段,使页面尽可能大。 值为 1 将
在大多数情况下有效地使用每页 1 个数据包,从而提供小的搜索粒度
以额外的容器开销为代价。
-serial_offset 折扣值
从中设置流序列号的序列值。 将其设置为不同和
足够大的值确保可以安全地链接生成的 ogg 文件。
分割, 流段, 分段
基本的流分段器。
此多路复用器将流输出到多个几乎固定持续时间的单独文件。 输出
文件名模式可以类似的方式设置 image2,或通过使用“strftime”
模板,如果 时间 选项已启用。
“stream_segment”是用于写入流输出格式的多路复用器的变体,即
不需要全局标头,建议用于输出,例如到 MPEG
传输流段。 “ssegment”是“stream_segment”的较短别名。
每个片段都以所选参考流的关键帧开始,该关键帧被设置
通过 参考流 选项。
注意,如果要对视频文件进行准确的分割,需要使输入键
帧对应于分割器预期的确切分割时间,或
muxer 将使用在指定开始后找到的下一个关键帧开始新段
时间。
分段复用器最适合单个恒定帧速率视频。
可选地,它可以通过设置选项生成已创建段的列表
段列表. 列表类型由 段列表类型 选项。 入口
段列表中的文件名默认设置为相应的基本名称
段文件。
另见 高 muxer,它为 HLS 提供了更具体的实现
用户分类。
可选项
段复用器支持以下选项:
参考流 说明符
设置参考流,如字符串所指定 说明符。 如果 说明符 设置
到“自动”,自动选择参考。 否则它必须是一个流
说明符(参见 ffmpeg 手册中的“流说明符”一章),它指定
参考流。 默认值为“自动”。
段格式 格式
覆盖内部容器格式,默认由文件名猜测
延期。
段格式选项 选项列表
使用 :-separated 键=值参数列表设置输出格式选项。 价值观
必须转义包含“:”特殊字符的字符。
段列表 姓名
还生成一个名为的列表文件 姓名. 如果未指定,则不会生成列表文件。
段列表标志 标志
设置影响段列表生成的标志。
它目前支持以下标志:
缓存
允许缓存(仅影响 M3U8 列表文件)。
生活
允许实时友好的文件生成。
段列表大小 尺寸
更新列表文件,使其最多包含 尺寸 段。 如果 0 列表文件
将包含所有段。 默认值为 0。
段列表条目前缀 字首
前置 字首 到每个条目。 用于生成绝对路径。 默认没有前缀
被应用。
段列表类型 类型
选择列表格式。
识别以下值:
平面
为创建的段生成一个平面列表,每行一个段。
csv, 分机
为创建的段生成一个列表,每行一个段,每行匹配
格式(逗号分隔值):
, ,
段文件名 是复用器根据生成的输出文件的名称
到提供的模式。 CSV 转义(根据 RFC4180)适用于
必需的。
段开始时间 和 段结束时间 指定段开始和结束时间
以秒表示。
带有后缀“.csv”或“.ext”的列表文件将自动选择此格式。
分机 被弃用,有利于或 CSV.
联系方式
为创建的段生成一个 ffconcat 文件。 可以读取生成的文件
使用 FFmpeg CONCAT 分路器。
带有后缀“.ffcat”或“.ffconcat”的列表文件将自动选择此格式。
m3u8
生成扩展的 M3U8 文件,版本 3,符合
<http://tools.ietf.org/id/draft-pantos-http-live-streaming>.
带有后缀“.m3u8”的列表文件将自动选择此格式。
如果未指定,则从列表文件名后缀中猜测类型。
段时间 次
将段持续时间设置为 次,该值必须是持续时间规范。 默认
值为“2”。 另见 段时间 选项。
请注意,拆分可能不准确,除非您强制引用流键 -
给定时间的帧。 请参阅下面的介绍性通知和示例。
时钟时间段 1 | 0
如果设置为“1”,则从 00:00 点开始以固定的时钟时间间隔拆分。 这
次 中指定的值 段时间 用于设置分割的长度
间隔。
例如与 段时间 设置为“900”这使得可以在以下位置创建文件
12:00点、12:15、12:30等
默认值为“0”。
段时间增量 三角洲
指定选择段开始时间时的准确时间,表示为
持续时间规范。 默认值为“0”。
当指定 delta 时,如果关键帧的 PTS 满足
关系:
PTS >= start_time - time_delta
这个选项在分割视频内容时很有用,视频内容总是在 GOP 分割
边界,以防在指定的分割时间之前找到关键帧。
特别是可以与 ffmpeg的 选项 强制关键帧。 该
由指定的关键帧时间 强制关键帧 可能设置不准确,因为
四舍五入问题,结果是关键帧时间可能会在之前设置
指定的时间。 对于恒定帧速率视频,值为 1/(2*帧率) 应该
解决指定时间与设置的时间之间的最坏情况不匹配
强制关键帧.
段时间 时
指定分割点列表。 时 包含逗号分隔的持续时间列表
规格,按升序排列。 另见 段时间 选项。
段_帧 帧
指定分割视频帧编号的列表。 帧 包含逗号分隔的列表
整数,按升序排列。
此选项指定每当参考流关键帧出现时开始一个新片段
找到并且该帧的序号(从 0 开始)大于或等于
列表中的下一个值。
分段换行 限制
一旦达到段索引,就环绕它 限制.
分段起始编号 数
设置第一段的序号。 默认为 0。
时间 1 | 0
使用“strftime”函数定义要写入的新段的名称。 如果这
被选中,输出段名称必须包含一个“strftime”函数模板。
默认值为 0。
中断非关键帧 1 | 0
如果启用,则允许片段从关键帧以外的帧开始。 这提高了
当关键帧之间的时间不一致时,某些播放器的行为,但可能会使
其他人的情况更糟,并且在寻求过程中可能会导致一些奇怪的事情。 默认为 0。
重置时间戳 1 | 0
在每个段的开头重置时间戳,以便每个段都以
接近零的时间戳。 它旨在简化生成的片段的播放。 可能
不适用于多路复用器/编解码器的某些组合。 默认设置为 0。
初始偏移量 抵消
指定要应用于输出数据包时间戳的时间戳偏移。 论证必须
是一个持续时间规范,默认为 0。
例子
· 重新混合文件内容 .mkv 到段列表 out-000.螺母, out-001.螺母等,
并将生成的段列表写入 列表:
ffmpeg -i in.mkv -codec copy -map 0 -f 段 -segment_list out.list out%03d.nut
· 段输入和设置输出段的输出格式选项:
ffmpeg -i in.mkv -f 段 -segment_time 10 -segment_format_options movflags=+faststart out%03d.mp4
· 根据指定的分割点对输入文件进行分割 段时间
选项:
ffmpeg -i in.mkv -codec copy -map 0 -f 段 -segment_list out.csv -segment_times 1,2,3,5,8,13,21 out%03d.nut
· 使用 ffmpeg的 强制关键帧 在输入中强制关键帧的选项
指定位置,以及段选项 段时间增量 占
设置关键帧时间时可能进行的四舍五入操作。
ffmpeg -i in.mkv -force_key_frames 1,2,3,5,8,13,21 -codec:v mpeg4 -codec:a pcm_s16le -map 0 \
-f 段 -segment_list out.csv -segment_times 1,2,3,5,8,13,21 -segment_time_delta 0.05 out%03d.nut
为了强制输入文件上的关键帧,需要进行转码。
· 通过根据帧数分割输入文件来分割输入文件
指定的序列 段_帧 选项:
ffmpeg -i in.mkv -codec copy -map 0 -f 段 -segment_list out.csv -segment_frames 100,200,300,500,800 out%03d.nut
· 转换 .mkv 到使用“libx264”和“libfaac”编码器的 TS 段:
ffmpeg -i in.mkv -map 0 -codec:v libx264 -codec:a libfaac -f ssegment -segment_list out.list out%03d.ts
· 对输入文件进行分段,并创建一个 M3U8 直播播放列表(可用作直播 HLS
来源):
ffmpeg -re -i in.mkv -codec copy -map 0 -f 段 -segment_list playlist.m3u8 \
-segment_list_flags +live -segment_time 10 出%03d.mkv
流畅播放
Smooth Streaming muxer 生成一组适合服务的文件(Manifest、chunks)
与传统的网络服务器。
窗口大小
指定清单中保留的片段数。 默认 0(保留所有)。
额外窗口大小
指定在从清单中删除之前保留在清单之外的片段数
盘。 默认 5。
前瞻_计数
指定前瞻片段的数量。 默认 2。
最小碎片持续时间
指定最小片段持续时间(以微秒为单位)。 默认 5000000。
退出时删除
指定完成后是否删除所有片段。 默认 0(不删除)。
开球
tee muxer 可用于将相同的数据写入多个文件或任何其他类型的
混频器。 例如,它可用于将视频流式传输到网络并将其保存到
盘同时。
它不同于指定多个输出到 ffmpeg的 命令行工具,因为
音频和视频数据将仅使用 tee muxer 编码一次; 编码可以是
非常昂贵的过程。 直接使用 libavformat API 时没有用,因为
然后可以将相同的数据包直接提供给多个复用器。
从属输出在给多路复用器的文件名中指定,以“|”分隔。 如果
任何从属名称包含“|” 分隔符、前导或尾随空格或任何
特殊字符,它必须被转义(见 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 “引用 和 逃跑” 部分 in 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。
ffmpeg 实用程序(1) 手册).
可以通过将它们作为一个列表来为每个从站指定多路复用器选项 键=折扣值
对由':'分隔,在方括号之间。 如果选项值包含特殊
字符或 ':' 分隔符,它们必须被转义; 请注意,这是第二级
逃跑。
还识别以下特殊选项:
f 指定格式名称。 如果无法从输出名称后缀中猜出它,则很有用。
BSFS[/规格]
指定要应用于指定输出的比特流过滤器列表。
可以通过以下方式指定给定的比特流过滤器适用于哪些流
将流说明符附加到由“/”分隔的选项。 规格 必须是一个流
说明符(见 格式 流 符)。 如果未指定流说明符,
比特流过滤器将应用于输出中的所有流。
可以指定多个比特流过滤器,用“,”分隔。
选择
选择应该映射到从属输出的流,由流指定
说明符。 如果未指定,则默认为所有输入流。
例子
· 对某些内容进行编码并将其存档在 WebM 文件中,然后将其作为 MPEG-TS over UDP 进行流式传输
(流需要显式映射):
ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a
“archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/”
· 用 ffmpeg的 对输入进行编码,并将输出发送到三个不同的目的地。
“dump_extra”比特流过滤器用于将额外数据信息添加到所有
根据 MPEG-TS 格式的要求输出视频关键帧数据包。 选择选项
应用于 输出.aac 为了使它只包含音频数据包。
ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac -strict 实验
-f tee "[bsfs/v=dump_extra]out.ts|[movflags=+faststart]out.mp4|[select=a]out.aac"
· 如下,但只选择流“a:1”作为音频输出。 注意第二级
必须执行转义,因为“:”是用于分隔选项的特殊字符。
ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac -strict 实验
-f tee "[bsfs/v=dump_extra]out.ts|[movflags=+faststart]out.mp4|[select=\'a:1\']out.aac"
注意:根据输出格式,某些编解码器可能需要不同的选项; 自动
这个检测不能与三通复用器一起工作。 主要的例子是 全局标题
旗。
webm_dash_manifest
WebM DASH 清单复用器。
该复用器实现了 WebM DASH Manifest 规范以生成 DASH 清单
XML。 它还支持 DASH 实时流的清单生成。
有关更多信息,请参阅
·WebM DASH规范:
<https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification>
· ISO DASH规范:
<http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip>
可选项
此多路复用器支持以下选项:
适应集
此选项具有以下语法:"id=x,streams=a,b,c id=y,streams=d,e" 其中 x
y 是自适应集的唯一标识符,a、b、c、d 和 e 是
相应的音频和视频流的索引。 任意数量的适配集
可以使用此选项添加。
生活
将此设置为 1 以创建实时流 DASH 清单。 默认值:0。
块开始索引
第一个块的起始索引。 这将在 起始编号 的属性
段模板 清单中的元素。 默认值:0。
块持续时间毫秒
每个块的持续时间(以毫秒为单位)。 这将在 为期 的属性
段模板 清单中的元素。 默认值:1000。
utc_timing_url
将以 ISO 格式返回 UTC 时间戳的页面的 URL。 这将在
折扣值 的属性 UTC时间 清单中的元素。 默认值:无。
时间偏移缓冲区深度
保证任何表示形式的最短时间(以秒为单位)移动缓冲区
可用。 这将在 时移缓冲区深度 的属性 医疗产品事业部
元素。 默认值:60。
最小更新周期
清单的最小更新周期(以秒为单位)。 这将在
最小更新周期 的属性 医疗产品事业部 元素。 默认值:0。
例如:
ffmpeg -f webm_dash_manifest -i video1.webm \
-f webm_dash_manifest -i video2.webm \
-f webm_dash_manifest -i audio1.webm \
-f webm_dash_manifest -i audio2.webm \
-地图 0 -地图 1 -地图 2 -地图 3 \
-c 复制 \
-f webm_dash_manifest \
-adaptation_sets "id=0,streams=0,1 id=1,streams=2,3" \
清单文件
webm_chunk
WebM 实时块复用器。
这个多路复用器将 WebM 标头和块作为单独的文件写出,这些文件可以被
通过 DASH 支持 WebM Live 流的客户端。
可选项
此多路复用器支持以下选项:
块开始索引
第一个块的索引(默认为 0)。
头
将写入初始化数据的头文件名。
音频块持续时间
每个音频块的持续时间(以毫秒为单位)(默认为 5000)。
例如:
ffmpeg -f v4l2 -i /dev/video0 \
-f alsa -i 硬件:0 \
-地图 0:0 \
-c:v libvpx-vp9 \
-s 640x360 -keyint_min 30 -g 30 \
-f webm_chunk \
-标题 webm_live_video_360.hdr \
-chunk_start_index 1 \
webm_live_video_360_%d.chk \
-地图 1:0 \
-c:一个 libvorbis \
-b:128k \
-f webm_chunk \
-标题 webm_live_audio_128.hdr \
-chunk_start_index 1 \
-audio_chunk_duration 1000 \
webm_live_audio_128_%d.chk
元数据
FFmpeg 能够将媒体文件中的元数据转储为简单的 UTF-8 编码的类似 INI 的文本
文件,然后使用元数据复用器/解复用器将其加载回来。
文件格式如下:
1. 一个文件由一个标题和许多元数据标签组成,分为多个部分,每个部分
在自己的线上。
2. 标题是一个 ;FF元数据 字符串,后跟版本号(现在为 1)。
3.元数据标签的形式 键=值
4. 紧跟在全局元数据之后的头部
5. 在全局元数据之后,可能会有包含每个流/每个章节元数据的部分。
6.节以大写的节名(即STREAM或CHAPTER)开头
括号 ([, ]) 并以下一部分或文件结尾结束。
7. 在章节部分的开头可能有一个可选的时基用于
开始/结束值。 它必须是形式 时基=NUM/天,其中 NUM 和 天 是整数。
如果缺少时基,则假定开始/结束时间以毫秒为单位。
接下来的章节部分必须包含章节开始和结束时间的形式 START =NUM,
结束=NUM,其中 NUM 是一个正整数。
8. 空行和以开头的行 ; or # 被忽略了。
9. 元数据键或值包含特殊字符(=, ;, #, \ 和换行符)必须
用反斜杠转义 \.
10. 注意元数据中的空格(例如 FOO = 酒吧) 被认为是
标签(在上面的例子中,关键是 FOO ,值为
酒吧).
ffmetadata 文件可能如下所示:
;FF元数据1
标题=自行车\\棚
;这是评论
艺术家=FFmpeg 巨魔团队
[章节]
时基=1/1000
开始=0
#章节于 0:01:00 结束
完=60000
标题=章节\#1
[溪流]
标题=多\
线
通过使用 ffmetadata muxer 和 demuxer,可以从输入中提取元数据
文件转换为 ffmetadata 文件,然后将文件转码为输出文件
已编辑的 ffmetadata 文件。
使用以下命令提取 ffmetadata 文件 ffmpeg的 如下:
ffmpeg -i 输入 -f ffmetadata FFMETADATAFILE
从 FFMETADATAFILE 文件重新插入编辑过的元数据信息可以通过以下方式完成:
ffmpeg -i 输入 -i FFMETADATAFILE -map_metadata 1 -codec 复制输出
使用 onworks.net 服务在线使用 ffmpeg 格式