- 已编辑
- 5楼
前面我们已经基本提到了完成一个直播的思路,但光是这些东西很可能还是要花一些功夫到网上去查别的资料,所以补充一些细节吧。
5. 服务器
Nginx 可以帮助我们完成一个简单的服务器。
首先,下载一个 Nginx,然后启动,你就获得了一个服务器。浏览器打开 127.0.0.1(localhost)你就可以看到 Nginx 的欢迎页面。不过如果你直接把这个粗糙的东西拿去作直播服务器,那是绝对不行的。必须修改其配置文件以便提升性能。
Worker_processes & Worker_connections
我参考的原文章找不到了,这篇或许也可以参考下:https://www.jianshu.com/p/c1045f374442
add_header Cache-Control no-cache;
按照我的理解,没有缓存的直播开始时到直播结束后刷新网页都可以立即获得更改(?)
如果要加入 IPv6 的支持……
Before:
server {
listen 80;
server_name localhost;
After:
server {
listen 80;
listen [::]:80;
server_name localhost;
在浏览器中键入[::1]
即可看到效果。
现在,即使在内网打开您的电脑的 IP(v4),应该也能看到效果。
要让外网也能看到这个服务器需要进一步的操作,可能是内网穿透,也可能是其它方法,这些就看您的喜好了。
在外网使用 IPv6?
如果没有公网 IPv4,也不想搞内网穿透等等方式开 IPv4 服务器,那么纯 IPv6 服务器是一个替代方案。
(IPv4+v6 双栈也一样)
优点:
IPv6 解决了 IPv4 短缺的问题,因此 IPv6 是直接公网的,只要运营商支持,你可以在全球任何地方访问你的 IPv6,也就不需要内网穿透了,直接买一个域名绑上你的 IP 即可。
缺点:
仍然有人无法访问 IPv6,所以出于保证可访问性,现在还是以 IPv4 为主(最多搞双栈)。
当为你的路由器打开 IPv6 支持后,为你的电脑配置好一切,然后用你的手机的流量(手机流量通常默认支持 IPv6)访问你的电脑的 IPv6,一旦成功,就无需其它配置了。
关于如何配置你的服务器与路由器以支持 IPv6 的详细信息,请自行查询。
其它的就是自定义了,可以加一些 Referrer 限制之类的。
6. 前端网页与 Video-js
FFmpeg 一旦生成 m3u8,你就可以开始直播了。把 m3u8 的路径放在前端网页里面,然后把一切都交给服务器和 FFmpeg 就行了。
但等一下,你以为写一个<video>
标签然后src="<m3u8 文件>"
就万事大吉了吗?
等等,别走啊?
HLS can be used with a JavaScript library in browsers that doesn't support it natively as long as they support Media Source Extensions.
实际上用一个插件就可以了
Video-js
官方和网上都有不少信息,我就不提了,有兴趣的可以详细的自定义一番~
这里我只提一点
video-js 的播放框是很难调整大小的,一般用 iframe 把它包起来以便调整大小。
Microsoft Event 用了这种播放器,可以去那里借鉴一些哦
秀一个我的效果: