Python中的HLS Live Stream API,可从磁盘提供文件

时间:2018-10-01 17:07:11

标签: python python-3.x flask hls

我有一个摄像头来捕获视频,然后我使用FFMPEG对这些视频进行分段以进行HTTP Live Streaming,并生成m3u8文件及其相应的ts文件

我在本地文件夹中创建了所有* .ts文件和* .m3u8文件,我想使用API​​将这些文件提供给客户端

我已经在Python中创建了Flask应用程序

烧瓶API。

@app.route('/videos/<file_name>')
def live_stream(file_name): 
    return send_from_directory("D:\\public", file_name)

HTML代码

<html>
   <body>
      <video width="400" controls>
         <source src="http://127.0.0.1:5000/videos/toystory.m3u8" type="video/mp4">
      </video>
   </body>
</html>

样本m3u8。如您所见,因为我一直将新的ts文件添加到此m3u8文件中以支持实时流传输,所以没有End标签

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:64
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:64.397667,
toystory0.ts

我遇到的问题:

  1. 是否可以使用python库为我提供一种从磁盘上存储的文件中提供HLS流的方法
  2. 即使按照我的提琴手输出来发送文件,我也没有在浏览器中看到视频

1 个答案:

答案 0 :(得分:1)

您需要诸如http://127.0.0.1/videos/<video_directory>/<video_segments>/之类的额外网址来投放细分受众群文件。现在,您的服务器仅提供索引文件。并且您应该使用hls.js播放视频片段。 hls.js发送对分段文件的请求。