【问题标题】:nginx rtmp to hls streamingnginx rtmp 到 hls 流式传输
【发布时间】:2020-08-13 09:19:41
【问题描述】:

我的场景是通过ffmpeg从一个RTSP源拉取数据,发送到nginx-rtmp,使用nginx提供hls播放。网上有很多教程和问答。我关注了这个:

https://docs.peer5.com/guides/setting-up-hls-live-streaming-server-using-nginx/

然而,它惨遭失败。为了让事情更容易理解,我想问一下核心问题:

谁负责创建 m3u8 播放列表文件?

我尝试分两个步骤进行实验:首先,尝试推送本地 mp4 文件并通过 HLS 播放:

按照上面的教程,我尝试使用ffmpeg将本地的mp4文件推送到nginx-rtmp,并使用videojs播放。浏览器报错:

VIDEOJS: ERROR: (CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED) No compatible source was found for this media. 

其次,我已经成功将推送到nginx-rtmp的视频文件保存为一系列flv文件,并且知道可以使用exec_push调用ffmpeg将flv转换为格式与 HLS 兼容。同样,这里的核心问题是,如何创建和更新 m3u8 文件,因为新的视频数据源源不断。

现在,我希望专家帮助我解决第一个问题——通过 HLS 播放静态 mp4 文件。非常感谢任何关于 m3u8 播放列表和 mpeg-ts 文件的教程!

【问题讨论】:

    标签: http-live-streaming rtmp m3u8


    【解决方案1】:

    nginx-rtmp 模块会在新片段到达时自行创建和更新播放列表。

    检查 .m3u8 文件是否在您的 nginx conf 的hls_path 中指定的文件夹下创建故障排除。 Rest 只是 nginx 使用 http 提供文件。 如果可行,请直接在 safari(safari 内置 HLS 播放器)或启用 Chrome(播放 HLS M3u8)扩展程序中尝试 HLS url。 如果可行,问题一定出在您的 player.html 上

    【讨论】:

    • 关键问题是 .m3u8 文件 not 在 hls_path 中创建,这就是我问这个问题的原因。 @sachin-roy
    • 我成功生成了ts和m3u8文件。所以这个问题就解决了。但是,HLS 存在严重的性能问题,我将提出一个新问题。
    • 顺便说一句,原来的问题是Linux文件系统权限不当造成的
    猜你喜欢
    • 2019-03-25
    • 2020-08-20
    • 2019-09-05
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 2021-03-15
    相关资源
    最近更新 更多