Bitstream Filter
Bitstream Filter: A bitstream filter operates on the encoded stream data, and performs
bitstream level
modifications
without performing decoding
.
- 比特流滤波器作用在编码后的数据上,而不是未压缩的数据。
- 在不解码的基础上执行比特流级别的修改。
示例1:
ffmpeg -i input.mp4 -codec copy -bsf:v h264_mp4toannexb output.ts
这个是把mp4容器格式改为ts容器格式,需要把h.264的封装格式从mp4改成annexb。
h.264编码有两种封装格式
- 一种是annexb模式, 它是传统模式, 有startcode, SPS和PPS在Element Stream中.
- 另一种是mp4模式, 一般Mp4, MKV, AVI都没有startcode, SPS和PPS以及其他信息被封装容器中. 每一帧前面是这一帧的长度值, 很多解码器只支持annexb模式, 因此需要对Mp4模式做转换.
再说下为什么另一种封装格式叫annexb,是因为这种封装格式定义在
the Annex B of the ITU-T H.264 specification
。
示例2:
ffmpeg -i in.264 -c copy -bsf:v trace_headers -f null - 2> NALUS.txt
支持 AV1,H.264, H.265, (M)JPEG, MPEG-2, VP9(VP8不支持)
Log trace output containing all syntax elements in the coded stream headers (everything above the level of individual coded blocks). This can be useful for debugging low-level stream issues.
可以用于底层码流调试。