跳转到主要内容

下载HLS流中所有文件的客户端

项目描述

这是一个简单的Python HTTP Live Streaming Client。它消耗远程播放列表列表,并将所有需要的文件保存以在本地提供服务:密钥、段和经过路径归一化的修改后的 m3u8

它还支持备份,即如果同一播放列表在多个服务器上可用,它将跟踪每个服务器状态,并在需要时切换到备份。

通过 config.ini 可以自定义文件的保存位置以及提供服务器信息的URL。

JSON必须类似于

{
    "streams": [
        "nasa": {
            "input-path": "/msfc/Edge.m3u8",
            servers: [
                "http://liveips.nasa.gov.edgesuite.net"
            ]
        }
    ]
}

变体播放列表生成

hlslcient 可以消费多个播放列表并生成一个分组后的变体播放列表。

为此,为每个流包含一个 bandwidth 并在JSON中添加一个组合动作来合并它们

{
    "streams": {
        "Nasa-low": {
            "input-path": "/msfc/Edge.m3u8",
            "servers": ["http://liveips.nasa.gov.edgesuite.net"],
            "bandwidth": 254082
        },
        "Nasa-medium": {
            "input-path": "/msfc/3G.m3u8",
            "servers": ["http://liveips.nasa.gov.edgesuite.net"],
            "bandwidth": 460658
        },
        "Nasa-high": {
            "input-path": "/msfc/Wifi.m3u8",
            "servers": ["http://liveips.nasa.gov.edgesuite.net"],
            "bandwidth": 1080434
        }
    },

    "actions": [
        {
            "type": "combine",
            "input": ["Nasa-low", "Nasa-medium", "Nasa-high"],
            "output": "/msfc/nasa_mbr.m3u8"
        }
    ]
}

转码

hlsclient 还能够使用FFMPEG从视频流创建仅音频的轨道。

为此,添加一个 transcode 动作并在组合动作中包含新的流

"actions": [
    {
        "type": "combine",
        "input": ["Nasa-audio-only", "Nasa-low", "Nasa-medium", "Nasa-high"],
        "output": "/msfc/nasa_mbr.m3u8"
    },
    {
        "type": "transcode",
        "input": "Nasa-low",
        "output": {
            "audio": {
                "Nasa-audio-only": {
                    "path": "Nasa-audio-only.m3u8",
                    "audio-bitrate": 64000,
                    "bitrate": 65000
                }
            }
        }
    }
]

加密

如果您在配置文件中将 encryption=true 设置为,则 hlsclient 将自动使用随机的AES-128密码加密所有流。

运行

要运行客户端,只需运行

$ python -m hlsclient

运行测试

您需要安装ffmpeg和mediainfo。

$ ./runtests

FFmpeg安装

为了使用支持转码功能的当前版本 hlsclient,您必须安装 ffmpeg,并带有 libaac 和 libx264 库。下载它们并按如下方式编译 FFmpeg:

  • libaac:

    ./configure && make && sudo make install
  • libx264:

    ./configure --enable-shared && make && sudo make install
  • FFmpeg:

    ./configure --enable-libx264 --enable-gpl --enable-libfaac --enable-nonfree --enable-shared && make && sudo make install

测试的版本如下

  • libaac:faac-1.28

  • libx264:x264-snapshot-20121030-2245

  • FFmpeg:N-46213-g976175f

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

hlsclient-0.5.3.tar.gz (14.1 kB 查看哈希值)

上传时间

由...支持