LAL v0.36.7釋出,Customize Sub,我有的都給你

2023-07-17 21:01:06

Go語言串流媒體開源專案 LAL 今天釋出了v0.36.7版本。

LAL 專案地址:https://github.com/q191201771/lal

老規矩,簡單介紹一下:

▦ Customize Sub,我有的都給你

這是提供給用lalserver做二次開發的小夥伴們的一個重要的功能,業務方可以通過設定回撥函數的方式獲取lalserver內部的流。

獲取到流有什麼用呢,拿lal的衍生專案lalmax來舉例,它基於lalserver的Customize Sub,為所有輸入lalserver中的流擴充套件了srt和webrtc播放的能力。

這裡也簡單介紹一下lalmax,它將會是lal整體版圖中的一個重要專案,它基於lalserver提供的二次開發介面,與第三方庫結合,支援更多的協定、實現更豐富的功能。
相應的,lal專案會持續保持自身無第三方依賴,高效能等特點。
lalmax專案地址: https://github.com/q191201771/lalmax

如果你想更好的理解Custmize Sub,可以先看看與Customize二次開發相關的另外兩篇檔案:

如果你想直接看程式碼:

▦ rtmp相容性優化

  • amf編碼中有兩個不包含有效內容、沒什麼實際卵用的格式叫Undefined和Unsupported,之前lal沒有解析,而現實中竟然真的有使用者端會用它。
  • 相容publish信令中沒有pubType欄位的情況。是的,有的使用者端就是這麼任性,關鍵用的人還不少,不相容還不行,氣不氣。
  • 處理音訊格式寫在metadata中,而非單獨seq header包的情況。
  • Rtmp2AvPacketRemuxer增加引數用於指定是否需要丟棄SEI

▦ rtsp優化

  • 支援處理時間戳翻滾的情況。也就是時間戳遞增到一個非常大的數後,重新回到一個小的數繼續遞增。
  • package rtsp中新增加了一個設定變數BaseInSessionTimestampFilterFlag,用於決定rtsp合成的幀級別packet的時間戳是使用rtp中的時間戳,還是重置成從0開始。

▦ lalserver優化

  • 將NotifyHandler回撥非同步化到獨立協程中。目的是方便業務方在回撥中自由的呼叫lalserver的其他API介面
  • http api中的流資訊中增加fps欄位
  • 在業務方WithOnHookSession的情況下,停用auto stop relay pull功能

▦ bug修復

首先是一個比較嚴重的bug,會導致hls無法播放,這是在上個版本v0.35.4引入的,原因是轉ts時,pmt中的avc標誌筆誤寫錯了寫成aac了。。

然後是協定處理上的bug:

  • rtp: 修復解析ext擴充套件資料的bug
  • remux: Rtmp2AvPacketRemuxer多slice時append sps錯誤導致花屏
  • rtmp2mpegts: 確保pts有值
  • rtmp: 當ClientSession設定項WriteChanSize為0時,不必要開啟非同步傳送

lalserver中釋放資源的bug:

播放不存在的rtsp流,超時沒有徹底釋放

其他一些小bug:

使用hls中的回撥物件IMuxerObserver前,先檢查是否為nil

▦ 更多

還有一些修改不逐個介紹了,大致如下:

  • [chore] all shell file go to script folder
  • [chore] 所有指令碼+x增加執行許可權,保證CI正常執行
  • [chore] 修復macos平臺readlink沒有-f引數導致指令碼執行失敗的問題
  • [fix] webui: read null when no group
  • [fix] connection: not working set ModWriteChanSize
  • [fix] not working timout for RTMP server session
  • [test] dump rtsp test support video
  • [refactor] 整理所有跨域的程式碼
  • [refactor] 整理所有超時相關的程式碼
  • [refactor] hevc: 暴露hevc.Context中的所有欄位
  • [refactor] avc: 暴露avc.Context中的Sps結構體欄位

以上內容摘取自 《lal CHANGELOG版本紀錄檔》 ,你可以通過原始檔獲取更詳細的內容。

▦ 開發者

感謝參與這個版本的開源貢獻者:yoko(阿亮), ZSC714725(阿響), HustCoderHu(小虎), Jae-Sung Lee(阿韓)

▦ 進一步瞭解lal

微信掃碼加我好友(進微信群):

本文完,祝你今天開心。

yoko, 202307