一个、编译并安装第三方库

1. libfaac

# tar -zxvf faac-1.28.tar.gz

# cd faac-1.28

# ./configure --prefix=/opt/YOUR_SDK_INSTALL_DIRECTORY --enable-static --disable-shared

# make; make install





2. libmp3lame

# tar -zxvf lame-3.98.4.tar.gz

# cd lame-3.98.4

# ./configure --prefix=/opt/YOUR_SDK_INSTALL_DIRECTORY --enable-static --disable-shared

# make; make install





3.libx264

# tar -xvf x264-snapshot-20110818-2245.tar

# ./configure --prefix=/opt/YOUR_SDK_INSTALL_DIRECTORY --enable-static --disable-shared

# make; make install





4. librtmp

# tar -xvf rtmpdump_git0819.tar

# cd rtmpdump

# cd librtmp

# vim Makefile

#prefix=/usr/local

prefix=YOUR_SDK_INSTALL_DIRECTORY

...

#CRYPTO=OPENSSL

CRYPTO=

...

#SO_LDFLAGS_posix=-shared -Wl,-soname,$@ 

SO_LDFLAGS_posix=-Wl,-soname,$@

...

#SHARED=yes

SHARED=no 





【保存并退出】

# make

# cd ..

# vim Makefile

#prefix=/usr/local

prefix=YOUR_SDK_INSTALL_DIRECTORY

【保存并退出】

# make SYS=darwin XDEF=-DNO_SSL CRYPTO= SHARED=

# make; make install





二、FFmpeg SDK的编译与安装

1. 改动FFmpeg 的 configure

# cd ffmpeg

# vim configure

$vim configure

...

#enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket

enabled librtmp && { check_lib librtmp/rtmp.h RTMP_Socket -lrtmp -lpolarssl -lwinmm -lws2_32 ||

                        check_lib librtmp/rtmp.h RTMP_Socket -lrtmp -lssl -lcrypto -lz ||

                                                die "ERROR: librtmp not found or RTMP_Socket() missing, librtmp 





version must be >= 2.2.f"; }





【保存并退出】





2. FFmpeg SDK

# vim ffmpeg_configure.sh

#!/bin/sh





./configure \

--prefix=/opt/YOUR_SDK_INSTALL_DIRECTORY \

--enable-gpl --enable-nonfree --enable-version3 \

--disable-shared --enable-static \

--enable-pthreads --enable-runtime-cpudetect \

--enable-zlib --enable-bzlib \

--enable-postproc \

--extra-cflags='-I/opt/ffmpeg/sdk/ffmpeg-0.8.10.patched.sdk/include -DREDIRECT_DEBUG_LOG' \

--extra-ldflags='-L/opt/ffmpeg/sdk/ffmpeg-0.8.10.patched.sdk/lib -gl' \

--disable-encoder=aac \

--enable-libfaac --enable-encoder=libfaac \

--enable-libmp3lame --enable-encoder=libmp3lame \

--enable-libx264 --enable-encoder=libx264 \

--enable-librtmp \

--enable-avfilter --enable-filter=movie 

【保存并退出】

# chmod +x ffmpeg_configure.sh

# ./ffmpeg_configure.sh

# make; make install





三、应用程序的编译

# gcc output_example.c -g -o output_example 

-I/opt/YOUR_SDK_INSTALL_DIRECTORY/include -L/opt/YOUR_SDK_INSTALL_DIRECTORY/lib  

-lavformat -lavdevice -lavcodec  -lavutil -lavfilter -pthread -ldl -lswscale -lbz2 -lasound  

-lmp3lame -lfaac -lx264 -lrtmp -lz -lm

版权声明:本文博客原创文章,博客,未经同意,不得转载。

国产与第三方库FFmpeg SDK的更多相关文章

  1. ffmpeg第三方库编译记录

    最近在研究ffmpeg的编译,之前使用的Ubuntu,需要安装虚拟机,非常麻烦,所以后来改研究在Windows平台编译. 一开始遇到很多挫折,参考了网上很多的帖子,但要么不全要么内容已过期,经过我的反 ...

  2. Qt编程可不可以结合其他的第三方库和本土API?(有zeroMQ的Qt封装,还可轻易使用Python的库)

    作者:渡世白玉链接:http://www.zhihu.com/question/29030777/answer/59378712来源:知乎著作权归作者所有,转载请联系作者获得授权. 可以,十分可以,你 ...

  3. iOS开发常用第三方库

    UI 动画 网络相关 Model 其他 数据库 缓存处理 PDF 图像浏览及处理 摄像照相视频音频处理 响应式框架 消息相关 版本新API的Demo 代码安全与密码 测试及调试 AppleWatch ...

  4. IOS常用第三方库《转》

    UI 动画 网络相关 Model 其他 数据库 缓存处理 PDF 图像浏览及处理 摄像照相视频音频处理 响应式框架 消息相关 版本新API的Demo 代码安全与密码 测试及调试 AppleWatch ...

  5. Python库,让你相见恨晚的第三方库

    环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具.pyenv – 简单的 Python 版本管理工具.Vex – 可以在虚拟环境中执行命令.virt ...

  6. python第三方库,你要的这里都有

    Python的第三方库多的超出我的想象. python 第三方模块 转 https://github.com/masterpy/zwpy_lst   Chardet,字符编码探测器,可以自动检测文本. ...

  7. iOS 第三方库、插件、知名博客总结

    iOS 第三方库.插件.知名博客总结 用到的组件 1.通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FMDB 本地数据库组件 SDWebImage 多个缩略图 ...

  8. Python3.x:第三方库简介

    Python3.x:第三方库简介 环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex ...

  9. Python常用的标准库以及第三方库有哪些?

    20个必不可少的Python库也是基本的第三方库 读者您好.今天我将介绍20个属于我常用工具的Python库,我相信你看完之后也会觉得离不开它们.他们是: Requests.Kenneth Reitz ...

随机推荐

  1. PL/SQL 游标的使用

     游标的使用 ①游标概念 为了处理SQL 语句,ORACLE 必须分配一片叫上下文( context area )的区域来处理所必需的信息, 当中包含要处理的行的数目.一个指向语句被分析以后的表示 ...

  2. Java 抽象工厂模式

    抽象工厂模式(Abstract Factory Pattern)是工厂方法模式的进一步抽象,其英文原话"Provide an interface for creating families ...

  3. rsync+inotify 实现资源服务器的同步目录下的文件变化时,备份服务器的同步目录更新,以资源服务器为准,去同步其他客户端

    测试环境: 资源服务器(主服务器):192.168.200.95 备份服务器(客户端):192.168.200.89 同步目录:/etc/test 同步时使用的用户名hadoop密码12345 实验目 ...

  4. addChildViewController transitionFromViewController nib storyboard

    本文记录addChildViewController由transitionFromViewController方法nib,storyboard的不同的效果. 在进行切换效果时,注意属于同一个story ...

  5. android传感器;摇抽奖功能

    package com.kane.sensortest; import java.util.Random; import android.hardware.Sensor; import android ...

  6. 如何插上U盘 自动复制内容

    U盘插入自动复制,有效对付那些不肯给PPT的老师,还有一定几率拿到期末考试卷子···有图有真相!业界良心的好东西!!现在看还来得及!!! 代码优化了一下,把不是很重要的都删掉了,这次使用时看不出任何现 ...

  7. Xcode 凝视代码

    #pragma mark ---------------凝视信息-------------------- -(void)RequestSP { // MARK: 凝视信息 // TODO: 凝视信息 ...

  8. HDU 4433 locker 2012 Asia Tianjin Regional Contest 减少国家DP

    意甲冠军:给定的长度可达1000数的顺序,图像password像锁.可以上下滑动,同时会0-9周期. 每个操作.最多三个数字连续操作.现在给出的起始序列和靶序列,获得操作的最小数量,从起始序列与靶序列 ...

  9. C++使用对象指针

    //定义结构 Box.h: #ifndef BOX_H #define BOX_H struct Box{ double length; double width; double height; do ...

  10. [Java][Android][Process] 分享 Process 运行命令行封装类型

    我在以前的文章中提到,使用Java不会有一个问题,创建运行命令来创建太多进程后创建进程行语句. [Android] ProcessBuilder与Runtime.getRuntime().exec分别 ...