有没有办法用Python录制直播?

问题描述 投票:0回答:2

我想用Python自动化视频录制。我从我的代码开始,尝试了一个简单的 .m3u8 文件。但现在我发现 .m3u8 文件会在几秒钟后自动更新。


r = requests.get(url) m3u8_master = m3u8.loads(r.text)

playlist = m3u8.loads(r.text) playlist.data['segments'][0]['uri'] r = requests.get(url2 + playlist.data['segments'][0]['uri']) with open("test.ts", "wb") as f:
    f.write(r.content)

.m3u8 文件:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:11
#EXT-X-MEDIA-SEQUENCE:12634365
#EXTINF:10.0000,
20190221T021754-05-12634365.ts
#EXTINF:10.0000,
20190221T021754-05-12634366.ts
#EXTINF:10.0000,
20190221T021754-05-12634367.ts
#EXTINF:10.0000,
20190221T021754-05-12634368.ts
#EXTINF:10.0000,
20190221T021754-05-12634369.ts
#EXTINF:10.0000,
20190221T021754-05-12634370.ts

.m3u8 几秒钟后文件:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:11
#EXT-X-MEDIA-SEQUENCE:12634366
#EXTINF:10.0000,
20190221T021754-05-12634366.ts
#EXTINF:10.0000,
20190221T021754-05-12634367.ts
#EXTINF:10.0000,
20190221T021754-05-12634368.ts
#EXTINF:10.0000,
20190221T021754-05-12634369.ts
#EXTINF:10.0000,
20190221T021754-05-12634370.ts
#EXTINF:10.0000,
20190221T021754-05-12634371.ts

我只想要一个可以在不使用 ffmpeg 的情况下录制直播的 python 脚本。

python-3.x http-live-streaming
2个回答
1
投票

.m3u8 格式只是告诉在哪里可以找到视频文件以及它们的顺序。 .ts 文件本身包含视频,既然您提到不使用 ffmpeg,我建议运行一个循环来获取所有文件并保存它们。 .ts 文件的好处是它们可以组合成一个文件,因此只要它们是连续的,您就可以将最后一个文件附加到下一个文件。然后运行循环来获取生成的下一个文件。 展示这一点的一个很好的视频是 https://www.youtube.com/watch?v=bytnxnZFLeg 他详细介绍了如何制作静态 .m3u8 文件视频流,但可以轻松地应用于实时视频。


0
投票

最简单的方法是使用vlc播放器,我知道你想用python来做,但也许有些人有类似的需求。

  1. 在工具>首选项>文件>记录目录或文件名中设置目录输出
  2. 打开网络流(ctrl+n)
  3. 一旦开始播放热门录音(播放>录音)
  4. 让播放结束或停止,在指定目录中找到vlc文件
© www.soinside.com 2019 - 2024. All rights reserved.