下载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 |