比特流滤镜(Bitstream Filters,缩写 bsf )在 FFmpeg 中扮演着重要角色。他们可以修改或提取编码数据中的特定部分,而无需进行完全解码。这在提取元数据、修改封装格式或进行简单的数据转换等情况下非常有用。
比特流滤镜通过选项 -bsf
调用,与 ffmpeg 的 filter 相似,支持多个滤镜连用。使用时,不同的滤镜通过逗号分隔,滤镜参数通过等号赋值,如:
ffmpeg -i INPUT -c:v copy -bsf:v filter1[=opt1=str1:opt2=str2][,filter2] OUTPUT
本系列将解释一些常见的比特流滤镜(一部分译自 FFmpeg 官方文档)。
noise
noise 滤镜可以对数据流进行破坏,或者在不改变封装的情况下丢弃部分数据。该滤镜可在错误兼容性测试中使用。具体用法如:
ffmpeg -i INPUT -c copy -bsf noise output.mkv
滤镜参数
amount -- 数值类型,表示数据流被修改的频率,单位是 Byte。对于输出数据流,该数值越小,被破坏的越严重。例如当取值为 1 时,原始数据流中的每一字节都将被破坏。
dropamount -- 数值类型, 表示数据包被丢弃的频率,单位是包个数。