使用从m3u8播放列表中提取特定片段



我希望从给定"开始时间"one_answers"结束unix时间"的m3u8 hls播放列表中提取部分

假设

启动unix时间=1667112116900

结束unix时间=1667112133040

示例输入文件=

#EXTINF:5.9610000000,
/home/aanisnoor/Videos/DVR/segments_test_push/1667112094442.ts
#EXTINF:5.3340000000,
/home/aanisnoor/Videos/DVR/segments_test_push/1667112100495.ts
#EXTINF:5.2380000000,
/home/aanisnoor/Videos/DVR/segments_test_push/1667112106453.ts
#EXTINF:5.4280000000,
/home/aanisnoor/Videos/DVR/segments_test_push/1667112111854.ts
#EXTINF:5.3340000000,
/home/aanisnoor/Videos/DVR/segments_test_push/1667112116984.ts
#EXTINF:5.3330000000,
/home/aanisnoor/Videos/DVR/segments_test_push/1667112122404.ts
#EXTINF:6.6370000000,
/home/aanisnoor/Videos/DVR/segments_test_push/1667112127907.ts
#EXTINF:6.2000000000,
/home/aanisnoor/Videos/DVR/segments_test_push/1667112133401.ts
#EXTINF:6.2000000000,
/home/aanisnoor/Videos/DVR/segments_test_push/1667112139827.ts

所需输出文件=

#EXTINF:5.3340000000,
/home/aanisnoor/Videos/DVR/segments_test_push/1667112116984.ts
#EXTINF:5.3330000000,
/home/aanisnoor/Videos/DVR/segments_test_push/1667112122404.ts
#EXTINF:6.6370000000,
/home/aanisnoor/Videos/DVR/segments_test_push/1667112127907.ts
#EXTINF:6.2000000000,
/home/aanisnoor/Videos/DVR/segments_test_push/1667112133401.ts

我需要从中提取4000多行。很抱歉没有包含代码,因为它非常不完整。Python/C++就可以了。

您不会显示完整的播放列表,但如果您的播放列表中有一个或多个EXT-X-PROGRAM-DATE-TIME标记,则可以轻松地将每个片段的开始与挂钟时间关联起来。然后你可以把它转换成Unix时间,然后很容易地进行比较。

每个片段的隐含时间是PROGRAM-DATE-time的总和,加上该片段前EXTINF的所有持续时间。

在Python中,使用像m3u8这样的库可能最容易做到这一点。

最新更新