LAL v0.34.3发布,G711音频来了,Web UI也来了
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
微信扫码加我好友(进微信群):

本文完,祝你今天开心。
LAL v0.34.3发布,G711音频来了,Web UI也来了的更多相关文章
- LAL v0.32.0发布,更好的支持纯视频流
Go语言流媒体开源项目 LAL 今天发布了v0.32.0版本.距离上个版本刚好一个月时间,LAL 依然保持着高效迭代的状态. LAL 项目地址:https://github.com/q19120177 ...
- jQuery WeUI V0.4.2 发布
http://www.oschina.net/news/71590/jquery-weui-v0-4-2 jQuery WeUI V0.4.2 发布了! jQuery WeUI 中使用的是官方WeUI ...
- Selenium WebDriver 2.34.0 发布,支持Firefox22
Selenium WebDriver 2.34.0 发布,支持Firefox22http://automationqa.com/forum.php?mod=viewthread&tid=270 ...
- [译]基于ASP.NET Core 3.0的ABP v0.21已发布
基于ASP.NET Core 3.0的ABP v0.21已发布 在微软发布仅仅一个小时后, 基于ASP.NET Core 3.0的ABP v0.21也紧跟着发布了. v0.21没有新功能.它只是升级到 ...
- [原]Jenkins(七)---jenkins项目编译测试发布由maven构建的web项目
/** * lihaibo * 文章内容都是根据自己工作情况实践得出. * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/533 ...
- 【转】发布一个基于NGUI编写的UI框架
发布一个基于NGUI编写的UI框架 1.加载,显示,隐藏,关闭页面,根据标示获得相应界面实例 2.提供界面显示隐藏动画接口 3.单独界面层级,Collider,背景管理 4.根据存储的导航信息完成界面 ...
- 发布在IIS上的Web程序,调用服务器的COM组件
场景大致是这样的,在工厂中分布着许多的PDA点,这些PDA点都要进行实时的扫描--打印操作.实现方法是采用网络打印机,然后服务器安装驱动,管理着所有的打印机.然后服务器,发布一个WebService, ...
- Java快速开发平台,JEECG 3.7.7闪电版本发布,增加多套主流UI代码生成器模板
JEECG 3.7.7 闪电版本发布,提供5套主流UI代码生成器模板 导读 ⊙平台性能优化,速度闪电般提升 ⊙提供5套新的主流UI代码生成器模板(Bootstrap表单+Boots ...
- Visual Studio Code v0.9.1 发布
微软的跨平台编辑器 Visual Studio Code v0.9.1 已经发布,官方博客上发布文章Visual Studio Code – October Update (0.9.1):http:/ ...
- 轻量级模块化开发框架 Hasor 核心模块 v0.0.2 发布
首先引用Wiki的介绍一下Hasor: “Hasor是一款开源框架.它是为了解决企业模块化开发中复杂性而创建的.Hasor遵循简单的依赖.单一职责,在开发多模块企业项目中更加有调理.然 而Ha ...
随机推荐
- Sharp7与S7NetPlus 性能测试
介绍 Sharp7和都S7NetPlus是纯C#实现的基于以太网与S7系列的西门子PLC通讯的开源库.都支持.net core 跨平台可以部署在linxu, docker,windwos 中. 测 ...
- js-classList用法学习记录1
classList introduction: 学习后我的个人理解是,在给html中创建的类一系列操作的方法调用. detailed method: 网站具体介绍(菜鸟) add:添加类,已有则不添加 ...
- 一,创建一个electron应用程序
之前我们已经用html+css+js创建了一个项目,现在将这个项目用electron以应用程序呈现. 1,首先新建一个文件夹,从终端进入该文件夹: 2,在该文件夹下执行npm init,初始化该项目. ...
- PINNs的网络大小与过拟合
PINNs中网络越大时,会不会产生过拟合呢 虽然PINNs可以不用到数据,但是我认为物理约束所带来的信息也是有限的 因此当网络变得很大时,也有可能产生过拟合现象吧 但是在神经元分裂那篇文章中,训练停滞 ...
- 洛谷 P2330 [SCOI2005]繁忙的都市 题解
START: 2021-08-05 15:30:20 题目链接: https://www.luogu.com.cn/problem/P2330 题目详情: 城市C是一个非常繁忙的大都市,城市中的道路十 ...
- Docker In Action 学习笔记 根据第二版有所更新
第一章 最简单的 hello_world/Dockerfile FROM busybox:latest CMD ["echo", "hello world"] ...
- flink 启动job命令
0. 启动flink-session ./bin/yarn-session.sh -n 4 -s 3 -jm 2048 -tm 6144 高版本 bin/yarn-session.sh -d -s 3 ...
- CF1422
CF1422 那个博客搭好遥遥无期. A: 看代码就行. #include<bits/stdc++.h> using namespace std; void work() { int a, ...
- PyCharm2018 不使用IPython 不成功--一直显示连接控制台
每次关闭PyCharm时,都提示有后台任务在运行,一开始不知道怎么回事. 另外,发现底部的,python 控制台,启动pycharm时总有错误信息. 后来发现底部状态栏,显示1个 进程在运行. 2个地 ...
- Lua元表应用举例:配置表格转为Lua配置表
把配置表格.xlsx数据转为Lua配置表,其实就是把表格数据用Lua写一遍,这里的实现重点就是setmetatable设置元表. 以下以表格student_info.xlsx举例,展示对应Lua配置表 ...