Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

HTTP Live Streaming, FFMPEG & FFSERVER, and iPhone OS 3

In iPhone OS 3, Apple has introduced HTTP Live Streaming which should allow live streaming of video from the internet. I am currently operating a webcam, which feeds into my server, and is then converted into a flv stream by ffmpeg, and streamed back out using ffserver. Does anyone know how to setup a video stream the iPhone can use using ffmpeg and ffserver? I should be able to re-encode into just about any format on the fly.

like image 538
jcnnghm Avatar asked Jul 07 '09 17:07

jcnnghm


2 Answers

You'll need to build a copy of ffmpeg with a version >= e109a29d6ddb02b2dd58c6c385ebec27f2d23b58 (git) or 18793 (svn). Make sure you also specify the --enable-libx264 flag when you're building. Once you've got that up and running, you can do roughly the following:

ffmpeg -i <input video> -acodec libmp3lame -ac 1 -vcodec libx264 -s 320x240 \
       -level 30 -f mpegts - | \
segmenter - 10 test test.m3u8 http://example.com/path/to/your/files/

i.e. Bring an input file or stream into ffmpeg and pipe an H.264 video with MP3 audio into Apple's segmenter. The segmenter spits out segmented video files and M3U playlists pointing to the segmented files. You'd serve the segmented files and playlists via a web server like Apache.

Obviously you'll want to tweak the ffmpeg and segmenter options substantially to get the results you're after.

like image 101
Nathan de Vries Avatar answered Nov 10 '22 11:11

Nathan de Vries


For those who are interested I've bundled an open source segmenter with a script that will let you use ffmpeg to do this, see my segmented streaming on the iphone project. It can do multi-bitrate segments for the input streams and will transfer the stream segments to a configurable destination via scp, ftp and even up to aws s3.

like image 30
carson Avatar answered Nov 10 '22 10:11

carson