前段时间在翻看电脑里面资料时,发现了之前作的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工做,发现都快忘记完了。今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给你们分享一下,顺便作了一下记录以备之后使用时参考。linux
本文(记录)与目前网上不少关于ffmpeg的文章相比有两个特色:程序员
1、重点不在于ffmpeg的解码部分(这个原本是ffmpeg最大的亮点),为何?前面说了,这是我之前工做的一个整理。何况关于ffmpeg的解码相关文章很是多了,若是你们感兴趣的话,能够后面第五部分增长吧。windows
2、本文是不采用其余第三方的开源多媒体框架而在嵌入式硬件上作多媒体播放项目。第三方的多媒体框架软件隐藏了一些扩展数据的关键处理,不少初学者可能不清楚这些细节问题,因此当ffmepg在本身的解码移植上没有问题,真正在用嵌入式硬件进行解码时会遇到这种问题。微信
本文将分篇来完成,每篇只力求把基本和重要的点讲述清楚,其余细节和不重要的就不详细描述,具体真实应用在此基础上展开细化应该不难实现一个基本基于ffmpeg的嵌入式播放器的需求。文章具体分篇以下:微信公众平台
(一) FFmpeg基本环境搭建及编译框架
(二) FFmpeg的解封装基本处理ui
(三) FFmpeg用于硬件设备解码的关键扩展数据处理spa
(四) FFmpeg用于硬件的track mode基本控制.net
(五) 根据状况吧。。。。。。prototype
1、虚拟机安装
因为是在本身家里,不是工做环境,电脑仍是装的windows7系统,因而开始安装虚拟机,我平时一直都喜欢用VMWare这个虚拟机,上次买了新电脑后一直都没有安装,此次必须先安装上。先是安装了最新的VMWare Workstation 11 + Ubuntu14.04,发现跑起来巨慢无比,难道是个人电脑落伍了?没有办法,也不想去折腾这个事情,仍是老老实实换了一个VMWare Workstation 10.0.1 build-1379776 + Ubuntu-12.04.4-alternate-i386,最好跑起来还凑合。具体虚拟机和Ubuntu的安装过程就不详述了,网上文章一大堆。
2、配置并编译
下载最新版本的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)
1.直接帮你解答ffmpeg相关疑问
2.第一时间得到业内十多个领域技术文章
3.针对文章内疑点提出问题,第一时间回复你,帮你耐心解答
4.让你和原创做者成为很好的朋友,拓展本身的人脉资源
扫一扫下方二维码或搜索微信号coder_online便可关注,咱们能够在线交流。
转载请注明:http://my.oschina.net/u/2336532/blog/393380