A high-performance asynchronous HTTP server built with C++ and Boost.Beast designed for streaming HLS (HTTP Live Streaming) video content. The server efficiently handles video chunk delivery with support for adaptive bitrate streaming and range requests.
- Asynchronous I/O: Non-blocking architecture using Boost.Asio for high concurrency
- HLS Protocol Support: Serves
.m3u8manifest files and.tsvideo segments - HTTP Range Requests: Supports
206 Partial Contentfor efficient video seeking - Adaptive Bitrate: Ready for multi-quality streaming setups
- Cross-Platform: Compatible with Linux, macOS, and Windows systems
# Build the Docker image
docker build -t video-server .
# Run the container with volume mounting
docker run -d -p 8080:8080 -v $(pwd)/www:/app/www --name video-server video-server
# Or use Docker Compose for easier management
docker compose up -d# Configure and build with CMake
mkdir build
cd build
cmake ..
make
# Run the server locally
./server
# Test the server response
curl http://localhost:8080
curl http://localhost:8080/media/hls_output/master.m3u8-
Place video content in
www/media/directory:master.m3u8– HLS manifest filemaster_*.ts– Video chunk files
-
Start the server using either Docker or CMake methods above.
-
Access the player at http://localhost:8080.