我学习了关于如何从这里设置RTMP流配置文件的文档/教程:https://www.nginx.com/blog/video-streaming-for-remote-learning-with-nginx/,它非常直接。但是,我不确定如何在Flask上构建我的后端,将流重定向到某个HLS/DASH视频播放器,该播放器嵌入在HTML模板中,该模板是为了响应请求特定HTTP端点的客户端而发送的。本教程展示了如何在VLC媒体播放器中本地查看,而不是如何将其嵌入到发送到客户端的HTML文件中。我该怎么做呢?作为参考,我在Heroku上托管我的网站,该网站是从这里用其Nginx设置的,https://github.com/heroku/heroku-buildpack-nginx,我不确定是否需要让Heroku安装额外的依赖项来设置RTMP服务器并侦听流。
发布于 2020-06-17 19:27:42
使用HLS协议(HTTP流)。Nginx知道如何完美地呈现HTTP。因此,您只需要创建和更新HLS流的播放列表和片段,以及监视旧片段的删除。为此,有一个nginx 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 installhttps://stackoverflow.com/questions/62329631
复制相似问题