Go語言流媒體開源項(xiàng)目 LAL 今天發(fā)布了v0.35.4版本历帚。
LAL 項(xiàng)目地址:https://github.com/q191201771/lal
老規(guī)矩滔岳,簡單介紹一下:
? 一. OBS支持RTMP H265推流
新出的標(biāo)準(zhǔn),一般被稱為enhanced RTMP挽牢,OBS新版(29.1+版本谱煤,點(diǎn)我去下載安裝包)已經(jīng)實(shí)現(xiàn)可以使用,LAL也做了相應(yīng)的適配禽拔,換言之刘离,你可以使用OBS推送H265的RTMP流給LAL了。
Tips: 使用H265的好處是相較于H264睹栖,占用更低的碼率卻擁有更高的圖像質(zhì)量硫惕。
值得注意的幾點(diǎn)細(xì)節(jié):
- LAL轉(zhuǎn)換為其他封裝協(xié)議(比如RTSP、HLS)后磨淌,輸出的協(xié)議依然是標(biāo)準(zhǔn)協(xié)議疲憋,這點(diǎn)和之前沒啥區(qū)別。
- LAL輸出是RTMP/FLV時梁只,依然保持enhanced RTMP格式缚柳,目前適配了enhanced RTMP的播放器只有mpegts.js,后續(xù)ffmpeg和VLC等播放器應(yīng)該也會很快跟上支持搪锣。
- enhanced RTMP和之前金山云搞的HEVC over RTMP(就是codecid=12那個秋忙,國內(nèi)大部分CDN產(chǎn)商都支持了)是兩套東西,LAL兩種格式都支持了构舟,目前的策略是進(jìn)來的RTMP/FLV是啥格式灰追,出去的RTMP/FLV就是啥格式,后續(xù)可能會考慮轉(zhuǎn)換(比如通過配置或url參數(shù)等)狗超。
關(guān)于enhanced RTMP協(xié)議實(shí)現(xiàn)細(xì)節(jié)弹澎、OBS對應(yīng)的使用方法可以看看我們的這篇文章: 《enhanced RTMP》
? 二. G711A/G711U
上個版本支持G711音頻編碼格式時留了個待完成的尾巴,RTSP轉(zhuǎn)RTMP只有視頻沒有聲音努咐,這個版本支持了苦蒿。
G711的整體情況我們正在整理中: https://www.yuque.com/pengrl/public/psxbp37r3yqopnxx
? 三. RTSP TCP/UDP 切換
一個優(yōu)化: 有的RTSP源不支持TCP傳輸音視頻數(shù)據(jù),會在SETUP信令階段給對端回復(fù)status code 461渗稍,用于表明自身不支持TCP佩迟,新版本的LAL收到461后會嘗試切換UDP SETUP团滥。反之UDP切TCP也是一樣的道理。
? 更多
還有一些修改不逐個介紹了报强,大致如下:
- [opt] mpegts根據(jù)編碼格式打包patpmt(提高純視頻流的兼容性)
- [opt] HTTP-API: 支持跨域
- [fix] rtmp: 解析amf strict array
- [fix] rtmp轉(zhuǎn)mpegts處理時間戳錯誤灸姊,導(dǎo)致有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空指針導(dǎo)致崩潰的問題
- [test] unit test for base.DumpFile
以上內(nèi)容摘取自 《lal CHANGELOG版本日志》 ,你可以通過源文檔獲取更詳細(xì)的內(nèi)容秉溉。
? 開發(fā)者
感謝參與這個版本的開源貢獻(xiàn)者:yoko, ZSC714725, joaop, sanenchen, yang heng01~, penglh, LiH0820
? 進(jìn)一步了解lal
本文完力惯,祝你今天開心。
yoko, 202304