LAL v0.34.3釋出,G711音訊來了,Web UI也來了

就想叫yoko發表於2023-04-05

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 進行訪問。

想看截圖的點我, 基本分為三大部分:

  1. 服務的基礎資訊
    • 比如版本、啟動時間等
  2. group列表資訊
    • 比如總共有多少輸入流
    • 比如每條流的名稱,啟動時間,遠端地址,影片編碼格式、寬高,當前位元速率等
  3. 特定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

微信掃碼加我好友(進微信群):

wechat

本文完,祝你今天開心。

相關文章