Featured image of post 使用livego建推流

使用livego建推流

livego推流

前言

随笔

livego项目地址

livego

命令

安装docker

我的环境是centOS7,如果已经搭好了docker请跳过下一步

1
yum install docker -y

拉取docker镜像

1
sudo docker pull gwuhaolin/livego

ps:如果国内docker下载很慢,请添加国内源

1
vim /etc/docker/daemon.json

添加如下内容,本文使用阿里云docker镜像源示例

1
2
3
{
        "registry-mirrors": ["https://3laho3y3.mirror.aliyuncs.com"]
}

重启服务

1
systemctl daemon-reload
1
systemctl restart docker

启动docker镜像

1
sudo docker run -p 1935:1935 -p 7001:7001 -p 7002:7002 -p 8200:8090 -d gwuhaolin/livego

其中左边的1935,7001,7002,8200都可以改为你需要的端口

防火墙放行端口

前往控制台放行对应端口,本文是1935,7001,7002,8200端口 如果安装了linux的防火墙,还需要自己输入命令放行对应端口 以firewalld为示例

1
firewall-cmd --add-port=1935/tcp --permanent --zone=public

放行四个端口以后,重新载入firewalld

1
firewall-cmd --reload

获取推流token

这里我已经将8090改为了8200

1
curl http://<你的ip地址>:8090/control/get?room=movie

获得token

开始推流

图片-1668871776354 图片-1668872634899 将上一步获得的token填入推流秘钥,服务器填你的域名或者公网ip 图片-1668871755954 图片-1668872634899 保存以后点击开始推流就好啦 写一半端口好像被ban了,烦 等了一下终于好了,现在接着写

客户端连接

本文使用potplayer示例,右键打开连接 图片-1668872688817 图片-1668872634899

确定保存 这就可以啦

防止端口被ban

使用nginx作为反向代理并且使用https证书加密流 nginx配置如下

1
2
3
4
5
6
7
        location /live/ {
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:7002/live/; 
        }

注意这里location /live 和location /live/的区别 如果/live后带/,并且proxy_pass后带/,最终会删除live 举个例子

1
2
3
4
5
6
7
        location /live/ {
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:7002/; 
        }

我想访问的本来是

1
http://<我的域名>:7002/live/movie.m3u8

经过这样代理以后,访问

1
http://<我的域名>/live

则会被反向代理到

1
http://<我的域名>:7002/

如果想要正常访问服务器直播推流,那么应该输入的是

1
http://<我的域名>/live/live/movie.m3u8

再举个例子,如果我的nginx这样配置

1
2
3
4
5
6
7
        location /live/ {
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:7002/live/; 
        }

如果想要正常访问服务器直播推流,那么应该输入的是

1
http://<我的域名>/live/movie.m3u8

是不是很好理解了呢

后记

似乎海外服务器推流很容易被ban端口,这里建议不要用海外服务器作为推流服务器