Noa*_*ltz 5 nginx heroku rtmp flask
我已经按照文档/教程了解如何从此处设置 RTMP 流的配置文件: https: //www.nginx.com/blog/video-streaming-for-remote-learning-with-nginx/及其非常简单。但是,我不确定如何在 Flask 上构建后端,以将流重定向到嵌入 HTML 模板中的某个 HLS/DASH 视频播放器,该模板是为了响应请求特定 HTTP 端点的客户端而发送的。本教程展示了如何在 VLC 媒体播放器中本地查看,但没有展示如何将其嵌入到发送到客户端的 HTML 文件中。我该怎么做呢?作为参考,我在 Heroku 上托管我的网站,该网站使用此处的 Nginx 构建包进行设置,https://github.com/heroku/heroku-buildpack-nginx,我不确定是否需要 Heroku 安装额外的设置 RTMP 服务器并侦听流的依赖项。
使用 HLS 协议(HTTP 直播)。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
Run Code Online (Sandbox Code Playgroud)
要生成 HLS,只需指定以下指令:
application myapp {
live on;
hls on;
hls_path /tmp/hls;
hls_fragment 5s;
}
Run Code Online (Sandbox Code Playgroud)
最后,在 http {} 部分中,配置与 HLS 相关的所有内容的返回:
location /hls {
root /tmp;
}
Run Code Online (Sandbox Code Playgroud)
要在浏览器中显示流,请创建包含此类内容的 html 页面(示例):
application myapp {
live on;
hls on;
hls_path /tmp/hls;
hls_fragment 5s;
}
Run Code Online (Sandbox Code Playgroud)
更新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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2690 次 |
| 最近记录: |