发布了文章2023-02-13
Go语言流媒体开源项目 LAL 今天发布了v0.33.0版本。LAL 项目地址:[链接]老规矩,先挑三个修改简单介绍一下:▌ 一,支持抓取流数据回放调试这个功能可以大幅提高lal用户反馈问题、定位问题的效率,从而提高lal的兼容性。详情我单独写了一篇文档: 《debug dump抓取la...
发布了文章2022-11-11
Go语言流媒体开源项目 LAL 今天发布了v0.32.0版本。距离上个版本刚好一个月时间,LAL 依然保持着高效迭代的状态。LAL 项目地址:[链接]挑三个比较重要的修改简单介绍一下:▌ 一,自动叠加静音音频这个是为了更好的支持 纯视频流 ,解决很多播放器播放纯视频的直播流...
发布了文章2022-03-22
lalserver是纯Golang开发的流媒体服务器。目前已支持RTMP, RTSP(RTP/RTCP), HLS, HTTP[S]/WebSocket[S]-FLV/TS协议。目前已支持多种鉴权防盗链的方式。lal github地址: [链接]
发布了文章2022-02-19
一. lal 简介lal是开源直播流媒体网络传输项目,主要由三部分组成:lalserver:流媒体转发服务器。类似于nginx-rtmp-module等服务,但支持更多的协议,提供更丰富的功能。demo:一些小应用,比如推、拉流客户端,压测工具,流分析工具,调度示例程序等。类似于ffmpeg...
发布了文章2021-04-24
LAL is an audio/video live streaming broadcast server written in Go. It's sort of like nginx-rtmp-module, but easier to use and with more features, e.g RTMP, RTSP(RTP/RTCP), HLS, HTTP[S]-FLV/HTTP-TS, WebSocket-FLV/TS, H264/H265/AAC, relay, cluster...
发布了文章2021-02-17
1 rtmp推流1.1 obs1.1.1 obs采集摄像头1.2 ffmpeg1.2.1 ffmpeg读取文件推送2 rtsp推流2.1 ffmpeg2.1.1 ffmpeg读取文件推流3 rtmp拉流3.1 vlc3.2 ffmpeg3.2.1 ffmpeg拉流保存文件3.3 ffplay3.4 mpv3.5 srs提供的rtmp播放页面(基于adobe flash技术)4 http-flv和https...
发布了文章2020-05-31
runtime.Caller获取源码文件名和行号的方式,是通过查询调用堆栈的信息得到的,这也是为什么调用方需要传入获取栈的层数,也即skip参数。
发布了文章2020-05-24
FFmpeg社区曾经有过一次针对RTMP扩展HEVC的讨论,最终达成的结论是如果Adobe扩展了RTMP,那么FFmpeg才可以接受HEVC扩展。现状是Adobe更新RTMP协议遥遥无期。为推进HEVC视频编码格式在直播方案中的落地,经过CDN联盟讨论,并和主流云服务厂商达成一致,规范了HEVC在RT...
发布了文章2020-05-18
之前写过一篇关于编译ffmpeg的文章,地址: linux安装ffmpeg 本文在那篇基础上,讲怎么编译ffmpeg的播放器ffplay。 本次实验环境: macOS Catalina 10.15.1 FFmpeg 3.4 在ffmpeg目录下执行./configure(携带好需要的参数),输出的信息包含了会编译哪些可执行程序: ...
发布了文章2020-05-10
事情是这样的,线上一个服务,启动后RSS随任务数增加而持续上升,但是过了业务高峰期后,任务数已经下降,RSS却没有下降,而是维持在高位水平。
发布了文章2020-05-01
"老弟在吗,我怀疑Go标准库中的二分查找有bug!" "老哥别慌,源码之前没有秘密,你坐下听我吹吹c++的牛逼。。" 下面这段Go代码,你觉得index的结果是多少? {代码...} index的结果并不是1,而是4。(额,返回4是什么鬼,难道不应该找到就返回对应的下标,找不到就返...
发布了文章2020-01-11
2020年了,给自己加个任务,把redis代码完整读一遍。我新建了一个github项目(地址在文章末尾),会在redis源码之上增加注释,后续也会为其中一些值得拎出来说的点单独写文章。
发布了文章2020-01-01
编写健壮且高性能的网络服务需要付出大量的努力。提高服务性能的方式有很多种,比如优化应用层的代码,更进一步,还可以看看垃圾回收器,操作系统,网络传输,以及部署我们服务的硬件是否有优化空间。
发布了文章2019-12-29
如下Go语言伪代码,开启两个协程,分别对一个结构体变量中的两个相邻的数据成员进行n次原子自增操作,当打开_ [56]byte这个看似多余的代码后,程序运行速度加快了一倍!你知道是为什么吗?
发布了文章2019-11-27
Go创建对象时,如何优雅的传递初始化参数?这里所说的优雅,指的是: 支持传递多个参数 参数个数、类型发生变化时,尽量保持接口的兼容性 参数支持默认值 具体的参数可根据调用方需关心的程度,决定是否提供默认值 Go并不像c++和python那样,支持函数默认参数。所以...