下载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 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 9dc3ea218323995a5ba1b867748d9240654271d12331229fd5b3c607d9eaa9d8 |
|
| MD5 | 39d9c07549b6d623049019fc2d5b0430 |
|
| BLAKE2b-256 | 1621aff2c743d3f55935bde124b20cf9030473bfd869efde538887ea7a5fe80f |