Nginx RTMP与Flask

问题描述 投票:2回答:1

我已经按照文档教程从这里了解了如何设置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服务器并监听一个流。

nginx flask heroku rtmp
1个回答
1
投票

使用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
© www.soinside.com 2019 - 2024. All rights reserved.