网站翻译由林建有提供支持
目录
- 1 描述
- 2 比特流过滤器
- 2.1 aac_adtstoasc
- 2.2 av1_metadata
- 2.3 chomp
- 2.4 dca_core
- 2.5 dovi_rpu
- 2.6 dump_extra
- 2.7 dv_error_marker
- 2.8 eac3_core
- 2.9 extract_extradata
- 2.10 filter_units
- 2.11 hapqa_extract
- 2.12 h264_metadata
- 2.13 h264_mp4toannexb
- 2.14 h264_redundant_pps
- 2.15 hevc_metadata
- 2.16 hevc_mp4toannexb
- 2.17 imxdump
- 2.18 mjpeg2jpeg
- 2.19 mjpegadump
- 2.20 mov2textsub
- 2.21 mpeg2_metadata
- 2.22 mpeg4_unpack_bframes
- 2.23 noise
- 2.24 null
- 2.25 pcm_rechunk
- 2.26 pgs_frame_merge
- 2.27 prores_metadata
- 2.28 remove_extra
- 2.29 setts
- 2.30 showinfo
- 2.31 text2movsub
- 2.32 trace_headers
- 2.33 truehd_core
- 2.34 vp9_metadata
- 2.35 vp9_superframe
- 2.36 vp9_superframe_split
- 2.37 vp9_raw_reorder
- 3 另见
- 4 作者
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’
默认值为通过。
插入模式与
rotate
与flip
选项协作工作。插入或移除模式下,任何现有的显示方向消息将被移除。抽取模式会将显示矩阵附加为包的副数据。- 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(复用器h265
或hevc
)输出格式中自动插入。
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=4
与drop=-4
相同。如果指定 drop 则忽略。
两个amount
和drop
接受包含以下变量的表达式:
- ‘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
输入中的解复用时间戳,如果选项为
ts
或dts
,则为演示时间戳,如果选项为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.