Go語言流媒體開源項目 LAL 今天發佈了v0.35.4版本。 LAL 項目地址:https://github.com/q191201771/lal 老規矩,簡單介紹一下: ▦ 一. OBS支持RTMP H265推流 新出的標準,一般被稱為enhanced RTMP,OBS新版(29.1+版本,點我 ...
Go語言流媒體開源項目 LAL 今天發佈了v0.35.4版本。
LAL 項目地址:https://github.com/q191201771/lal
老規矩,簡單介紹一下:
▦ 一. OBS支持RTMP H265推流
新出的標準,一般被稱為enhanced RTMP,OBS新版(29.1+版本,點我去下載安裝包)已經實現可以使用,LAL也做了相應的適配,換言之,你可以使用OBS推送H265的RTMP流給LAL了。
Tips: 使用H265的好處是相較於H264,占用更低的碼率卻擁有更高的圖像質量。
值得註意的幾點細節:
- LAL轉換為其他封裝協議(比如RTSP、HLS)後,輸出的協議依然是標準協議,這點和之前沒啥區別。
- LAL輸出是RTMP/FLV時,依然保持enhanced RTMP格式,目前適配了enhanced RTMP的播放器只有mpegts.js,後續ffmpeg和VLC等播放器應該也會很快跟上支持。
- enhanced RTMP和之前金山雲搞的HEVC over RTMP(就是codecid=12那個,國內大部分CDN產商都支持了)是兩套東西,LAL兩種格式都支持了,目前的策略是進來的RTMP/FLV是啥格式,出去的RTMP/FLV就是啥格式,後續可能會考慮轉換(比如通過配置或url參數等)。
關於enhanced RTMP協議實現細節、OBS對應的使用方法可以看看我們的這篇文章: 《enhanced RTMP》
▦ 二. G711A/G711U
上個版本支持G711音頻編碼格式時留了個待完成的尾巴,RTSP轉RTMP只有視頻沒有聲音,這個版本支持了。
G711的整體情況我們正在整理中: https://www.yuque.com/pengrl/public/psxbp37r3yqopnxx
▦ 三. RTSP TCP/UDP 切換
一個優化: 有的RTSP源不支持TCP傳輸音視頻數據,會在SETUP信令階段給對端回覆status code 461,用於表明自身不支持TCP,新版本的LAL收到461後會嘗試切換UDP SETUP。反之UDP切TCP也是一樣的道理。
▦ 更多
還有一些修改不逐個介紹了,大致如下:
- [opt] mpegts根據編碼格式打包patpmt(提高純視頻流的相容性)
- [opt] HTTP-API: 支持跨域
- [fix] rtmp: 解析amf strict array
- [fix] rtmp轉mpegts處理時間戳錯誤,導致有b幀時ffplay播放hls報錯
- [fix] GetSamplingFrequency missing 24000
- [fix] simplifing logic to enable
fragment_duration_ms
on configuration to be under thousands (but not below hundreds)- [fix] 解決CustomizePubSessionContext使用dumpFile空指針導致崩潰的問題
- [test] unit test for base.DumpFile
以上內容摘取自 《lal CHANGELOG版本日誌》 ,你可以通過源文檔獲取更詳細的內容。
▦ 開發者
感謝參與這個版本的開源貢獻者:yoko, ZSC714725, joaop, sanenchen, yang heng01~, penglh, LiH0820
▦ 進一步瞭解lal
微信掃碼加我好友(進微信群):
本文完,祝你今天開心。
yoko, 202304