Compile And Install FFmpeg

(The original link)

STEP 1 - Preparations

Install Xcode(include git)

STEP 2 - Downloading all necessary source codes

Download all file into a folder named FFmpeg on the your disk:

1、FFmpeg source code

  • Open the Terminal
  • write the following in the Terminal : git clone git://git.videolan.org/ffmpeg.git ffmpeg
    Because FFmpeg needs several extra codecs you need some other source codes too.

2、MP3lame source code

  • Go to http://lame.sourceforge.net/download.php
  • Download lame source

3、Ogg, Vorbis and Theora source code

  • Go to http://xiph.org/downloads/
  • Download the following sources: libogg source , libvorbis source and libtheora source.

4、X264 source code (for H264 support)

  • Open the Terminal
  • write the following in the Terminal : git clone git://git.videolan.org/x264.git

5、VP8 source code

  • Open the terminal
  • write the following in the Terminal : git clone git://review.webmproject.org/libvpx.git

6、Xvid source code

  • Go to http://www.xvid.org/Downloads.43.0.html
  • Download Xvid source code

All source code has been downloaded here.

STEP 3 - Compiling all source codes

Open the Terminal and copy paste every line below marked BOLD.

DISK_ID=$(hdid -nomount ram://26214400) && newfs_hfs -v tempdisk ${DISK_ID} && diskutil mount ${DISK_ID} && SOURCE="/Volumes/tempdisk/sw" && COMPILED="/Volumes/tempdisk/compile" && mkdir ${SOURCE} && mkdir ${COMPILED} && export PATH=${SOURCE}/bin:$PATH

Compiling YASM:

cd ${COMPILED} || exit 1
cd yasm-1.2.0
./configure --prefix=${SOURCE} && make -j 4 && make install

Compiling LIBVPX

cd ${COMPILED}
cd libvpx
./configure --prefix=${SOURCE} --disable-shared && make -j 4 && make install

Compiling LAME

cd ${COMPILED}
cd lame-3.99
./configure --prefix=${SOURCE} --disable-shared --enable-static && make -j 4 && make install

Compiling XVIDCORE

cd ${COMPILED}
cd xvidcore
cd build/generic
./configure --prefix=${SOURCE} --disable-shared --enable-static --disable-assembly && make -j 4 && make install
rm ${SOURCE}/lib/libxvidcore.4.dylib

Compiling X264

cd ${COMPILED}
cd x264
./configure --prefix=${SOURCE} --disable-shared --enable-static && make -j 4 && make install && make install-lib-static

Compiling LIBOGG

cd ${COMPILED}
cd libogg-1.3.0
./configure --prefix=${SOURCE} --disable-shared --enable-static && make -j 4 && make install

Compiling LIBVORBIS

cd ${COMPILED}
cd libvorbis-1.3.2
./configure --prefix=${SOURCE} --with-ogg-libraries=${SOURCE}/lib --with-ogg-includes=/Volumes/tempdisk/sw/include/ --enable-static --disable-shared && make -j 4 && make install

Compiling LIBTHEORA

cd ${COMPILED}
cd libtheora-1.1.1
./configure --prefix=${SOURCE} --with-ogg-libraries=${SOURCE}/lib --with-ogg-includes=${SOURCE}/include/ --with-vorbis-libraries=${SOURCE}/lib --with-vorbis-includes=${SOURCE}/include/ --enable-static --disable-shared && make -j 4 && make install

Compiling ZLIB

cd ${COMPILED}
cd zlib
./configure --prefix=${SOURCE} && make -j 4 && make install
rm ${SOURCE}/lib/libz*dylib
rm ${SOURCE}/lib/libz.so*

Compiling FFMPEG

cd ${COMPILED}
cd ffmpeg
export LDFLAGS="-L${SOURCE}/lib"
export CFLAGS="-I${SOURCE}/include"
./configure --prefix=${SOURCE} --enable-gpl --enable-pthreads --disable-ffplay --disable-ffserver --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-avfilter  --enable-filters --arch=x86 --enable-runtime-cpudetect && make -j 4 && make install 

After doing all the hardcore compiling you are awarded a FFmpeg binary in the sw/BIN folder. Here is my binary.

Test:

$> mkdir frames
$> ./ffmpeg -i input.mp4 -r 10 frames/frame%03d.png
$> ./ffmpeg -t 25 -ss 00:00:01 -i loading.mp4 loading.gif

Copy the ffmpeg binary to /usr/local/bin folder so that you can use ffmpeg command anywhere in your terminal directly.

Convert mp4 to gif

ffmpeg -i loading.mp4 -s loading.gif
ffmpeg -t 25 -ss 00:00:01 -i loading.mp4 -s 540x960 loading.gif

-s:adjust gif size

ffmpeg -t 25 -ss 00:00:01 -r 15 -i loading1.mp4 -s 540x960 loading2.gif

-r:adjust frame rate

ffmpeg -i loading.mp4 -i logo.png -filter_complex 'overlay=10:main_h-overlay_h-10' loading1.mp4

Add a logo to the lower left corner

More ffmpeg param at FFmpeg Filters Documentation

Three Steps For Vedio Clip

1、Convert mp4 to png

ffmpeg -i input.mp4 -r 10 frames/frame%03d.png

2、Remove unnecessary files,rename files according to the serial number.

i=0;dir=$(eval pwd); for name in $(ls $dir);do i=$(($i+1));p=$(eval printf "%03d" $i);mv $name frame$p.png; done

3、Convert png to mp4

ffmpeg -r 10 -f image2 -i frame%03d.png -pix_fmt yuv420p loading.mp4
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351

推荐阅读更多精彩内容

  • 大脑是人类在进化过程中先天基因和后天环境交互的产物,用遵循大脑发展规律的方法教养孩子才能够帮助孩子大脑正常发育。 ...
    思百纳阅读 1,693评论 0 1
  • 姓名田华20171030(第49天) 【目标】三个月店纯收入10万元 【与此相关的好种子】 (1)格西老师智库存款...
    竹林千顷田华阅读 120评论 0 2
  • 前言: 朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能...
    _Weak阅读 442评论 0 0
  • 有人问我,什么是幸福?饿的时候,我有包子吃,你没有,这就是幸福!冷的时候,我有棉袄穿,你没有,这就是幸福😁😁😁
    ID___未命名阅读 282评论 0 1