Go語言流媒體開源專案 LAL 今天釋出了v0.34.3版本。
LAL 專案地址:https://github.com/q191201771/lal
老規矩,簡單介紹一下:
▦ 一. 音訊G711
新增了對音訊G711A/G711U(也被稱為PCMA/PCMU)的支援。主要表現在:
✒ 1) rtmp G711作為輸入
1.1) 首先是rtmp進,rtmp出
測試方法如下:
# 推流命令:
ffmpeg -re -i testdata/test.flv -vcodec copy -acodec pcm_mulaw -ac 1 -ar 8000 -f flv "rtmp://127.0.0.1/live/test110"
# 播放命令:
ffplay rtmp://127.0.0.1/live/test110
提示,-acodec pcm_mulaw
是G711U,如果想使用G711A,則修改為-acodec pcm_alaw
1.2) 然後是新增了rtmp轉rtsp的支援
# 推流命令:
ffmpeg -re -i testdata/test.flv -vcodec copy -acodec pcm_mulaw -ac 1 -ar 8000 -f flv "rtmp://127.0.0.1/live/test110"
# 播放命令:
ffplay rtsp://127.0.0.1:5544/live/test110
✒ 2) rtsp G711作為輸入
加強了對rtsp轉發rtsp的支援。
對於rtsp進rtsp出的場景,lalserver只需要對rtp資料做轉發即可,理論上是支援所有編碼格式的。
但實際上由於對SDP格式的相容性不夠好,導致對於rtsp2rtsp G711的支援不夠好,新版本做了加強。
# 推流命令:
ffmpeg -re -stream_loop -1 -i testdata//test.flv -acodec pcm_mulaw -ac 1 -ar 8000 -vcodec copy -f rtsp rtsp://localhost:5544/live/test110
# 播放命令:
ffplay rtsp://127.0.0.1:5544/live/test110
✒ 3) 後續
3.1) 當前版本G711 rtsp轉rtmp,只有影片沒有聲音,我們會盡快支援,這個工作已經在進行中了。
3.2) 加強G711在各取樣率下的表現。
3.3) 增加ts等容器協議對G711的支援。
▦ 二. Web UI
在lalserver程式內部增加了一個簡單的Web頁面,啟動lalserver後,在瀏覽器中輸入 http://127.0.0.1:8083/lal.html 進行訪問。
想看截圖的點我, 基本分為三大部分:
- 服務的基礎資訊
- 比如版本、啟動時間等
- group列表資訊
- 比如總共有多少輸入流
- 比如每條流的名稱,啟動時間,遠端地址,影片編碼格式、寬高,當前位元速率等
- 特定group資訊
- 操作方式:點選group列表中的流
- 比如有多少路拉流,拉流的資訊等
頁面支援定時重新整理,把Auto勾選上即可。
頁面是透過lalserver內部的http server渲染的,頁面呼叫lalserver HTTP-API介面動態的獲取資訊。
只使用原生的前端技術,沒有引入第三方的js/css庫。
我們把lal的Go版本最小依賴從1.14升級到1.16,從而使用embed功能將html頁面內嵌到了lalserver可執行程式裡。
這意味著,你在部署lalserver時不需要部署html靜態檔案,只需要部署lalserver可執行程式加配置檔案即可。
後續,我們會在這個頁面上增加所有基於HTTP-API介面的功能,比如傳送命令從遠端拉取rtsp流等。
▦ 三. 小程式卡頓
微信小程式用rtmp推流時,支援一個模式(mode)叫RTC(實時通話),用這個模式推流給lalserver後再從lalserver拉流播放會非常卡。
這個版本修復了這個bug。
▦ 更多
還有一些修改不逐個介紹了,大致如下:
- [feat] rtmp: server session支援傳送ack
- [opt] rtmp: client session 只使用PeerWinAckSize的值作為是否傳送ack的觸發條件
- [refactor] remove deprecated io/ioutil packages
- [opt] rtmp: ClientSession支援定製化tls.Config
- [fix] 修復解析配置檔案中sub_session_hash_key欄位寫錯的bug
- [log] add log when not caching frame by SingleGopMaxFrameNum
- [chore] 增加檢查版本的指令碼check_versions.sh
以上內容摘取自 《lal CHANGELOG版本日誌》 ,你可以透過源文件獲取更詳細的內容。
▦ 開發者
感謝參與這個版本的開源貢獻者: yoko(阿亮), ZSC714725(阿響), jaesung9507(阿韓), liquanqing(阿空), joestarzxh(阿海)
▦ 進一步瞭解lal
微信掃碼加我好友(進微信群):
本文完,祝你今天開心。