FFmpeg里的Bitstream Filter

2019-09-29 21:12:41 浏览数 (1)

Bitstream Filter

Bitstream Filter: A bitstream filter operates on the encoded stream data, and performs bitstream level modifications without performing decoding. 1. 比特流滤波器作用在编码后的数据上,而不是未压缩的数据。 2. 在不解码的基础上执行比特流级别的修改。

示例1:

ffmpeg -i input.mp4 -codec copy -bsf:v h264_mp4toannexb output.ts

这个是把mp4容器格式改为ts容器格式,需要把h.264的封装格式从mp4改成annexb。

h.264编码有两种封装格式

  1. 一种是annexb模式, 它是传统模式, 有startcode, SPS和PPS在Element Stream中.
  2. 另一种是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. 可以用于底层码流调试。

0 人点赞