前言

随笔

livego项目地址

livego

命令

安装docker

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

yum install docker -y

拉取docker镜像

sudo docker pull gwuhaolin/livego

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

vim /etc/docker/daemon.json

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

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

重启服务

systemctl daemon-reload
systemctl restart docker

启动docker镜像

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为示例

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

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

firewall-cmd --reload

获取推流token

这里我已经将8090改为了8200

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

获得token

开始推流

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

客户端连接

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

确定保存
这就可以啦

防止端口被ban

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

        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
举个例子

        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/; 
        }

我想访问的本来是

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

经过这样代理以后,访问

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

则会被反向代理到

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

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

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

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

        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/; 
        }

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

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

是不是很好理解了呢

后记

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