Warning: Work in progress, this page is for from completed/correct. When trying to compile FFmpeg under FreeBSD 8.1-RELEASE I got an error: {{{ Error: `ff_h264_cabac_tables+1024+128(%esi)' is not a valid 64 bit base/index expression }}} apparently the linker is broken, but as seen at Solaris [http://blogs.everycity.co.uk/alasdair/2009/05/ffmpeg-64bit-x86_64-amd64-on-solaris-10/ here] there is a workaround, also seen to work at FreeBSD [http://forums.freebsd.org/showthread.php?t=5228 here]. After the {{{./configure}}} phase apply: {{{ echo '#define BROKEN_RELOCATIONS 1' >> config.h }}} Trying this fix did still NOT solve my issue, next is trying a later/better compiler and linker, I will get the job done by clang/llvm for this matter: {{{ make -C /usr/ports/lang/clang install make -C /usr/ports/multimedia/x264 env CFLAGS="-I/usr/local/include -l/usr/local/lib" ./configure --cc=clang \ --cxx=clang --ld=clang --enable-libx264 --enable-gpl --prefix=$HOME/ff/ env CFLAGS="-I/usr/local/include -l/usr/local/lib" gmake install }}} * http://ffmpeg.org/download.html * https://github.com/TooTallNate/segmenter * http://gpac.wp.mines-telecom.fr/downloads/ Issues with moov atom: http://stackoverflow.com/questions/8061798/post-processing-in-ffmpeg-to-move-moov-atom-in-mp4-files-qt-faststart Proper m3u8 multiplexer https://github.com/johnf/m3u8-segmenter Very good moov how-to: http://stackoverflow.com/questions/13010530/live-streaming-through-mp4 {{{ Error: /usr/bin/ld: /home/rvdzwet/ff/lib/libavformat.a(allformats.o): relocation R_X86_64_32 against `ff_a64_muxer' can not be used when making a shared object; recompile with -fPIC }}} Make sure to set --enable-pic at your ./configure phase. Encoding for Android 2.3: https://help.ubuntu.com/community/AndroidVideoEncoding: ffmpeg -i source-video.avi -s 480x320 -vcodec mpeg4 -acodec aac -ac 1 -ar 16000 -r 13 -ab 32000 -aspect 3:2 output-video.mp4 Or heavy lifting: ffmpeg -i source-video.avi -s 432x320 -b 384k -vcodec h264 -flags +loop+mv4 -cmp 256 -partitions +parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -subq 7 -trellis 1 -refs 5 -bf 0 -flags2 +mixed_refs -coder 0 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -qmin 10 -qmax 51 -qdiff 4 -acodec aac output-video.mp4 Encoding for iPhone and iPad: http://stackoverflow.com/questions/12281774/generate-m3u8-file-with-extended-m3u-directives-by-ffmpeg: ffmpeg -i sourcefile.mp4 -vcodec libx264 -acodec libvo_aacenc -b:v 128k -flags -global_header -map 0:0 -map 0:1 -f segment -segment_time 4 -segment_list_size 0 -segment_list testlist.m3u8 -segment_format mpegts stream%05d.ts