1. SEI是什么
SEI(Supplemental Enhancement Information)是H264視頻編碼標準中的一種擴展信息,用于向視頻碼流中添加一些額外的輔助信息。這些信息可以在接收方處用來增強視頻的觀看體驗或者對視頻進行后續處理。SEI消息通常會被嵌入在視頻幀的數據流中,但也可以單獨發送。它們的格式由H.264標準定義,包括了消息類型標識符和消息有效負載。,H.265編碼標準同樣支持SEI。
SEI信息本身與視頻的解碼無關,視頻播放過程中,忽略這些信息也不會影響視頻幀的解碼。
SEI類型屬于編碼協議中眾多視頻幀類型中的一種,其類型ID在H264/H265中各不相同。H265協議中對SEI進行擴展,包括了前置SEI和后置SEI。
| 
 | 幀類型 | 編碼標準 | 
| H264_NAL_SEI | 6 | H264 | 
| HEVC_NAL_SEI_PREFIX | 39 | H265 | 
| HEVC_NAL_SEI_SUFFIX | 40 | H265 | 
2. 通過FFmpeg的filter_units獲取SEI信息。
ffmpeg -i input_video.mp4 -c:v copy -bsf:v 'filter_units=pass_types=xxx' output
參數說明:
-i: 指定待處理的視頻文件。
-c:v :指定輸出文件的視頻幀編碼協議類型, copy表示保持源視頻中的編碼類型不變。
-bsf:v 指定要使用ffmpeg中的 Bitstream filter。 其中的filter_units過濾器主要用來處理視頻幀類型。
filter_units=pass_types=xxx: 表示要提取xxx類型的視頻幀。對于H264的源視頻,取值為6;對于H265的源視頻,取值39-40.
output:是輸出文件,包含了源流中所有SEI內容的結果。其中每一幀SEI都是以start_code開頭,后面接SEI的數據內容。
3. SEI的使用場景。
1. 直播互動: 用于播放特定提示語或展示特定內動。
2. 數據指標統計:編碼時在視頻中插入帶有時間戳信息的SEI,在播放端解析出這些SEI,可統計視頻延遲等數據。