我的方案是通过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,并使用视频it来播放它。浏览器报告了错误:
VIDEOJS: ERROR: (CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED) No compatible source was found for this media.
其次,我已经成功地将压缩到nginx的视频文件保存为一系列FLV文件,我知道我可以使用exec_push调用ffmpeg
将flv转换成与HLS兼容的格式。同样,这里的核心问题是,如何创建和更新的m3u8文件,因为新的视频数据是无休止的。
现在,我希望专家帮助我解决第一个问题--通过HLS播放静态mp4文件。任何关于m3u8播放列表和mpeg-ts文件的教程也是非常感谢的!
发布于 2020-08-13 01:56:40
当新段到达时,nginx模块自行创建并更新播放列表。
要排除故障,请检查.m3u8文件是否在nginx的hls_path
中指定的文件夹下创建。Rest只是使用http提供文件的nginx。如果可以的话,可以直接在safari (safari获得内置的HLS播放器)或Chrome (Play HLS M3u8)扩展中使用HLS url。如果这样做有效,那么问题就必须发生在您的player.html上。
https://stackoverflow.com/questions/63391950
复制相似问题