前言
随笔
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
开始推流
将上一步获得的token填入推流秘钥,服务器填你的域名或者公网ip
保存以后点击开始推流就好啦
写一半端口好像被ban了,烦
等了一下终于好了,现在接着写
客户端连接
本文使用potplayer示例,右键打开连接
确定保存
这就可以啦
防止端口被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端口,这里建议不要用海外服务器作为推流服务器