我已经按照文档教程从这里了解了如何设置RTMP流的配置文件。https:/www.nginx.comblogvideo-streaming-for-remote-learning-with-nginx 而且是非常直接的。然而,我不知道如何让我的后端建立在Flask上的流媒体重定向到一些HLSDASH视频播放器,嵌入在HTML模板中,该模板被发送到响应客户端,请求一个特定的HTTP端点。该教程展示了如何在本地的VLC媒体播放器中查看,但没有展示如何将其嵌入到发送到客户端的HTML文件中。我应该如何做呢?作为参考,我将我的网站托管在Heroku上,并从这里安装了Nginx buildpack。https:/github.comheroku-buildpack-nginx。我不确定是否需要Heroku安装额外的依赖关系来设置一个RTMP服务器并监听一个流。
使用HLS协议(HTTP Live Streaming).Nginx知道如何完美地渲染HTTP。所以,你只需要创建和更新HLS流的播放列表和片段,以及监控旧片段的删除。要做到这一点,有一个nginx-rtmp-hls模块。它位于hls目录下,但由于需要ffmpeg包中的libavformat库,所以默认情况下它不被收集。要构建支持HLS的nginx,需要在配置时明确添加这个模块。
./configure --add-module=/path/to/nginx-rtmp-module --add-module=/path/to/nginx-rtmp-module/hls
要生成HLS,只需指定以下指令。
application myapp {
live on;
hls on;
hls_path /tmp/hls;
hls_fragment 5s;
}
最后,在http {}部分,配置所有与HLS相关的返回。
location /hls {
root /tmp;
}
为了在浏览器中显示流,创建一个包含这些内容的html页面(例子)。
<video width="600" height="300" controls="1" autoplay="1" src="http://example.com/hls/mystream.m3u8"></video>
更新1:
你附上了Nginx安装教程的链接,所以我参考了他们的 "使用RTMP模块编译NGINX "步骤,并对HLS模块进行了修改。
$ cd /path/to/build/dir
$ git clone https://github.com/arut/nginx-rtmp-module.git
$ git clone https://github.com/nginx/nginx.git
$ cd nginx
$ ./auto/configure --add-module=../nginx-rtmp-module --add-module=../nginx-rtmp-module/hls
$ make
$ sudo make install