前提:
电脑的系统为64位Ubuntu16.04TLS及上文所实现的简易直播平台https://blog.csdn.net/zzhang_12/article/details/79789482
目的:
可在外网观看直播平台
Ubuntu下的实现方法:
1)在电脑没有公网Ip的情况下
- 申请一个腾讯云服务器用来测试
- 申请分配的公网Ip为140.143.67.153,端口为22
- 本机电脑ping 140.143.67.153,测试网络是否可ping通
- 在腾讯云服务器上按前两篇文章进行安装部署nginx,修改配置文件,并启动
- 本地推流ffmpeg -re -i rtmp://server/live/high_FMLE_stream -vcodex libx264 -strict -2 -acodex aac -f flv rtmp://140.143.67.153:1935/live/test
- 在任意一台可访问外网的电脑上进行访问,例如使用Potplayer打开链接rtmp://140.143.67.153:1935/live/test进行观看或者通过上文所提到ckplayer进行网页播放
- 使用ngrok进行内网穿透
注意:由于本文所搭建的项目初始阶段在局域网部署,故而需要进行内网穿透实现外网访问,如本机有公网Ip或长期云主机可跳过该功能
- 本文只介绍如果使用ngrok客户端,ngrok服务器搭建可能会在后续博文进行学习
- 关闭防火墙
sudo ufw disable
- 注册账号并下载ngrok客户端 https://ngrok.com/download
- 创建安装目录并将下载客户端解压至安装目录
sudo mkdir /usr/local/ngrok unzip ngrok-stable-linux-amd64.zip sudo mv ngrok /usr/local/ngrok/
- 配置环境变量
gedit /etc/profile export PATH=$PATH:/usr/local/ngrok source /etc/profile
- 登陆ngrok官网后获取一个认证令牌“authtoken”,该令牌绑定到ngrok客户端
./ngrok authtoken 4phRafKmqChGQ1TZWRLN3_3KQrWu2zCMdsD1Q8ZBa9q
- 开启映射,将本机端口映射成一个由ngrok提供的随机公网域名。
./ngrok http 80
2)在电脑有公网Ip的情况下
- 直接将rtmp直播流推至本机分配的公网Ip
注意:与腾讯云服务有所不同
- 由于局域网内多台服务器公用一个公网Ip,本机分配该公网Ip时,映射端口为8088
- 切记,nginx中rtmp下的监听端口必须为8088,否则不能成功推流。
参考:
https://www.jianshu.com/p/f56c049fa1d9