FFmpeg里的Bitstream Filter
- 2019 年 10 月 11 日
- 筆記
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編碼有兩種封裝格式
- 一種是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. 可以用於底層碼流調試。