2个版本
0.1.1 | 2023年9月23日 |
---|---|
0.1.0 | 2023年9月21日 |
#673 in 音频
15KB
217 行
HLS音频服务器
轻松通过HLS提供服务。
lib.rs
:
轻松通过HLS提供服务。
示例
use hls_audio_server::m3u8::{HLSConfig, Playlist};
use hls_audio_server::server::HLSServer;
use std::net::SocketAddr;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let hls_config = HLSConfig {
segments_to_keep: 10,
segment_duration: 8.0,
uri: "http://localhost:3000/".into(),
file_extension: ".aac".into(),
};
let hls_playback = Playlist::new(hls_config);
let addr = SocketAddr::from(([0, 0, 0, 0], 3000));
let hls_server = HLSServer::new(addr, hls_playback).await?;
hls_server
.serve_data(move || {
// Serve your encoded audio here
Vec::new()
})
.await?;
Ok(())
}
在这种情况下,播放列表将在http://localhost:3000/stream.m3u8
处可用。
用户负责将音频编码为与RFC 8216第3.4节兼容的格式。会自动添加适当的ID3标签,因此编码的音频不能有ID3标签。
但不必担心!如果您不希望处理不同的编解码器,可以在项目仓库中找到一个使用AAC LC编解码器为.wav文件提供服务的完整示例。
依赖项
~6–16MB
~197K SLoC