Go語言流媒體開源專案 LAL 今天釋出了v0.33.0版本。
LAL 專案地址:https://github.com/q191201771...
老規矩,先挑三個修改簡單介紹一下:
▌ 一,支援抓取流資料回放除錯
這個功能可以大幅提高lal使用者反饋問題、定位問題的效率,從而提高lal的相容性。
詳情我單獨寫了一篇文件: 《debug dump抓取lal流除錯》
▌ 二,HTTP-API和HTTP-Notify回撥為HLS協議提供更豐富的資訊
我們都知道,HLS是客戶端持續性發起一個又一個HTTP請求,每次獲取一個TS流片段檔案的方式來播放的。
這種短連線的方法導致服務端不好區分不同的播放者,也不好判斷播放者開始播放、結束播放的時間點。
此次,我們透過增加302跳轉,給m3u8 url增加一個帶使用者唯一ID的引數,並且給一個使用者的多個TS都增加上該ID,從而支援:
- 獲取hls播放者數量、位元速率等資訊
- 獲取hls開始播放、結束播放的事件通知
這個功能在配置檔案有兩個相關的配置,具體見 hls/sub_session_timeout_ms 和 hls/sub_session_hash_key
如果你不喜歡m3u8 302跳轉帶來的開銷,你也不關心hls的統計與通知的資訊,那麼你就可以透過配置檔案將該功能關閉。
相關文件:
《lalserver HTTP API介面》
《lalserver HTTP Notify(Callback/Webhook)事件回撥》
▌ 三,解析rtp extension擴充套件頭
增加了解析rtp擴充套件頭的邏輯,使得可以更好的支援rtsp流。
▌ 更多修改
還有一些修改不逐個介紹了,大致如下:
- [chore] docker同時支援amd和arm架構
- [feat] demo: analyseflv支援http flv流或flv檔案作為輸入
- [feat] 外掛化例子:增加讀取flv檔案再透過CustomPubSession將資料輸入lalserver的例子
- [opt] rtmp: 縮小打chunk時預分配的記憶體大小
- [opt] 外掛化:Cutsomize Pub支援AvPacket、RtmpMsg兩種輸入資料的方式
- [opt] Gop緩衝功能支援配置單個Gop內的最大緩衝幀數量
- [fix] 修復hls獲取app name失敗的問題
- [fix] flv: 修復ReadAllTagsFromFlvFile中沒有關閉檔案的bug
- [fix] rtmp: 接收buff解析前有效長度檢查
以上內容摘取自 《lal CHANGELOG版本日誌》 ,你可以透過源文件獲取更詳細的內容。
進一步瞭解lal
本文完,祝你今天開心。