转换和重新流式传输HLS流

时间:2016-05-25 18:51:49

标签: python streaming audio-streaming hls

我正在尝试做什么:

  • 我的设备(i)无法上网,(ii)正在使用软件 比无法读取HLS播放列表/流。
  • 我有一台服务器,位于这些设备和互联网之间。
  • 我希望它从外部读取HLS流,并将实际的音频内容重新打包成可以由其他设备流式传输的内容。

我得到了什么:

import m3u8
import requests

print("hello")

mus = "http://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/uk/sbr_high/ak/bbc_6music.m3u8"
m = m3u8.load(mus)
r_cache = []
for p in m.playlists:
    r1 = requests.get(p.uri)
    for a in r1.text.split('\n'):
        if a and not a.startswith('#'):
            full = "{}/{}".format(p.base_path, a)
            print("Downloading {}".format(full))
            r2 = requests.get(full)
            r_cache.append(r2)

for i, r in enumerate(r_cache):
    with open('file{}'.format(i), 'wb') as f:
        f.write(r.content)

print("bye")

请原谅丑陋,这只是概念的证明。所以我知道我可以使用HLS网址,解析/使用它来获取实际文件并抓住它们。

我被困的地方 那么如何将其转换为可由其他客户端读取的单个数据流?我可以将它保存到单个文件中,这很简单。

我查看了Python Buffer类,并且对the IO module有了很好的解读,但我看不到任何我想要的东西。

我想要的是:

  • 我可以连续写的某种缓冲......
  • ...只会存储最后x个字节的内容
  • ...可以从中读取而无需通过一个或多个客户删除内容

我暂时对转码等不感兴趣。我们假设客户端可以读取他们从我流式传输的任何实际音频

0 个答案:

没有答案