文档章节

FFMPEG高级编程第一篇:环境搭建及编译

q
 qiugc
发布于 2015/04/03 10:23
字数 1039
阅读 17
收藏 1

  前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了。今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家分享一下,顺便做了一下记录以备以后使用时参考。

本文(记录)与目前网上很多关于ffmpeg的文章相比有两个特点:

一、重点不在于ffmpeg的解码部分(这个本来是ffmpeg最大的亮点),为什么?前面说了,这是我以前工作的一个整理。况且关于ffmpeg的解码相关文章非常多了,如果大家感兴趣的话,可以后面第五部分增加吧。

二、本文是不采用其他第三方的开源多媒体框架而在嵌入式硬件上做多媒体播放项目。第三方的多媒体框架软件隐藏了一些扩展数据的关键处理,很多初学者可能不清楚这些细节问题,所以当ffmepg在自己的解码移植上没有问题,真正在用嵌入式硬件进行解码时会遇到这种问题。

      本文将分篇来完成,每篇只力求把基本和重要的点讲述清楚,其他细节和不重要的就不详细描述,具体真实应用在此基础上展开细化应该不难实现一个基本基于ffmpeg的嵌入式播放器的需求。文章具体分篇如下:

(一)   FFmpeg基本环境搭建及编译

(二)   FFmpeg的解封装基本处理

(三)   FFmpeg用于硬件设备解码的关键扩展数据处理

(四)   FFmpeg用于硬件的track mode基本控制

(五)   根据情况吧。。。。。。

 

一、虚拟机安装

      由于是在自己家里,不是工作环境,电脑还是装的windows7系统,于是开始安装虚拟机,我平时一直都喜欢用VMWare这个虚拟机,上次买了新电脑后一直都没有安装,这次必须先安装上。先是安装了最新的VMWare Workstation 11 + Ubuntu14.04,发现跑起来巨慢无比,难道是我的电脑落伍了?没有办法,也不想去折腾这个事情,还是老老实实换了一个VMWare Workstation 10.0.1 build-1379776 + Ubuntu-12.04.4-alternate-i386,最好跑起来还凑合。具体虚拟机和Ubuntu的安装过程就不详述了,网上文章一大堆。

二、配置并编译

      下载最新版本的ffmpeg,目前稳定版本是ffmpeg-2.6.1。进入虚拟机解压:

      配置:

 

      然后进行make编译,最后出现错误:

 

      原来忽略了直接在windows的共享目录中,解压到Linux目录中便不会出现这个问题了。当然如果我们编译的不是共享库,而是静态库,也不会出现这个问题,因为没有Linux的链接文件。

在Linux目录下,编译成功,生成我们的动态库:

 

      这样我们生产了我们需要的动态库和头文件。

      大家可能糊涂了,我现在是在pc上编译的,不能用于嵌入式设备上。这个我知道,我也没有办法,现在我已经没有以前的那些ARM的编译环境。大家如果是在实际的交叉环境下,配置ffmpeg的configure时指定交叉编译参数,估计大概如下面的配置:

./configure --prefix=./install --disable-static --enable-shared --enable-gpl --enable-pthreads --cross-prefix=arm-none-linux-gnueabi- --enable-cross-compile --target-os=linux --extra-cflags="-mcpu=arm9 -W -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -Wall" --arch=armv4l --cpu=arm9

      当然这些既是根据具体的环境修改了。这里就不多说,本文只有在PC上来讲解。

 

      转载请注明出处:谢谢合作!

      第一时间获得博客更新提醒,以及更多技术信息分享,欢迎关注个人微信公众平台:程序员互动联盟(coder_online),扫一扫下方二维码或者搜索微信号coder_online即可关注,我们可以在线交流。

 


本文转载自:

共有 人打赏支持
q
粉丝 5
博文 20
码字总数 19649
作品 0
海淀
私信 提问
最新靠谱可用的 Mac 环境下 FFmpeg 环境搭建

大家好,我是光源。 最近在尝试搭建 FFmpeg 开发环境时遇到一个蛋疼的事,Google 了 N 篇文章竟然没有一篇是可以跑起来的! 少部分教程是给出了自我矛盾的配置(是的,按照贴出来的代码和配置...

光源_Android
05/13
0
0
ubantu-16+ndk-r14b 编译 ffmpeg-4.0.2+lame_mp3-3.99.5

1、环境和软件版本 ubantu-16.4.1 ndk-r14b ffmpeg-4.0.2 lame_mp3-3.99.5 2、废话 因为我也是新手,对linux不熟悉,对编译不熟悉,最喜欢的动作就是拿来主义,研究不深,所以不敢保证本文所...

她叫我小渝
07/25
0
0
linux 下安装ffmpeg

1、下载ffmpeg。 2、解压   tar xvfj ffmpeg-0.11.1.tar.bz2   得到解压后的目录是ffmpeg-0.11.1 3、配置   ./configure --enable-shared --prefix=/usr/local/ffmpeg   其中:--ena...

一一无念
2012/10/31
0
0
FFMPEG系列二:linux下下载编译安装ffmpeg(超详细附采坑完整版)

一、官网下载linux版本的ffmpeg源码包 ffmpeg-4.0.tar.xz 此步骤也可以使用git clone下载源码包,本质上是一样的 二、使用xftp将源码包ffmpeg-4.0.tar.xz上传至linux主机(直接使用linux命令...

陈守印
07/24
0
0
linux安装编译配置ffmpeg

1、下载ffmpeg。 下载网址:http://www.ffmpeg.org/download.html 2、解压缩 tar -zxvf ffmpeg-2.0.1.tar.gz 3、编辑profile文件: vi /etc/profile 在文件末尾加上两句话: exportFFMPEG_H...

天下杰论
2015/06/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Rotate Array(leetCode189)

Given an array, rotate the array to the right by k steps, where k is non-negative. Example 1: Input: [1,2,3,4,5,6,7] and k = 3Output: [5,6,7,1,2,3,4]Explanation:rotate 1 s......

woshixin
36分钟前
1
0
给女朋友讲解什么是Optional【JDK 8特性】

前言 只有光头才能变强 前两天带女朋友去图书馆了,随手就给她来了一本《与孩子一起学编程》的书,于是今天就给女朋友讲解一下什么是Optional类。 至于她能不能看懂,那肯定是看不懂的。(学到...

Java3y
56分钟前
2
0
2019年六大新兴信息安全方向

导读 黑客攻击和网络犯罪的威胁正在不断升级,相应的技术“军备竞赛”正愈演愈烈,对于信息安全从业人员来说,掌握最新的信息安全工具,是在信息安全战争中生存下来的关键所在。 从特朗普的手...

问题终结者
今天
1
0
redis扩展-自定义PropertyPlaceholderConfigurer,在spring属性注入之前,手动将properteis合并到spring容器中

背景:spring容器启动过程中,通过PropertyPlaceholderConfigurer读取properties配置文件,并将properties配置文件中的值注入spring bean的属性中, PropertyPlaceholderConfigurer使用方式多...

燃犀
今天
0
0
PostgreSQL SPI 中的错误处理

PostgreSQL SPI 用于在 C 或是其他编程语言编写的扩展函数(存储过程)中调用数据库本身的解析器、规划器和执行器的功能,以及对 SQL 语句进行执行。 在最重要的一个函数 SPI_execute 的文档...

helloclia
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部