HTTP Live Streaming : The Linux nightmare HTTP Live Streaming : The Linux nightmare linux linux

HTTP Live Streaming : The Linux nightmare


Use libfaac insteam of libmp3lame which eliminates the 0.2 second break.


Elastic Transcoder Service - if you don't need AES encryption just throw your MP3 in an S3 bucket and be done with it:

http://aws.amazon.com/elastictranscoder/

You can then even add Cloudfront CDN support. (P.S. I fully appreciate your pain, this whole space is a nightmare).


For live streaming only, you should try Nginx with RTMP module for this one. https://github.com/arut/nginx-rtmp-module Live HLS works pretty good but with looooong buffer.However, it does not support on-demand HLS streaming.

Piece of module`s config for example

# HLS requires libavformat & should be configured as a separate# NGINX module in addition to nginx-rtmp-module:# ./configure ... --add-module=/path/to/nginx-rtmp-module/hls ...# For HLS to work please create a directory in tmpfs (/tmp/app here)# for the fragments. The directory contents is served via HTTP (see# http{} section in config)## Incoming stream must be in H264/AAC/MP3. For iPhones use baseline H264# profile (see ffmpeg example).# This example creates RTMP stream from movie ready for HLS:## ffmpeg -loglevel verbose -re -i movie.avi  -vcodec libx264 #    -vprofile baseline -acodec libmp3lame -ar 44100 -ac 1 #    -f flv rtmp://localhost:1935/hls/movie## If you need to transcode live stream use 'exec' feature.#application hls {    live on;    hls on;    hls_path /tmp/app;    hls_fragment 5s;}