linux下成功安装调用ffmpeg
1.Linux下加装ffmpeg
官方网站浏览:http://ffmpeg.org/download.html
浏览后上载至Linux预备加装,具体来说Cogl加装包
tar-xjvf ffmpeg-3.3.4.tar.bz2cdffmpeg-3.3.4/
假如那时继续执行configure实用性不然,可能会报如下表所示的严重错误
严重错误的原意是 yasm/nasm 包不存有或是很旧,能采用--disable-yasm停止采用那个快捷键校对,yasm是这款解释器,因此是全然改写了nasm的编订自然环境,转交nasm和gas句法,全力支持x86和amd64x86,因此这儿加装呵呵yasm方可
加装yasm
更多SourceforgeLabVIEW全然免费申领前台朋友圈【数据资料】另行以获取
加装ffmpeg过程中,继续执行./configure时,报yasm/nasm not found or too old. Use –disable-yasm for a crippledbuild严重错误,分析、解决如下表所示:
分析:yasm是编订校对器,ffmpeg为了提高效率采用了编订指令,如MMX和SSE等。因此系统中未加装yasm时,就会报上面严重错误。
解决:加装yasm校对器。加装方法如下表所示:
在http://www.tortall.net/projects/yasm/releases下面找到适合自己平台的yasm版本。然后进行加装。举例如下表所示:
1)浏览:wgethttp://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz2)Cogl:tarzxvfyasm-1.3.0.tar.gz3)切换路径:cdyasm-1.3.04)继续执行实用性:./configure5)校对:make6)加装:makeinstall
加装获得成功后继续回到ffmpegCogl后的目录,继续执行下面命令校对并加装
./configure --enable-shared --prefix=/monchickey/ffmpegmakemakeinstallmake校对过程有点长makeinstall会把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 显示就正常了
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 文件确定名称变更记录;
总结:那时ffmpeg加装和最简单的命令行视频转换就完成了,实际上ffmpeg命令行工具能有很多参数不用编程就能实现强大的功能,那个非常牛
更多SourceforgeLabVIEW全然免费申领前台朋友圈【数据资料】另行以获取。
我告诉你msdn版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!