配置FFmpeg构建时,默认情况下会启用所有支持的比特流过滤器。 您可以使用configure选项--list-bsfs列出所有可用的列表。
可以使用configure选项--disable-bsfs禁用所有比特流过滤器,并使用选项--enable-bsf = BSF选择性地启用任何比特流过滤器,或者您可以使用选项--disable-bsf= BSF禁用特定比特流过滤器。
ff *工具的选项-bsfs将显示构建中包含的所有受支持的比特流过滤器的列表。
ff *工具每个流应用一个-bsf选项,采用以逗号分隔的过滤器列表,其参数在=后面的过滤器名称后面。
ffmpeg -i INPUT -c:v copy -bsf:v filter1[=opt1=str1:opt2=str2][,filter2] OUTPUT
以下是当前可用的比特流过滤器及其参数(如果有)的描述。
将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及相关格式。
删除数据包末尾的零填充。
从DCA / DTS流中提取核心,删除DTS-HD等扩展。
学习地址:音视频新手快速入门必备系列-FFmpeg+SDL播放器开发实现-学习视频教程-腾讯课堂
【文章福利】免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~
将extradata添加到过滤后的数据包的开头。
freq
附加参数指定应过滤哪些数据包。 它接受以下值:
| 值 | 解释 |
|---|---|
| k | |
| keyframe | 为所有密钥包添加extradata |
| e | |
| all | 为所有数据包添加extradata |
如果未指定,则假定为e。
例如,以下ffmpeg命令强制libx264编码器生成的H.264数据包中的全局标头(从而禁用单个数据包标头),但通过将存储在extradata中的标头添加到密钥数据包来纠正它们:
ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
从E-AC-3流中提取核心,丢弃额外的通道。
某些编解码器允许长期报头(例如,MPEG-2序列报头,或H.264 / HEVC(VPS /)SPS / PPS)in-band发送(即作为包含编码的比特流的一部分ÿ