比特流濾鏡(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 -- 數值類型, 表示數據包被丟棄的頻率,單位是包個數。