前言
随笔
livego项目地址
livego
命令
安装docker
我的环境是centOS7,如果已经搭好了docker请跳过下一步
拉取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
获取推流token
这里我已经将8090改为了8200
1
|
curl http://<你的ip地址>:8090/control/get?room=movie
|
获得token
开始推流
将上一步获得的token填入推流秘钥,服务器填你的域名或者公网ip
保存以后点击开始推流就好啦
写一半端口好像被ban了,烦
等了一下终于好了,现在接着写
客户端连接
本文使用potplayer示例,右键打开连接

确定保存
这就可以啦
防止端口被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/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端口,这里建议不要用海外服务器作为推流服务器