2个版本

0.1.1 2023年9月23日
0.1.0 2023年9月21日

#673 in 音频

MIT/Apache

15KB
217

HLS音频服务器

轻松通过HLS提供服务。


docs.rs Crates.io

Crates.io


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