FFMPEG在嵌入式硬件上应用之 —— 基本环境搭建及编译

前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以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即可关注,我们可以在线交流。

时间: 2024-10-12 16:30:30

FFMPEG在嵌入式硬件上应用之 —— 基本环境搭建及编译的相关文章

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

前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了.今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家分享一下,顺便做了一下记录以备以后使用时参考. 本文(记录)与目前网上很多关于ffmpeg的文章相比有两个特点: 一.重点不在于ffmpeg的解码部分(这个本来是ffmpeg最大的亮点),为什么?前面说了,这是我以前工作的一个整理.况且关于ffmpeg的解码相关文章非常多了,如果大家感兴趣的话,可以

【转】Linux(ubuntu14.04)上编译Android4.4源码的环境搭建及编译全过程

原文网址:http://jileniao.net/linux-android-building.html sublime text让我伤心.本来很信任sublime text的自动保存功能,之前使用一直很给力的,但这次让我伤心欲绝啊. 关于Linux(ubuntu14.04)上编译Android源码的环境搭建详细过程都是在sublime text中编辑好的,无奈,这次的数据丢失让我不得不重新来回想手打一次了.可能很多细节问题,这次重新编辑文章时不会记得那么清晰了,还请有问题的朋友在下面留言给我就

FFMPEG入门系列01-QT+FFMPEG4.0 Windows开发环境搭建

Windows环境搭建 FFMPEG官网:http://ffmpeg.org 4.0.2版本源码 源码:<https://ffmpeg.org/releases/ffmpeg-4.0.2.tar.bz2> 4.0.2编译好的文件 下载已经编译好的FFMPEG 网址:https://ffmpeg.zeranoe.com/builds/ 32位下载地址: Shared:包含FFMPEG的dll库文件 <https://ffmpeg.zeranoe.com/builds/win32/share

嵌入式4412开发平台Android系统开发环境搭建以及编译

本文介绍 uboot.Linux3.0.15 和 linux-3.5 内核.Android4.0.3 和Android4.2.2 编译环境的搭建以及编译. 详情了解:http://topeetboard.com更多了解:https://arm-board.taobao.com Uboot.Kernel 以及 Android 的编译环境看似复杂,用户只要抓住以下几个要点就可以 了: 第一:Uboot.Kernel 编译器.编译器在光盘中都有提供,在需要使用的步骤中,会说 明编译器在光盘中的位置.

Linux系统在嵌入式硬件上的移植

=========================        基本常识       ========================= 一. Linux系统的基本构成: 1. loader 2. kernel 3. filesystem 二. 启动步骤: 1. CPU从ROM(如果有的话)的0x0地址开始读取代码,执行loader: 2. Loader初始化ram,并从rom中拷贝uboot或kernel的镜像到ram的指定地址,执行镜像: 3. 如果有uboot,则uboot执行启动前的设

可编程硬件Arduino初探(2)-开发环境搭建

1.介绍 Arduino 是一款便捷灵活.方便上手的开源电子原型平台,包含硬件(各种型号的板)和软件(arduino IDE).它适用于爱好者.艺术家.设计师和对于“互动”有兴趣的朋友们. 详细信息请自行科普: http://www.arduino.cc/ http://baike.baidu.com/view/1268436.htm?fr=aladdin http://en.wikipedia.org/wiki/Arduino 2.官方IDE 下面来搭建环境,arduino官方自己推出了一个简

CentOS7.2 上 Nginx PHP Mariadb 环境搭建

最近有个ERP+PHP-web 測試頁面環境部署需求,需要部署nginx+php的cgi+socket的模式.mysql环境.查看服务端口是否起来,我们习惯使用netstat指令查看,所以如果你的系统里尚未安装netstat,可直接安裝 yum install -y net-tools即可 实验环境: Linux版本:CentOS 7.2 nginx版本:nginx-1.10.1 PHP版本:php-5.6.5 mysql版本:MariaDB-5.5.52 一.首先部署nginx 把相關依賴包安

&lt;1&gt; unity3d 分包与上google play 之环境搭建和各种账号注册

环境:我们游戏是一款重度ARPG网络游戏,unity打包大于200M, 现在需要上google play (需求是<=50M,  海外需求方必须的要求),后面这个会做个系列,以帮助那些有这个需求的同学.(中国大陆开发者的坎坷~~) 1: GOOGLE 开发者账号申请  准备如下东西  1: visa卡一张,保证至少25美元 2: 能访问google play (中国大陆的自己翻墙吧,真是恶心,我用的是付费的翻墙了,这里具体如何翻墙自己百度) 3:申请一个gmail的邮箱,后面注册需要用到 准备好

【码上微服务】- 环境搭建 - Eureka注册中心

一.前言 本章将讲述基于Spring Cloud的注册中心Eureka的简单工程搭建及Docker部署. 二.环境准备 操作系统:CentOS 7.2 项目管理:MAVEN(推荐使用阿里源中央仓库:http://maven.aliyun.com/nexus/content/repositories/central/) 开发IDE:IDEA 所用语言:JAVA 所用容器:Docker 三. Eureka注册中心项目搭建 JAVA工程创建(这里使用了IDEA) 相关的pom.xml <?xml ve