patch for ffmpeg 0.8.1 or newer; not tested yet.

scassidy [at] llnw.com: it won't compile for ffmpeg 0.8.1 or newer. This trivial patch fixes that
patrick [at] ooyala [dot] com:
 - fixing m3u8 generation for non-live streams (needs review: LIVE streaming still working?)
 - fixing a bunch of deprecation warnings from libavformat and friends
 - segmenting between keyframes like Apple's mediafilesegmenter does, to get more accurate segment sizes (resulting in better seek bar behaviour on iOS devices)
pkoshevoy [at] sorensonmedia.com: unicode / utf8 filename fixes for windows
pkoshevoy [at] sorensonmedia.com:

new parameter: --strict-segment-duration to handle latest commit on "segmenting between keyframes"

Comment:
I disagree with one of the changes contributed by ooyala.  I don't think segments should be started on non-keyframe boundaries.  So, I rewrote the command line parameter parsing so it would not use positional parameters (fixed position for each parameter), but would allow user to specify parameters in any position using a parameter switch.  I've added a switch to satisfy ooyala requirements --strict-segment-duration.  If the switch is not specified the segmenter behaves as it always did, starting segments on keyframe boundary.

Also, on February 10th I submitted a patch to ffmpeg libavformat/mpegtsenc.c, it was merged into ffmpeg master branch on February 11th.  This patch makes httpsegmenter output compatible with JW Player for adaptive bitrate streaming.  Previously the ffmpeg mpeg-ts muxer would emit PAT/PMT packets in a 40 packet period.  JW Player can't decode segments where a keyframe is not preceded with PAT/PMT packets.  I modified ffmpeg mpeg-ts muxer to emit PAT/PMT for every keyframe (except when the video is AVC-Intra where every frame is a keyframe).
jc.bertin [at] axinoe com
- fix for a ffmpeg warning when using URLs like <udp://:1234>
- parameter for pid file.
- parameter for passing options to avformat.
- parameter to set log level.
scott [at] alfter [dot] us: Changes to the playlist spend a long time waiting in the buffer before the OS gets around to writing to disk.  This keeps playback from working while the recording is in progress.