22.04.25
1,说明
先说结果,延迟小于200ms,非常好。
测试服务器配置:腾讯轻量云服务2C4G 8M
github:https://github.com/gwuhaolin/livego
可以用docker运行。也可以源码编译。
2,服务器操作
下文在服务器centos/ubuntu使用源码编译运行:
#1,先安装go语言
sudo yum install go git #centos
sudo apt instll golang git #ubnutu
#2,下载源码
git clone https://github.com/gwuhaolin/livego.git
#3,编译
cd livego
go build #二选一
make build #二选一
4,运行
./livego
5,输出如下内容
INFO[2022-04-25T14:48:37+08:00]
_ _ ____
| | (_)_ _____ / ___| ___
| | | \ \ / / _ \ | _ / _ \
| |___| |\ V / __/ |_| | (_) |
|_____|_| \_/ \___|\____|\___/
version: 0.0.15
INFO[2022-04-25T14:48:37+08:00] HLS server enable....
INFO[2022-04-25T14:48:37+08:00] RTMP Listen On :1935
INFO[2022-04-25T14:48:37+08:00] HTTP-API listen On :8090
INFO[2022-04-25T14:48:37+08:00] HLS listen On :7002
INFO[2022-04-25T14:48:37+08:00] HTTP-FLV listen On :7001
3,推流操作
首先查询串流码
http://服务器ip:8090/control/get?room=abcde #浏览器输入,查询串流码,data的内容
返回如下(码是假的,我编的):
{"status":200,"data":"rfBd78ti2SMtUuSgD5xAV0YU77zampta7Z7S575KLkIZ9PAm"}
终端推流操作
#1,查询本地摄像头
ffmpeg -list_devices true -f dshow -i dummy
#2,返回信息如下
DirectShow video devices (some may be both video and audio devices)
[dshow @ 000002bd2faaf0c0] "Integrated Camera"
[dshow @ 000002bd2faaf0c0] Alternative name "@device_pnp_\\?\usb#vid_04f2&pid_b6xxxxxxxxxxxxxx我瞎编的"
#3,得到设备名
"Integrated Camera"
#推流
ffmpeg -f dshow -i video="Integrated Camera" -vcodec libx264 -acodec copy -preset:v ultrafast -tune:v zerolatency -vf scale=iw/2:-1 -f flv rtmp://服务器ip:1935/live/rfBd78ti2SMtUuSgD5xAV0YU77zampta7Z7S575KLkIZ9PAm
4,拉流
ffplay -fflags nobuffer -flags low_delay -i rtmp://49.234.16.22:1935/live/abcde
5,总结
试验了SRS和livego,发现还是livego的延迟低,小于200ms,实测不知道多少。
经过验证,如果用obs推流,速度会慢30ms
还需要学习ffmpeg和ffplay命令设置,找到最好的状态。
还需要研究服务器如何自动运行./livego命令,而不是人工手动命令行输入。
声明:
本文采用
BY-NC-SA
协议进行授权,如无注明均为原创,转载请注明转自
走着的小站
本文地址: livego音视频实时传输开源服务器支持rtmp使用ffmpeg和ffplay
本文地址: livego音视频实时传输开源服务器支持rtmp使用ffmpeg和ffplay