linux下成功安装调用ffmpeg记录

1.Linux下安装ffmpeg

官网下载:http://ffmpeg.org/download.html

下载之后上传至Linux准备安装,首先解压安装包
tar -xjvf ffmpeg-3.3.4.tar.bz2
cd ffmpeg-3.3.4/

 

如果现在执行configure配置的话,可能会报如下的错误:

错误的意思是 yasm/nasm 包不存在或者很旧,可以使用--disable-yasm禁用这个选项编译,yasm是一款汇编器,并且是完全重写了nasm的汇编环境,接收nasm和gas语法,支持x86和amd64指令集,所以这里安装一下yasm即可

2.Linux下安装yasm
官网下载:http://yasm.tortall.net/Download.html 
下载之后上传至Linux准备安装,首先解压安装包
tar -xvzf yasm-1.3.0.tar.gz
cd yasm-1.3.0/
./configure
make
make install
编译参数都是默认的,直接安装到系统中即可

3.Linux下安装ffmpeg
安装成功之后继续回到ffmpeg解压后的目录,执行下面命令编译并安装
./configure --enable-shared --prefix=/monchickey/ffmpeg
make
make install

make编译过程有点长
make install会把ffmpeg相关执行程序、头文件、lib库安装在/monchickey/ffmpeg/下
耐心等待完成之后执行
cd /monchickey/ffmpeg/

进入安装目录,查看一下发现有bin,include,lib,share这4个目录
bin是ffmpeg主程序二进制目录
include是C/C++头文件目录
lib是编译好的库文件目录
share是文档目录

然后进入bin目录,执行
 ./ffmpeg -version
 查看当前版本的详细信息,默认情况下一般会报
libavdevice.so.57: cannot open shared object file: No such file or directory
原因是lib目录未加载到链接到系统库中

系统ld目录列表在/etc/ld.so.conf中,打开文件会发现,
里面引用了/etc/ld.so.conf.d/下面所有的.conf文件,比如mariadb-x86_64.conf

创建一个文件并写入lib路径即可,执行命令: vim /etc/ld.so.conf.d/ffmpeg.conf
 然后添加一行内容: /monchickey/ffmpeg/lib 
之后保存并退出,然后执行 ldconfig 使配置生效,
现在再次执行 ./ffmpeg -version 显示就正常了
 
4.ffmpeg相关库功能

 

 

ffmpeg相关的库主要是以下7个

libavutil:用于多媒体编程,主要包含安全合适的字符串操作函数、数学运算函数、随机数字生产器、数据结构、多媒体处理的相关函数(如对像素和采样格式的计数)等,但它不是libavcodec和libavformat所需的库代码;

libavcodec、libavformat:有些视频文件格式(如AVI)没有指出应该使用哪种编码(如h.264)来解析音频和视频数据,它们只是按视频格式封装音视频数据,所以经常碰到打开视频文件只能听到声音而没有画面,则用libavformat来解析视频文件并将编码流分离出来,libavcodec对流进行解码;

libavdevice:为一些常见的多媒体输入或输出设备提供了抓取和渲染的通用架构,并且很多输入和输出设备,如Video4Linux2, VfW, DShow, and ALSA;

libavfilter:提供了一个通用规定音视频过滤架构,包括一些过滤器、源、汇(什么是源、汇,我也没搞清楚,待研究)

libswscale:执行高度优化的图像缩放、色彩、像素格式转换操作

libswresample:执行高度优化的音频重采样、重换算、样本格式转换操作

5.代码调用ffmpeg库接口函数

 

 

代码文件ffmpegmain.c中

 

其中avcodec_register_all();是要使用的接口,要包含"libavcodec/avcodec.h"头文件
运行gcc -o ffmpegmain ffmpegmain.c -I/monchickey/ffmpeg/include -L/monchickey/ffmpeg/lib -lavcodec即可

进行ffmpeg开发,则根据情况调用相关接口功能实现所需要的功能

6.记录注解:
1.ffmpeg代码版本为最新版本,API接口名称会有更新,可查看ffmpeg\doc\ APIchanges 文件确定名称变更记录;

2.本文图片由网络文档获取,ffmpeg版本不同不必细究;

 

  

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值