我正在尝试将 HTTP 实时视频流保存到文件中。我知道为此目的,我需要定期请求 M3U8 文件,解析它以提取媒体片段的 URL,下载片段并重新组合它们。我遇到的问题是找到正确的策略来实现流畅的播放。重新组装的视频总是断断续续,音频跳过等......只有前几秒钟还可以。
我的 M3U8 文件如下所示:
#EXTM3U
#EXT-X-TARGETDURATION:2
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-MEDIA-SEQUENCE:1105
#EXTINF:1.00000,
tmp/video1.ts
#EXTINF:1.00000,
tmp/video2.ts
#EXTINF:1.00000,
tmp/video2.ts
#EXTINF:1.00000,
tmp/video3.ts
#EXTINF:1.00000,
tmp/video4.ts
#EXTINF:1.00000,
tmp/video5.ts
解析文件后,我开始下载所有 TS 文件(一次一个),当我要下载倒数第二个时,我请求一个新的 M3U8 文件。这是错的吗?也许服务器还没有更新段?因此,我要重新下载相同的?在请求新的播放列表之前,我尝试等待 5 秒(number_of_videos * 持续时间),但我仍然遇到提到的播放问题。
关于如何实现流畅播放的任何想法/策略?