FFmpeg里的Bitstream Filter

  • Post author:
  • Post category:其他




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.

可以用于底层码流调试。



版权声明:本文为oncealong原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。