博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FFMpeg编程1 环境搭建
阅读量:6869 次
发布时间:2019-06-26

本文共 2465 字,大约阅读时间需要 8 分钟。

hot3.png

    前些阵子在项目中用到了FFMpeg这个强大的视频处理开源类库。确实,关于这方面的文档太少了,在国内的网站上找了好多,回复大多都是09年以前的。讲述中用到的函数,有的都已经被标为过期。在其官网推荐的两个Demo的网站上的教程,也同样存在这个问题。 自己在摸索中也遇到了很多很多的困难,但大多问题都无法在官方的资料中找到答案。 也是经历了导出搜索资料后又一步一步尝试,最终完成了任务。 虽说对FFMpeg不能说精通到什么程度,但是有些前车之鉴和最新的使用经验分享给可能需要的人。 早就想总结一下了,可任务完成后又有新的事情,一拖再拖。 以后会每隔一段时间把以前的内容总结总结。好了开始:

    首先,我的编程环境是在Linux(Centos 6.3)下搭建的,编程语言用的C语言,没有用C++。虽然CentOS存在的问题是有的类库过于陈旧(比如金山的WPS就安装不上T^T),但其稳定性绝对是不用质疑的。UI的稳定对于开发来说无比重要,这也是命令行界面的魅力啊。(可惜纯Text界面看不了视频啊 :))。如果想在Windows下开发或者在其他Linux环境下开发,配置环境篇文章不大适合你了。不过网上关于在Windows下配置的文章很多,自己google一下吧。 配置好环境,开发中用到的函数可是一样滴。。。
    1. 安装CentOS 6.3  
     Centos不知道为什么,好像不能刻到U盘里头安装,当然你可以用虚拟机,但是我还是用的双系统。 如果有在U盘中安装成功的可以给我扫扫盲。。。具体安装过程我就不赘述了。
    2. 安装第三方软件源RPMForge
     Centos和Fedora 这些基于红帽Linux的系统都是通过yum命令来安装软件的,原理如同Ubuntu的 apt-get。到http://packages.sw.be/   下载RPMForge的rpm包,注意你的操作系统是x86还是x64,这里我只测试过载32位系统的运行情况,所以默认都是描述的32位。双击安装或者命令行安装:输入:

rpm -i rpmforge-release-0.5.2-2.el6.rf.*.rpm
    3. 安装依赖类库:
     安装好上面的软件源之后,安装一些FFMpeg依赖的类库就非常的方便了。大部分的软件包可以通过命令直接安装,省去了手动去官网下载,然后自己编译的麻烦(手动安装的时候有一个最大的问题就是版本不匹配:新版的FFMpeg有可能调用了更新的函数,而安装的类库里没有,所以折腾之后的总结,可以少走弯路啊!)输入以下命令(保证没错 可以复制):
yum -y install lame lame-devel libogg libogg-devel dirac dirac-devel libvorbis libvorbis-devel SDL SDL-devel gsm gsm-devel libvpx libvpx-devel libvpxlame-devel xvidcore xvidcore-devel faac faac-devel opencore-amr opencore-amr-devel yasm faad2 a52dec
    4. 安装zlib-devel
yum install zlib-devel
   这个包很重要,也很容易被忽略。如果不装,会报各种编译错误。
   5. 安装libtheora软件包
    这个包需要自己上网下载以下,注意版本不要错(其他版本的匹配我没有测试过)。输入以下命令:
tar jxf libtheora-1.1.1.tar.bz2      cd libtheora-1.1.1    ./configure --prefix=/usr --with-ogg=/usr --with-vorbis=/usr --with-sdl-prefix=/usr    make    make install
   6. 安装x264
    输入命令:
wget ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2   tar jxf last_x264.tar.bz2    cd x264-snapshot-20110822-2245   ./configure --prefix=/usr --enable-shared    make   make install
    7. 安装FFMpeg
     先下载下来:
wget http://ffmpeg.org/releases/ffmpeg-0.11.1.tar.gz
     然后解压:   
tar zxf ffmpeg-0.11.1.tar.gz
     进入解压后的目录: 
cd ffmpeg-0.11.1
     输入命令:
./configure --prefix=/usr  --enable-avfilter --enable-libdirac --enable-libfaac --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grabmakemake install
到此为止,一切类库都配置好了! 这些类库采用的是动态链接库的生成方式,会生成.so的动态链接文件。下一篇打算介绍一下如何在Eclipse里编译和连接C/C++ Makefile项目,并引入FFMpeg类库。

转载于:https://my.oschina.net/unclegeek/blog/119378

你可能感兴趣的文章
JS练习实例--编写经典小游戏俄罗斯方块
查看>>
简述Linux的启动过程
查看>>
fir.im Weekly - 如何写出零 bug 的代码
查看>>
springboot+postgresql+docker实例
查看>>
[LeetCode] Reverse Vowels of a String
查看>>
Java集合类的排序
查看>>
猴子都能看懂的《Git 分支管理》
查看>>
【面试算法】链表反转
查看>>
Git基本命令学习
查看>>
读书笔记:高性能网站建设
查看>>
镭速(Raysync)文件传输高可用安装部署介绍!
查看>>
使用 Jaeger 完成服务间的链路追踪
查看>>
Java NIO使用及原理分析 (一)
查看>>
「技术层面」剖析B2B供应链系统技术架构的部署方案 ...
查看>>
《淘宝网开店 拍摄 修图 设计 装修 实战150招》一一1.3 数码相机日常使用注意事项...
查看>>
《程序员之禅》一一10.10 淡泊宁静
查看>>
《MATLAB图像处理超级学习手册》一一2.1 矩阵的创建
查看>>
还在用密码登录 ECS?ECS 控制台更安全的 SSH 密钥对 来了
查看>>
哪种编程语言最流行?而这到底又意味着什么
查看>>
为什么企业不对 GPL 侵权采取法律行动
查看>>