Go語言流媒體開源項目 LAL 今天發(fā)布了v0.36.7版本。
LAL 項目地址:https://github.com/q191201771/lal
老規(guī)矩,簡單介紹一下:
? Customize Sub,我有的都給你
這是提供給用lalserver做二次開發(fā)的小伙伴們的一個重要的功能,業(yè)務方可以通過設置回調(diào)函數(shù)的方式獲取lalserver內(nèi)部的流。
獲取到流有什么用呢,拿lal的衍生項目lalmax來舉例,它基于lalserver的Customize Sub,為所有輸入lalserver中的流擴展了srt和webrtc播放的能力。
這里也簡單介紹一下lalmax,它將會是lal整體版圖中的一個重要項目,它基于lalserver提供的二次開發(fā)接口,與第三方庫結(jié)合,支持更多的協(xié)議、實現(xiàn)更豐富的功能。
相應的,lal項目會持續(xù)保持自身無第三方依賴,高性能等特點。
lalmax項目地址: https://github.com/q191201771/lalmax
如果你想更好的理解Custmize Sub,可以先看看與Customize二次開發(fā)相關(guān)的另外兩篇文檔:
- 2.6 lalserver 二次開發(fā)(插件化)
- |-- 2.6.1 二次開發(fā)-pub接入自定義流
如果你想直接看代碼:
- lal中相應的API簽名: https://github.com/q191201771/lal/blob/master/pkg/logic/logic.go#L43
- lalmax使用示例: https://github.com/q191201771/lalmax/blob/master/main.go#L39
? rtmp兼容性優(yōu)化
- amf編碼中有兩個不包含有效內(nèi)容、沒什么實際卵用的格式叫Undefined和Unsupported,之前l(fā)al沒有解析,而現(xiàn)實中竟然真的有客戶端會用它。
- 兼容publish信令中沒有pubType字段的情況。是的,有的客戶端就是這么任性,關(guān)鍵用的人還不少,不兼容還不行,氣不氣。
- 處理音頻格式寫在metadata中,而非單獨seq header包的情況。
- Rtmp2AvPacketRemuxer增加參數(shù)用于指定是否需要丟棄SEI
? rtsp優(yōu)化
- 支持處理時間戳翻滾的情況。也就是時間戳遞增到一個非常大的數(shù)后,重新回到一個小的數(shù)繼續(xù)遞增。
- package rtsp中新增加了一個配置變量BaseInSessionTimestampFilterFlag,用于決定rtsp合成的幀級別packet的時間戳是使用rtp中的時間戳,還是重置成從0開始。
? lalserver優(yōu)化
- 將NotifyHandler回調(diào)異步化到獨立協(xié)程中。目的是方便業(yè)務方在回調(diào)中自由的調(diào)用lalserver的其他API接口
- http api中的流信息中增加fps字段
- 在業(yè)務方WithOnHookSession的情況下,停用auto stop relay pull功能
? bug修復
首先是一個比較嚴重的bug,會導致hls無法播放,這是在上個版本v0.35.4引入的,原因是轉(zhuǎn)ts時,pmt中的avc標志筆誤寫錯了寫成aac了。。
然后是協(xié)議處理上的bug:
- rtp: 修復解析ext擴展數(shù)據(jù)的bug
- remux: Rtmp2AvPacketRemuxer多slice時append sps錯誤導致花屏
- rtmp2mpegts: 確保pts有值
- rtmp: 當ClientSession配置項WriteChanSize為0時,不必要開啟異步發(fā)送
lalserver中釋放資源的bug:
播放不存在的rtsp流,超時沒有徹底釋放
其他一些小bug:
使用hls中的回調(diào)對象IMuxerObserver前,先檢查是否為nil
? 更多
還有一些修改不逐個介紹了,大致如下:
- [chore] all shell file go to script folder
- [chore] 所有腳本+x增加執(zhí)行權(quán)限,保證CI正常運行
- [chore] 修復macos平臺readlink沒有-f參數(shù)導致腳本執(zhí)行失敗的問題
- [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] 整理所有超時相關(guān)的代碼
- [refactor] hevc: 暴露hevc.Context中的所有字段
- [refactor] avc: 暴露avc.Context中的Sps結(jié)構(gòu)體字段
以上內(nèi)容摘取自 《lal CHANGELOG版本日志》 ,你可以通過源文檔獲取更詳細的內(nèi)容。
? 開發(fā)者
感謝參與這個版本的開源貢獻者:yoko(阿亮), ZSC714725(阿響), HustCoderHu(小虎), Jae-Sung Lee(阿韓)
? 進一步了解lal
- github
- 官方文檔
- 聯(lián)系作者
微信掃碼加我好友(進微信群):
本文完,祝你今天開心。文章來源:http://www.zghlxwxcb.cn/news/detail-574018.html
yoko, 202307文章來源地址http://www.zghlxwxcb.cn/news/detail-574018.html
到了這里,關(guān)于LAL v0.36.7發(fā)布,Customize Sub,我有的都給你的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!