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