linux ffmpeg开发环境搭建(基于ubuntu14.04和ffmpeg3.2)

2023-11-11

本文将介绍ffmpeg开发环境的安装测试和更新的步骤(基于ubuntu14.04和ffmpeg3.2)

1.安装x264
1)libx264需要yasm,所以先安装yasm
sudo apt-get install yasm

2)安装libx264-dev
aptitude install libx264-dev

3)安装libx264库
3.1) 创建并切换到ffmpeg目录
cd
mkdir ffmpeg
cd ffmpeg
3.2) 下载x264源码,并切换到x264目录
git clone git://git.videolan.org/x264
cd x264
3.3) 编译并安装libx264库
./configure –enable-shared –enable-pic
make
make install
安装成功以后便可以看到在/usr/local/lib/目录下生成libx264.so动态库,且头文件位于/usr/local/include/

2.安装依赖包
sudo apt-get install build-essential git-core checkinstall texi2html libfaac-dev \
libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libmp3lame-dev libtheora-dev \
libvorbis-dev libx11-dev libxvidcore-dev libxext-dev libxfixes-dev zlib1g-dev libopus-dev libavdevice-dev

3.安装libfdk-aac
cd ~/ffmpeg
wget -O fdk-aac.tar.gz https://github.com/mstorsjo/fdk-aac/tarball/master
tar xzvf fdk-aac.tar.gz
cd mstorsjo-fdk-aac*
autoreconf -fiv
./configure –prefix=”$HOME/ffmpeg_build” –enable-shared
make
make install

4.安装libvpx
cd ~/ffmpeg
wget http://storage.googleapis.com/downloads.webmproject.org/releases/webm/libvpx-1.5.0.tar.bz2
tar xjvf libvpx-1.5.0.tar.bz2
cd libvpx-1.5.0
PATH=” HOME/bin: PATH” ./configure –prefix=” HOME/ffmpegbuilddisableexamplesdisableunittestsPATH= HOME/bin:$PATH” make
make install
make clean

5.安装ffmpeg
http://www.ffmpeg.org/download.html#releases下载ffmpeg-3.2.tar.bz2,然后执行如下命令:
cd ~/ffmpeg
tar -jxvf ffmpeg-3.2.tar.bz2
cd ffmpeg-3.2
./configure –prefix=/usr/local/ffmpeg –enable-shared –enable-gpl –enable-version3 –enable-nonfree –enable-postproc –enable-pthreads –enable-libfdk-aac –enable-libmp3lame –enable-libtheora –enable-libx264 –enable-libxvid –enable-x11grab –enable-libvorbis
make
make install
编译成功以后变可以在/usr/local/ffmpeg看到so库文件和头文件,接下来便可以使用ffmpeg库了

6.测试Demo
接下来写个测试demo来测试下环境是否搭建成功
1).编写源程序ffmpegtest.c

#include <stdio.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#include <libavfilter/avfilter.h>

#define dbmsgc(fmt, args ...) printf("cong:%s[%d]: "fmt"\n", __FUNCTION__, __LINE__,##args)
//#define dbmsg(fmt, args ...) printf("cong:%s:%s[%d]: "fmt"\n",__FILE__, __FUNCTION__, __LINE__,##args)
int main(int argc, char **argv)
{
    int i=0;
    AVFormatContext *pFormatCtx = NULL;
    avcodec_register_all();
#if CONFIG_AVDEVICE
    avdevice_register_all();
#endif
   avfilter_register_all();
    av_register_all();

    if(avformat_open_input(&pFormatCtx, argv[1], NULL, NULL)!=0)
        return -1; // Couldn't open file

    if(avformat_find_stream_info(pFormatCtx, NULL)<0)
        return -1; // Couldn't find stream inform
    av_dump_format(pFormatCtx,0, 0, 0);

    return 0;
}

2).编写Makefile

FFMPEG=/usr/local/ffmpeg
CC=gcc
CFLAGS=-g -I$(FFMPEG)/include
LDFLAGS = -L$(FFMPEG)/lib/ -lswscale -lswresample -lavformat -lavdevice -lavcodec -lavutil -lavfilter -lpostproc -lm 
TARGETS=fftest
all: $(TARGETS)
fftest:ffmpegtest.c
    $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)

clean:
    rm -rf $(TARGETS)

3)运行
3.1)执行make进行编译,如果没有抱错,会生成fftest可执行文件
3.2)运行./fftest,如果没有报错,说明编译运行通过,说明ffmpeg开发环境搭建成功

7.更新ffmpeg和x264
目前ffmpeg和x264的开发相当活跃,某次的更新可能为你的开发提供更好的特性和现有bug的修改。要更新ffmpeg和x264,你需要先卸载现有包,然后获取更新源代码,重新编译,安装。
1)对于x264的更新:
sudo apt-get remove ffmpeg x264 libx264-dev libvpx
cd ~/ffmpeg/x264
make distclean
git pull
然后再按照前面所说的安装过程,重新编译,安装。
2)对于libvpx的更新:
cd ~/ffmpeg/libvpx-1.5.0
make clean
git pull
然后按照libvpx的安装过程,从configure开始,重新编译,安装。
3)对于libfdk-aac更新
cd ~/ffmpeg/mstorsjo-fdk-aac*
make clean
git pull
然后按照libfdk-aac的安装过程,从configure开始,重新编译,安装。
3)最后是ffmpeg更新:
类似的:
cd ~/ffmpeg/ffmpeg-3.2
make distclean
git pull
然后是./configure,make,checkinstall….
卸载本次安装的包
sudo apt-get remove x264 ffmpeg qt-faststart build-essential git-core checkinstall \
nasm yasm texi2html libfaac-dev lame-ffmpeg libsdl1.2-dev libtheora-dev libvorbis-dev \
libx11-dev libxfixes-dev zlib1g-dev
最好,再删除掉~目录下的所有源码。rm -rf ffmpeg x264 lame libvpx
至此,安装、更新和恢复过程结束。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux ffmpeg开发环境搭建(基于ubuntu14.04和ffmpeg3.2) 的相关文章

随机推荐

  • 创新实验_stm32_点灯_流水灯

    创新实验 stm32 点灯 流水灯 软件 步骤 实例 点灯 流水灯 软件 keil stm32cubemx proteus vscode 步骤 实例 点灯 准备 选择芯片 软件配置 编写代码 写入程序 流水灯 注意变量的位数
  • Java写一个猜数字游戏Plus

    之前我写了一个普通的猜数字游戏 那个是猜一个数字 然后提示你猜的大了还是小了 这次在学习完数组后 又来整活了 哈哈 这次写的是系统随机生成10个1 50的数字 自己去猜 不提示大了还是小了 猜出后告诉你猜中了第几个 最后把所有系统生成的随机
  • Pytorch1.4.0+cuda9.2离线安装

    由于训练机无法联网 考虑离线安装pytorch 一 确保已安装cuda和cudnn 这里我安装的是cuda9 2 cudnn7 6 5 二 安装pytorch1 4 pytorch的安装一般来说是使用conda或者pip来安装 我选择使用p
  • 集成电路相关书籍

    注 从此开始 文中提到的书籍都会在公众号对应文章末尾给出链接 不需要在微信后台获取 当然还是可以通过在微信后台回复相关书名获取对应的电子书 在后台看到很多人回复集成电路相关的一些书籍 所以本文就提供一些书籍 书籍链接在公众号本文文末直接获取
  • 数学建模常见模型算法归纳总结

    一 常见模型汇总 在数学建模中 根据具体问题的特点和要求 选择合适的模型和算法是非常重要的 同时需要根据实际情况进行调整和优化 以得到合理和可行的解决方案 二 数学建模四大模型 在数学建模中 通常将数学模型按照其应用目标和任务的不同划分为四
  • 如何重写equals方法

    重写equals方法 我们都知道 如果不对equals方法进行重写的话 那么它默认比较的就是两个对象的地址值是否是一样的 但是我们往往需要比较的是对象的内容是否是一样的 除了几个内置重写了equals方法的类型 我们写的bean一般都要自己
  • python网络爬虫方向的第三方库是_测验9: Python计算生态纵览 (第9周)

    测验9 Python计算生态纵览 第9周 单项选择题 1 以下选项不是Python数据可视化方向第三方库的是 A Matplotlib B Seaborn C Mayavi D Pyramid 正确答案 D Pyramid是Web开发框架库
  • Web自动化测试05:Selenium-CSS定位

    系列文章目录 软件测试功能到自动化学习路线图 2022年最新版技术栈 软件测试01 从了解测试岗位职能和测试流程开始 附作业 软件测试02 6大实际案例手把手教你设计测试点 软件测试03 用例执行以及缺陷管理的学习 附禅道下载使用流程 软件
  • 常用相机投影及畸变模型(针孔

    常用相机投影及畸变模型 1 背景 2 针孔相机投影模型及其畸变模型 2 1 缩略词和术语 2 1 世界坐标系到像素坐标系 2 2 针孔相机模型 2 2 1 世界坐标系到相机坐标系 2 2 2 相机坐标系到像素坐标系 2 3 综述 2 4 内
  • alook浏览器哪个好 夸克浏览器_简单搜索、X浏览器、夸克浏览器、Via几款极简浏览器,到底哪个最好用?...

    1 X浏览器 用过的都说X浏览器的广告拦截很强悍 大小 0 8M 无开屏页 只有安卓版本 用过 Chrome 的 都说X浏览器是好的备胎 无新闻 无推送 无后台 不足1M却小而强大 给你淋漓尽致的浏览体验 极简干净整洁的界面交互 无新闻 无
  • Android获取View宽高的几种方式

    有时我们会有基于这样的需求 当Activity创建时 需要获取某个View的宽高 然后进行相应的操作 但是我们在onCreate onStart中获取View的大小 获取到的值都是0 只是由于View的绘制工程还未完成 和在onCreate
  • 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是: 00000 00001 00010 00011 00100 请按从小到大的顺序输出这32种01串。

    问题描述 对于长度为5位的一个01串 每一位都可能是0或1 一共有32种可能 它们的前几个是 00000 00001 00010 00011 00100 请按从小到大的顺序输出这32种01串 输入格式 本试题没有输入 输出格式 输出32行
  • [极客大挑战 2019]RCE ME 1

    极客大挑战 2019 RCE ME 1 首先打开题目得到 发现是代码审计 传入的code不能大于40 并且不能包含a到z的大小写字符和1到10的数字 我们可以通过不在这个字符集里的字符进行绕过 可以采用异或和取反 这里我采用取反 绕过 执行
  • 如何画好『数据流图』和『业务流程图』

    前言 数据流图 Data Flow Diagram DFD 是一种便于用户理解和分析系统数据流程的图形工具 他摆脱了系统和具体内容 精确的在逻辑上描述系统的功能 输入 输出和数据存储等 是系统逻辑模型的重要组成部分 一 数据流图组成部分 数
  • (深度学习)Pytorch实现MLP并在MNIST数据集上验证

    Pytorch实现MLP并在MNIST数据集上验证 1 综述 2 MNIST数据集 3 代码细节说明 4 详细代码 综述 PyTorch实现MLP并在MNIST数据集上验证 是我所上的模式识别与深度学习课程的第一个实验 主要是给我们练练手熟
  • 进阶自动化测试,你一定要知道的...

    自动化测试指软件测试的自动化 在预设状态下运行应用程序或系统 预设条件包括正常和异常 最后评估运行结果 将人为驱动的测试行为转化为机器执行的过程 自动化测试框架一般可以分为两个层次 上层是管理整个自动化测试的开发 执行以及维护 在比较庞大的
  • 搭建LightPicture开源免费图床系统「公网远程控制」

    文章目录 1 前言 2 Lightpicture网站搭建 2 1 Lightpicture下载和安装 2 2 Lightpicture网页测试 2 3 cpolar的安装和注册 3 本地网页发布 3 1 Cpolar云端设置 3 2 Cpo
  • 2021年漳州三中高考成绩查询,漳州高中学校实力排名,2021年漳州所有的高中分数线排名...

    2018年漳州市重点高中排名 排名学校名称人气所在市类型 1漳州三中1585漳州市省级示范高中 2漳浦道周中学1403漳州市省级示范高中 3诏安县第一中学1377漳州市省级示范高中 4福建省龙海第一中学1267漳州市省级示范高中 5福建省漳
  • Niginx

    基础 流程 分为正向代理和反向代理 在反向代理中 访问地址被nginx所拦截 而后 转发到其他位置 通过server进行处理 其中 server name和listen用来匹配服务器 不针对其后的具体路径 server匹配成功后 通过rew
  • linux ffmpeg开发环境搭建(基于ubuntu14.04和ffmpeg3.2)

    本文将介绍ffmpeg开发环境的安装测试和更新的步骤 基于ubuntu14 04和ffmpeg3 2 1 安装x264 1 libx264需要yasm 所以先安装yasm sudo apt get install yasm 2 安装libx