在直播系統中,除了直播音視頻之外,有時候還想從主播端發布文本信息等,這些信息可以不通過視頻傳輸通道發送給用戶播放端,但如果傳輸的數據想和視頻保持精准同步,那最好的辦法就是這些信息和視頻數據打包在一起傳輸,並通過h264 sei方式就可以把數據放入h264 Access Unit中傳輸。
擴展SEI有使用場景:
1、公告廣播:推送將相對/絕對時間戳/時間/公告內容發到播放端,播放端實時接收消息並做相應的邏輯處理;
2、沖頂大會:推流端實時將題目分發到播放端,借助於大牛直播SDK低延遲特性,輕松實現“音-畫-題”同步接收;
3、直播:推流端將歌詞/字幕分發到播放端,播放端實時繪制出歌詞;
4、應急指揮/單兵:推送端將GIS信息/現場采集到的數據實時寫入並分發到播放端;
5、在線教育:推流端將激光筆和塗鴉操作分發到播放端,播放端實時划圈划線,實現特定特效。
擴展SEI調用demo(以Windows平台為例):
1. 啟動推送端軟件: SmartPublisherDemo.exe,可到 Github 下載大牛直播SDK的相關測試軟件或demo源碼。
2. 做如下配置:
3. 可以點擊自動發送文本按鈕;
4. 打開播放端SmartPlayer.exe查看數據傳輸播放效果:
擴展SEI調用demo代碼說明:
1. 推送端(對應工程:WIN-PublisherSDK-CPP-Demo):
2. 播放端(對應工程:WIN-PlayerSDK-CPP-Demo):
SEI優勢
1. 不依賴於相關協議,rtsp和rtmp都可以,其他協議只要播放端支持SEI解析的都可以使用;
2. 兼容性很好,如果播放端不支持自定義SEI數據解析,把SEI數據丟給H264解碼器,解碼器只是忽略掉,並不影響正常播放,上述操作也可以用VLC來播放,播放正常,只是不顯示SEI消息;
3. 在視頻幀攜帶,完全和視頻保持同步,這個是其他傳輸通道無法做到的。