如何按原始格式下载 HLS (m3u8) 视频?

2017-02-08 07:04:44 +08:00
 nikoo
一个普通的 m3u8 URL 例如: http://wscdn.alhls.xiaoka.tv/201713/b4b/079/F69oXuFHQ7Wn0YFW/index.m3u8

如何按原始格式下载其中包含的每个 ts 分片,并且该 m3u8 文件也一同保存在本地
即不需要将多个 ts 分片合并为一个

如何实现这个需求?谢谢各位!
6186 次点击
所在节点    问与答
16 条回复
wjm2038
2017-02-08 07:07:12 +08:00
ffmpeg
nikoo
2017-02-08 07:10:37 +08:00
@wjm2038 谢谢,我发帖之前搜索了很久,使用 ffmpeg 似乎只能将 m3u8 作为输入源然后输出一个合并后的 ts 文件,无法不合并按原始的分片储存每个 ts
onlyice
2017-02-08 07:35:02 +08:00
自己写一个…
onlyice
2017-02-08 07:38:47 +08:00
试试 livestream Python 库
qyz0123321
2017-02-08 07:39:26 +08:00
把这个 ts 直接解析下载存储可好?
Valyrian
2017-02-08 07:46:52 +08:00
第一次见到不要合并视频的= =
saxon
2017-02-08 08:53:14 +08:00
楼主华为?
LINAICAI
2017-02-08 08:53:25 +08:00
不合并太麻烦了,但不是么办法,使用本地内置 web 服务来播放下载好的 ts 切片
LINAICAI
2017-02-08 08:59:28 +08:00
对了,索引文件其实可以使用一个开源库解析的,自己用队列一个个下载好各个 ts 段,当然索引也要保存起来,内建 web 服务指定 root 目录即可模拟播放网络视频,需要注意的是下载完所有片段一定还要修改索引文件里面每个片段的地址,修改成本地的
DlYgod
2017-02-08 10:07:38 +08:00
写个 shell 脚本下载啊 wget
yishanxin
2017-02-08 12:55:04 +08:00
1. curl -O http://wscdn.alhls.xiaoka.tv/201713/b4b/079/F69oXuFHQ7Wn0YFW/index.m3u8
2. for i in `cat index.m3u8| grep ts `;do url=' http://wscdn.alhls.xiaoka.tv/201713/b4b/079/F69oXuFHQ7Wn0YFW/'$i;curl -o $i $url;done

两部搞定 , 自己写个脚本封装下 处理动态拼接 实际下载的链接
mooczz
2017-02-08 13:05:29 +08:00
在 iOS 里实现过,分段下载, m3u8 文件存储在本地
diguoemo
2017-02-08 14:00:05 +08:00
用 youtube-dl 可以很简单的下载
emric
2017-02-08 14:05:04 +08:00
用正则把 m3u8 的内容分解出来,再下载。
em70
2017-02-08 14:05:49 +08:00
m3u8 不能指向本地 ts 文件,可以起一个本地 server , ts 文件放 server 上, m3u8 里的所有链接改为本地 127.0.0.1 的 http 地址,这个 m3u8 就能离线播了
cyp777777
2018-02-19 08:08:34 +08:00
过去 11 天了,楼主还要不。下载每个 ts 后解码就行了,写了个小工具默认合并,如果还需要的话我把取消合并也加上

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/338918

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX