FFmpeg比特流过滤文档

网站翻译由林建有提供支持

1 描述

本文档描述了由libavcodec库提供的比特流过滤器。

比特流过滤器操作编码的流数据,并在不解码的情况下执行比特流级的修改。

2 比特流过滤器

配置FFmpeg构建时,默认启用所有支持的比特流过滤器。您可以使用配置选项列出所有可用的过滤器。--list-bsfs.

您可以使用配置选项禁用所有比特流过滤器。--disable-bsfs,并通过选项有选择地启用任意比特流过滤器。--enable-bsf=BSF,或者您可以使用选项禁用特定的比特流过滤器。--disable-bsf=BSF.

选项-bsfs的ff*工具将显示构建中包含的所有受支持的比特流过滤器列表。

ff*工具为每个流应用了一个-bsf选项,该选项接受以逗号分隔的过滤器列表,其参数紧跟在过滤器名字后以‘=’分隔。

ffmpeg -i INPUT -c:v copy -bsf:v filter1[=opt1=str1:opt2=str2][,filter2] OUTPUT

以下是当前可用的比特流过滤器的描述,包括其中的参数(如果有的话)。

2.1 aac_adtstoasc

将MPEG-2/4 AAC ADTS转换为MPEG-4音频特定配置比特流。

此过滤器从MPEG-2/4 ADTS头创建一个MPEG-4 AudioSpecificConfig,并移除ADTS头。

当将AAC流从原始ADTS AAC或MPEG-TS容器复制到MP4A-LATM,FLV文件或MOV/MP4文件及相关格式(如3GP或M4A)时需要此过滤器。请注意,此过滤器在MP4A-LATM和MOV/MP4及相关格式中会自动插入。

2.2 av1_metadata

修改嵌入在AV1流中的元数据。

td

在流的所有时间单元中插入或移除时间分隔符OBU。

insert

在每个尚未拥有的时间单元开始处插入TD。

remove

从含有TD的每个时间单元开始处移除TD。

color_primaries
transfer_characteristics
matrix_coefficients

设置流中的颜色描述字段(参见AV1第6.4.2节)。

color_range

设置流中的颜色范围(参见AV1第6.4.2节;请注意,对于使用BT.709原色、sRGB传输特性和标识(RGB)矩阵系数的流无法设置此项)。

tv

限制范围。

pc

全范围。

chroma_sample_position

设置流中的色度采样位置(参见AV1第6.4.2节)。此项仅能设置为4:2:0流。

vertical

左侧位置(与MPEG-2和H.264中的默认值匹配)。

colocated

左上位置。

tick_rate

设置序列头中计时信息中的tick率(time_scale / num_units_in_display_tick)。

num_ticks_per_picture

设置每张图片的tick数量,表明流具有固定帧率。如果未设置tick_rate,则此项将被忽略。

delete_padding

删除填充OBU。

2.3 chomp

移除包末尾的零填充。

2.4 dca_core

从DCA/DTS流中提取核心部分,丢弃扩展部分如DTS-HD。

2.5 dovi_rpu

操控HEVC/AV1比特流中的Dolby Vision元数据,可选启用元数据压缩。

strip

若启用,从流中去除所有Dolby Vision元数据(配置记录+RPU数据块)。

compression

启用哪个压缩级别。

none

无元数据压缩。

limited

有限元数据压缩方案,应与多数设备兼容。这是默认值。

extended

扩展元数据压缩。设备不要求支持此项。请注意,目前此级别的行为与libavcodec中的‘limited’相同。

2.6 dump_extra

向过滤后的包开头添加额外数据,除非这些包已经严格以预期添加的额外数据开头。

freq

附加参数指定应过滤哪些包。可接受以下值:

k
keyframe

向所有关键包添加额外数据

e
all

向所有包添加额外数据

如果未指定,则假定为‘k’.

例如,下列ffmpeg命令强制H.264包使用全局头(从而禁用单个包头),但通过将保存在额外数据中的头添加到关键包中来纠正它们:libx264 encoder, but corrects them by adding the header stored in extradata to the key packets:

ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts

2.7 dv_error_marker

用指定颜色替换标记为损坏的DV块。

color

替换损坏块的颜色

sta

16位掩码,指定16个可能的错误状态值中的哪些应由彩色块替换。默认值为0xFFFE,它替换所有非零错误状态值。

ok

无错误,无隐藏

err

错误,无隐藏

res

保留

notok

错误或隐藏

notres

非保留

Aa, Ba, Ca, Ab, Bb, Cb, A, B, C, a, b, erri, erru

特定错误状态代码

参见第44-46页或第5.5节http://web.archive.org/web/20060927044735/http://www.smpte.org/smpte_store/standards/pdf/s314m.pdf

2.8 eac3_core

从E-AC-3流中提取核心部分,丢弃额外通道。

2.9 extract_extradata

提取流内额外数据。

某些编解码器允许长时头部数据(如MPEG-2序列头部,或H.264/HEVC的(VPS/)SPS/PPS)“流内”传输(即作为包含编码帧的比特流的一部分)或“流外传输”(如在容器级别)。在FFmpeg术语中,后者称为“额外数据”。

此比特流过滤器检测流内的头部并使其作为额外数据可以获得。

remove

启用此选项时,长时头部在提取后会从比特流中移除。

2.10 filter_units

从流中移除属于或非属于指定集合的单元。

pass_types

通过移除所有其他单元类型来仅保留指定的单元类型或类型范围。这是通过用‘|’分隔的单元类型值或范围值‘-’指定的。

remove_types

pass_types相同,除单元被移除,所有其他被通过。

pass_types和remove_types所用的类型对应H.264、HEVC和H.266中的NAL单元类型(nal_unit_type)(参见H.264和HEVC规范的表7-1或H.266规范的表5),JPEG的标记值(无0xFF前缀)以及不带起始代码前缀的起始代码(即0x000001后的字节)对于MPEG-2。对于VP8和VP9,每个单元类型均为零。

此转换不会更改额外数据,但请注意,如果流中包含内联参数集,那么如果它们被移除,输出可能无法使用。

例如,从H.264流中移除所有非VCL单元:

ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=pass_types=1-5' OUTPUT

从H.265流中移除所有AUD、SEI单元和填充单元:

ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=35|38-40' OUTPUT

从MPEG-2流中移除所有用户数据,包括闭合字幕:

ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=178' OUTPUT

从H.264流中移除所有SEI单元,包括闭合字幕:

ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=6' OUTPUT

从HEVC流中移除所有前缀和后缀SEI单元,包括闭合字幕和动态HDR:

ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=39|40' OUTPUT

2.11 hapqa_extract

提取HAPQA文件的Rgb或Alpha部分,在不重新压缩的情况下创建一个HAPQ或一个HAPAlphaOnly文件。

texture

指定要保留的纹理。

color
alpha

将HAPQA转换为HAPQ

ffmpeg -i hapqa_inputfile.mov -c copy -bsf:v hapqa_extract=texture=color -tag:v HapY -metadata:s:v:0 encoder="HAPQ" hapq_file.mov

将HAPQA转换为HAPAlphaOnly

ffmpeg -i hapqa_inputfile.mov -c copy -bsf:v hapqa_extract=texture=alpha -tag:v HapA -metadata:s:v:0 encoder="HAPAlpha Only" hapalphaonly_file.mov

2.12 h264_metadata

修改嵌入在H.264流中的元数据。

aud

在流的所有接入单元中插入或移除AUD NAL单元。

pass
insert
remove

默认值为通过。

sample_aspect_ratio

在VUI参数中设置流的样本宽高比。参见H.264表E-1。

overscan_appropriate_flag

设置流是否适合使用过扫描显示或不适合(参见H.264第E.2.1节)。

video_format
video_full_range_flag

设置流中的视频格式(参见H.264第E.2.1节和表E-2)。

colour_primaries
transfer_characteristics
matrix_coefficients

设置流中的颜色描述(参见H.264第E.2.1节和表E-3、E-4和E-5)。

chroma_sample_loc_type

设置流中的色度采样位置(参见H.264第E.2.1节和图E-1)。

tick_rate

在VUI参数中设置tick率(time_scale / num_units_in_tick)。这是流中可表示的最小单位时间,且在很多情况下代表流的场率(帧率的两倍)。

fixed_frame_rate_flag

设置流是否具有固定帧率——通常这表示帧率恰好是tick率的一半,但确切意义依赖于交错与图像结构(参见H.264第E.2.1节和表E-6)。

zero_new_constraint_set_flags

在SPS中将constraint_set4_flag和constraint_set5_flag置零。这些位在H.264规范的先前版本中被保留,因此某些硬件解码器要求这些位为零。将它们置零的结果仍是有效的比特流。

crop_left
crop_right
crop_top
crop_bottom

设置SPS中的帧裁剪偏移。这些值将在流已裁剪时替换当前偏移值。

这些字段以像素为单位设置。请注意,如果色度被子采样或流是交错的,则某些尺寸可能无法表示(参见H.264第7.4.2.1.1节)。

sei_user_data

作为SEI未注册用户数据插入一个字符串。参数必须为形式UUID+字符串,其中UUID为可能由连字符分隔的十六进位数字,而字符串部分可以是任何内容。

例如,‘086f3693-b7b3-4f2c-9653-21492feee5b8+hello’将插入与给定UUID相关联的字符串“hello”。

delete_filler

删除填充NAL单元和填充SEI消息。

display_orientation

插入、提取或移除显示方向的SEI消息。参见H.264第D.1.27节和D.2.27节获取语法和语义。

pass
insert
remove
extract

默认值为通过。

插入模式与rotateflip选项协作工作。插入或移除模式下,任何现有的显示方向消息将被移除。抽取模式会将显示矩阵附加为包的副数据。

rotate

在显示方向SEI中设置旋转角度(逆时针角度,以度为单位)。范围为-360到+360。默认值为NaN。

flip

在显示方向SEI中设置翻转。

horizontal
vertical

默认值为未设置。

level

设置SPS中的水平。请参见H.264第A.3节和表A-1到A-5。

参数必须为水平名称(例如,‘4.2’),一个level_idc值(例如,‘42’),或者特殊名称‘auto’指示过滤器应尝试从输入流属性猜测水平。

2.13 h264_mp4toannexb

将H.264比特流从长度前缀模式转换为起始代码前缀模式(依据ITU-T H.264规范的附录B定义)。

这对于某些流格式是必须的,通常是MPEG-2传输流格式(复用器)。mpegts).

例如,将包含 H.264 流的 MP4 文件重新打包为 mpegts 格式ffmpeg,可以使用以下命令:

ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts

请注意,此过滤器在 MPEG-TS(复用器)mpegts)和原始 H.264(复用器)h264)输出格式中自动插入。

2.14 h264_redundant_pps

此操作对某些包含冗余 PPS 的蓝光流应用特定修正,这些 PPS 修改流的无关参数,导致其他需要正确额外数据的转化操作出现混乱。

2.15 hevc_metadata

修改嵌入在 HEVC 流中的元数据。

aud

在流的所有访问单元中插入或移除 AUD NAL 单元。

insert
remove
sample_aspect_ratio

在 VUI 参数中设置流的样本宽高比。

video_format
video_full_range_flag

在流中设置视频格式(参见 H.265 第 E.3.1 节和表格 E.2)。

colour_primaries
transfer_characteristics
matrix_coefficients

在流中设置色彩描述(参见 H.265 第 E.3.1 节和表格 E.3、E.4 和 E.5)。

chroma_sample_loc_type

在流中设置色度样本位置(参见 H.265 第 E.3.1 节和图 E.1)。

tick_rate

在 VPS 和 VUI 参数中设置滴答率(time_scale / num_units_in_tick)。结合num_ticks_poc_diff_one,可以在流中设置恒定帧率。请注意,当流位于容器中时,容器参数可能会覆盖此设置。

num_ticks_poc_diff_one

在 VPS 和 VUI 中设置 poc_proportional_to_timing_flag,并使用此值设置 num_ticks_poc_diff_one_minus1(参见 H.265 第 7.4.3.1 和 E.3.1 节)。如果tick_rate未设置,则忽略。

crop_left
crop_right
crop_top
crop_bottom

在 SPS 中设置一致性窗口裁剪偏移。这些值将替换当前值(如果流已裁剪)。

这些字段以像素为单位设置。请注意,如果色度被亚采样,某些尺寸可能无法表示(H.265 第 7.4.3.2.1 节)。

width
height

设置裁剪后的宽度和高度。

level

在 VPS 和 SPS 中设置级别。详见 H.265 第 A.4 节和表格 A.6、A.7。

参数必须是级别名称(例如,‘5.1’),一个general_level_idc值(例如,‘153’ 表示级别 5.1),或特殊名称‘auto’,表示过滤器应该根据输入流属性尝试猜测级别。

2.16 hevc_mp4toannexb

将 HEVC/H.265 位流从长度前缀模式转换为起始码前缀模式(按 ITU-T H.265 规范的附录 B 定义)。

某些流格式需要此操作,通常是 MPEG-2 传输流格式(复用器mpegts).

例如,将包含 HEVC 流的 MP4 文件重新打包为 mpegts 格式ffmpeg,可以使用以下命令:

ffmpeg -i INPUT.mp4 -codec copy -bsf:v hevc_mp4toannexb OUTPUT.ts

请注意,此过滤器在 MPEG-TS(复用器)mpegts)和原始 HEVC/H.265(复用器h265hevc)输出格式中自动插入。

2.17 imxdump

修改位流以适应 MOV 并可被 Final Cut Pro 解码器使用。此过滤器仅适用于 mpeg2video 编解码器,并且对于 Final Cut Pro 7 及更新版本使用适当的-tag:v.

例如,将每秒 30 MB 的 NTSC IMX 重新打包为 MOV:

ffmpeg -i input.mxf -c copy -bsf:v imxdump -tag:v mx3n output.mov

2.18 mjpeg2jpeg

将 MJPEG/AVI1 包转换为完整的 JPEG/JFIF 包。

MJPEG 是一种视频编码器,其中每个视频帧本质上是一个 JPEG 图像。可以无损地提取单个帧,例如通过

ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg

遗憾的是,这些块是不完整的 JPEG 图像,因为它们缺少解码所需的 DHT 段。从http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml:

Avery Lee 在 2001 年在 rec.video.desktop 新闻组发表的评论中提到:“MJPEG,或者至少是 AVI 中的四字符代码 MJPG 格式,并不是完整的 JPEG,而是固定的并且*省略的*霍夫曼表。”JPEG 必须采用 YCbCr 色彩空间,必须是 4:2:2,并且必须使用基本的霍夫曼编码,而不是算术或渐进式编码... 事实上,您可以提取 MJPEG 帧并使用常规 JPEG 解码器解码它们,但需要在它们前面添加 DHT 段,否则解码器无法解压缩数据。所需的精确表格在 OpenDML 规范中给出。”

此位流过滤器修补从 MJPEG 流中提取的帧的标题(携带 AVI1 标头 ID 并且缺少 DHT 段),以生成完全限定的 JPEG 图像。

ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
exiftran -i -9 frame*.jpg
ffmpeg -i frame_%d.jpg -c:v copy rotated.avi

2.19 mjpegadump

向位流添加 MJPEG A 标头,以启用 Quicktime 解码。

2.20 mov2textsub

从 MOV 字幕中提取可表现的文本文件,同时从每个字幕包中删除元数据头。

另请参阅text2movsub过滤器。

2.21 mpeg2_metadata

修改嵌入在 MPEG-2 流中的元数据。

display_aspect_ratio

设置流中的显示宽高比。

支持以下固定值:

4/3
16/9
221/100

任何其他值都将导致信号为平方像素(参见 H.262 第 6.3.3 节和表格 6-3)。

frame_rate

在流中设置帧率。这是从已知值的表结合少量乘数和除数构建的——如果提供的值无法完全表示,将使用最接近的可表示值(参见 H.262 第 6.3.3 节和表格 6-4)。

video_format

设置流中的视频格式(参见 H.262 第 6.3.6 节和表格 6-6)。

colour_primaries
transfer_characteristics
matrix_coefficients

在流中设置色彩描述(参见 H.262 第 6.3.6 节和表格 6-7、6-8 和 6-9)。

2.22 mpeg4_unpack_bframes

解压缩 DivX 样式的打包 B 帧。

DivX 式打包 B 帧不是有效的 MPEG-4,只是对损坏的 Video for Windows 子系统的一种变通方法。它们使用更多的空间,可能导致轻微的音视频同步问题,需要更多的 CPU 功率进行解码(除非播放器有某些解码图片队列来补偿每个包内的 2,0,2,0 帧样式),并且如果被复制到标准容器如 mp4 或 mpeg-ps/ts 中会造成问题,因为 MPEG-4 解码器可能无法解码它们,因为它们不是有效的 MPEG-4。

例如,要使用ffmpeg修复包含采用 DivX 打包 B 帧的 MPEG-4 流的 AVI 文件,可以使用以下命令:

ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi

2.23 noise

破坏数据包的内容或直接丢弃它们而不破坏容器。可用于模糊测试或测试错误恢复/掩蔽。

参数:

amount

接受一个表达式,该表达式每包被评估,决定数据包中每个字节修改的频率。值低于 0 会导致频率变为可变。默认值为 0,表示没有任何修改。但是,如果既没有指定 amount,也没有指定 drop,则 amount 会被设置为-1。请参阅下面接受的变量。

drop

接受一个每包被评估的表达式,其值决定该数据包是否丢弃。评估为正值时,数据包会被丢弃。评估为负值时,会有一个可变的丢弃概率,大致与值的大小成反比。默认值为 0,表示没有丢弃。请参阅下面接受的变量。

dropamount

接受一个非负整数,为数据包分配一个可变的丢弃概率,大致与值成反比。默认值为 0,表示没有丢弃。此选项保留向后兼容性,与设置 drop 为具有相同大小的负值等效,例如dropamount=4drop=-4相同。如果指定 drop 则忽略。

两个amountdrop接受包含以下变量的表达式:

n

数据包的索引,从零开始。

tb

数据包时间戳的时间基。

pts

数据包的演示时间戳。

dts

数据包的解码时间戳。

nopts

表示值 AV_NOPTS_VALUE 的常量。

startpts

流中看到的第一个非 AV_NOPTS_VALUE 的 PTS。

startdts

流中看到的第一个非 AV_NOPTS_VALUE 的 DTS。

duration
d

数据包的持续时间,以时间基单位表示。

pos

输入中的数据包位置;如果未知或未设置可能为 -1。

size

数据包大小,以字节为单位。

key

数据包是否标记为关键帧。

state

一个伪随机整数,主要来源于数据包负载的内容。

2.23.1 示例

修改每个字节但不丢弃任何数据包。

ffmpeg -i INPUT -c copy -bsf noise=1 output.mkv

丢弃标记为关键帧的时间戳超过 30 秒的每个视频包,但不修改剩余的其他数据包。

ffmpeg -i INPUT -c copy -bsf:v noise=drop='gt(t\,30)*not(key)' output.mkv

每隔 10 秒丢弃 1 秒的音频,并向剩余部分添加一些随机噪声。

ffmpeg -i INPUT -c copy -bsf:a noise=amount=-1:drop='between(mod(t\,10)\,9\,10)' output.mkv

2.24 null

此位流过滤器将数据包原样传递。

2.25 pcm_rechunk

将 PCM 音频重新打包为固定的每包样本数或每秒固定的包率。这类似于(ffmpeg-filters)asetnsamples 音频过滤器但作用于音频数据包而不是音频帧。

nb_out_samples, n

设置每个输出音频包的样本数。该数量指的是每个通道上的样本数。默认值为 1024。

pad, p

如果设置为 1,则过滤器会用静音填充最后的音频数据包,以使其包含和前一个数据包相同或大致相同数量的样本。默认值为 1。frame_rate) as the previous ones. Default value is 1.

frame_rate, r

此选项使过滤器输出每秒固定数量的数据包,而不是每个数据包固定数量的样本。如果音频采样率不能被帧率整除,则样本数量将不是恒定的,而会稍微变化,以使每个数据包尽可能接近帧边界开始。使用此选项优先于nb_out_samples.

您可以通过frame_rate选项生成众所周知的 1602-1601-1602-1601-1602 音频模式,用于 NTSC 帧率的 48kHz 音频。

ffmpeg -f lavfi -i sine=r=48000:d=1 -c pcm_s16le -bsf pcm_rechunk=r=30000/1001 -f framecrc -

2.26 pgs_frame_merge

将以“显示集结束”段结尾的一系列 PGS 字幕段合并为单个数据包。

这是某些支持 PGS 字幕的容器中需要的(复用器matroska).

2.27 prores_metadata

修改嵌入在 ProRes 流中的颜色属性元数据。

color_primaries

设置颜色初级属性。 可用值有:

auto

保留相同的颜色初级属性(默认)。

unknown
bt709
bt470bg

BT601 625

smpte170m

BT601 525

bt2020
smpte431

DCI P3

smpte432

P3 D65

transfer_characteristics

设置颜色传输属性。 可用值包括:

auto

保留相同的传输特性(默认)。

unknown
bt709

BT 601、BT 709、BT 2020

smpte2084

SMPTE ST 2084

arib-std-b67

ARIB STD-B67

matrix_coefficients

设置矩阵系数。 可用值包括:

auto

保留相同的颜色空间属性(默认)。

unknown
bt709
smpte170m

BT 601

bt2020nc

为文件的每帧设置 Rec709 颜色空间

ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt709:color_trc=bt709:colorspace=bt709 output.mov

为文件的每帧设置混合对数伽马参数

ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt2020:color_trc=arib-std-b67:colorspace=bt2020nc output.mov

2.28 remove_extra

从数据包中移除额外数据。

其接受以下参数:

freq

设置从哪些帧类型中移除额外数据。

k

仅从非关键帧移除额外数据。

keyframe

仅从关键帧移除额外数据。

e, all

从所有帧移除额外数据。

2.29 setts

设置数据包中的 PTS 和 DTS。

其接受以下参数:

ts
pts
dts

设置 PTS、DTS 或两者的表达式。

duration

设置持续时间表达式。

time_base

设置输出时间基。

通过 eval API 评估表达式,可以包含以下常量:

N

输入数据包的计数。从 0 开始。

TS

输入中的解复用时间戳,如果选项为tsdts,则为演示时间戳,如果选项为pts,则为解复用时间戳。

POS

数据包在文件中的原始位置,如果当前数据包未定义,则为未定义

DTS

输入中的解复用时间戳。

PTS

输入中的呈现时间戳。

DURATION

输入中的持续时间。

STARTDTS

第一个数据包的DTS。

STARTPTS

第一个数据包的PTS。

PREV_INDTS

前一次输入的DTS。

PREV_INPTS

前一次输入的PTS。

PREV_INDURATION

前一次输入的持续时间。

PREV_OUTDTS

前一次输出的DTS。

PREV_OUTPTS

前一次输出的PTS。

PREV_OUTDURATION

前一次输出的持续时间。

NEXT_DTS

下一次输入的DTS。

NEXT_PTS

下一次输入的PTS。

NEXT_DURATION

下一次输入的持续时间。

TB

数据包所在流的时间基。

TB_OUT

输出的时间基。

SR

数据包所在流的采样率。

NOPTS

常量AV_NOPTS_VALUE。

例如,设置PTS等于DTS(如果涉及到B帧,则不推荐):

ffmpeg -i INPUT -c:a copy -bsf:a setts=pts=DTS out.mkv

2.30 showinfo

记录基本数据包信息。主要用于测试、调试和开发。

2.31 text2movsub

将文本字幕转换为MOV字幕(用于mov_text编解码器)并带有元数据头。

另请参阅mov2textsub滤镜。

2.32 trace_headers

记录包含编码流头部中所有语法元素的跟踪输出(涉及到个别编码块级别以上的内容)。这一功能对于调试底层流问题很有用。

支持AV1、H.264、H.265、(M)JPEG、MPEG-2和VP9,可根据构建版本的不同仅支持其中部分。

2.33 truehd_core

从TrueHD流中提取核心内容,丢弃ATMOS数据。

2.34 vp9_metadata

修改嵌入在VP9流中的元数据。

color_space

在帧头中设置颜色空间值。注意,任何设置为RGB的帧都将自动设置为PC范围,并且RGB与配置文件0和2不兼容。

unknown
bt601
bt709
smpte170
smpte240
bt2020
rgb
color_range

在帧头中设置颜色范围值。注意,颜色空间强制设置的任何值将优先于该值。

tv
pc

2.35 vp9_superframe

将VP9隐藏的(alt-ref)帧合并回VP9超级帧。这解决了分割/分段VP9流的合并问题,其中alt-ref帧与其可见帧分离。

2.36 vp9_superframe_split

将VP9超级帧拆分为单个帧。

2.37 vp9_raw_reorder

对于具有正确时间戳但可能顺序错乱的VP9流,插入额外的现有帧包以校正顺序。

3 参考文献

ffmpeg, ffplay, ffprobe, libavcodec

4 作者

FFmpeg的开发者们。

关于作者详细信息,请查阅项目的Git记录 (https://git.ffmpeg.org/ffmpeg),例如,在FFmpeg源代码目录中输入命令git log或浏览在线库:https://git.ffmpeg.org/ffmpeg.

具体组件的维护者列在源代码树中的文件MAINTAINERS中。

本文件使用makeinfo.

托管由telepoint.bg提供。