nikoo
V2EX  ›  问与答

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

  •  
  •   nikoo · Feb 8, 2017 · 7563 views
    This topic created in 3557 days ago, the information mentioned may be changed or developed.
    一个普通的 m3u8 URL 例如: http://wscdn.alhls.xiaoka.tv/201713/b4b/079/F69oXuFHQ7Wn0YFW/index.m3u8

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

    如何实现这个需求?谢谢各位!
    16 replies  •  2018-02-19 08:08:34 +08:00
    wjm2038
    wjm2038
    Feb 8, 2017 via Android❤️1
    1
    ffmpeg
    nikoo
    nikoo
    OP
    Feb 8, 2017
    2
    @wjm2038 谢谢,我发帖之前搜索了很久,使用 ffmpeg 似乎只能将 m3u8 作为输入源然后输出一个合并后的 ts 文件,无法不合并按原始的分片储存每个 ts
    onlyice
    onlyice
    Feb 8, 2017 via Android
    3
    自己写一个…
    onlyice
    onlyice
    Feb 8, 2017 via Android
    4
    试试 livestream Python 库
    qyz0123321
    qyz0123321
    Feb 8, 2017 via Android
    5
    把这个 ts 直接解析下载存储可好?
    Valyrian
    Valyrian
    Feb 8, 2017 via iPhone
    6
    第一次见到不要合并视频的= =
    saxon
    saxon
    Feb 8, 2017 via iPhone
    7
    楼主华为?
    LINAICAI
    LINAICAI
    Feb 8, 2017 via iPhone
    8
    不合并太麻烦了,但不是么办法,使用本地内置 web 服务来播放下载好的 ts 切片
    LINAICAI
    LINAICAI
    Feb 8, 2017 via iPhone
    9
    对了,索引文件其实可以使用一个开源库解析的,自己用队列一个个下载好各个 ts 段,当然索引也要保存起来,内建 web 服务指定 root 目录即可模拟播放网络视频,需要注意的是下载完所有片段一定还要修改索引文件里面每个片段的地址,修改成本地的
    DlYgod
    DlYgod
    Feb 8, 2017
    10
    写个 shell 脚本下载啊 wget
    yishanxin
    yishanxin
    Feb 8, 2017❤️2
    11
    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
    mooczz
    Feb 8, 2017
    12
    在 iOS 里实现过,分段下载, m3u8 文件存储在本地
    diguoemo
    diguoemo
    Feb 8, 2017 via Android
    13
    用 youtube-dl 可以很简单的下载
    emric
    emric
    Feb 8, 2017
    14
    用正则把 m3u8 的内容分解出来,再下载。
    em70
    em70
    Feb 8, 2017 via Android
    15
    m3u8 不能指向本地 ts 文件,可以起一个本地 server , ts 文件放 server 上, m3u8 里的所有链接改为本地 127.0.0.1 的 http 地址,这个 m3u8 就能离线播了
    cyp777777
    cyp777777
    Feb 19, 2018 via Android
    16
    过去 11 天了,楼主还要不。下载每个 ts 后解码就行了,写了个小工具默认合并,如果还需要的话我把取消合并也加上
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1325 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 19:20 · PVG 03:20 · LAX 11:20 · JFK 14:20
    ♥ Do have faith in what you're doing.