#hls #mpeg-ts #udp #s3

app hls-to-udp

Fetch HLS segments and output as MPEG-TS over UDP

6 stable releases

new 1.0.6 Jan 29, 2025
1.0.4 Jan 28, 2025
1.0.2 Jan 27, 2025

#610 in Command line utilities

Download history 96/week @ 2025-01-22

96 downloads per month

MIT license

18KB
402 lines

HLS VOD to MPEG-TS UDP Multicast Stream

This Rust-based client reads from an HLS M3U8 playlist and rebroadcasts it as MPEG-TS over UDP. It is based off the HLS produced by https://github.com/groovybits/mpegts_to_s3.git and is intended to be used as a relay for replaying that content.

Features

  • Read from HLS M3U8 playlists
  • Rebroadcast as MPEG-TS over UDP

Requirements

  • Rust (latest stable version)
  • Cargo (Rust package manager)

Installation

  1. Build the project:
    cargo build --release
    

Container Deployment

  1. Build the container image:
    # The Dockerfile.rebroadcast and docker-compose.yaml are in the mpegts_to_s3 directory ../ below this one
    cd ../
    podman-compose up --build
    

Usage outside of a container

  1. Run the client with the M3U8 URL and UDP address:

    ./target/release/hls-to-udp -u <M3U8_URL> -o <UDP_ADDRESS>
    

    Example:

    ./target/release/hls-to-udp -u http://example.com/playlist.m3u8 -o 239.0.0.1:1234 -p 100
    

Author: wizard@groovy.org Date: January 27, 2025

Dependencies

~6–19MB
~252K SLoC