Go語言流媒體開源項目 LAL 今天發佈了v0.34.3版本。 LAL 項目地址:https://github.com/q191201771/lal 老規矩,簡單介紹一下: ▦ 一. 音頻G711 新增了對音頻G711A/G711U(也被稱為PCMA/PCMU)的支持。主要表現在: ✒ 1) rtm ...
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
微信掃碼加我好友(進微信群):
本文完,祝你今天開心。