最近和同事一起合作,移植ffmepg到Win8平台上。

Windows Store 要求3个架构X86 X64 ARM, 我们主要做的就是X86和ARM的平台,

X86的平台移植的文章已经很多了。我推荐这篇文章

http://blog.sina.com.cn/s/blog_47612ff10101mri6.html

但这样编译出来的库并不能在WinRT平台上使用。ffmepg引用了很多WinRT的禁止的API,编译是可以过的,但是通过不了WACK,也不能上传到store上面。

解决这个问题,一方面要减少ffmepg的功能,另一个方面要改写一些源代码。好在ffmpeg是一个跨平台的库,这些API都可以找到方法去替代。

另外如果只做本地播放,可以禁止ffmepg的网络,然后再写一个流的protocol注册到ffmpeg里面。

最后的configure 是这样的

./configure --toolchain=msvc --prefix=/home/Jessejiang/Output/  --disable-network --disable-programs --disable-protocols --extra-ldflags=-DWINAPI_FAMILY=WINAPI_FAMILY_APP --disable-dxva2

这样编译之后,还有一些log的API,这个需要找到他们,改一下源码就好。

ARM平台还是有些麻烦的。

首先,我们需要用 “VS201 ARM兼容工具命令提示”,从这个里面启动msys.

关键的一步是在configure 里面加入宏_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE 和_M_ARM

最后加上交叉编译和Link的选项-MACHINE:ARM

最后的configure 是这样的

./configure --toolchain=msvc --disable-programs --disable-network--disable-protocols --extra-cflags="-D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE -D_M_ARM -DWINAPI_FAMILY=WINAPI_FAMILY_APP" --enable-cross-compile --target-os=win32 --arch=win32  --extra-ldflags="-MACHINE:ARM" --disable-dxva2 --prefix=/home/Jessejiang/Output/

这里用没有对ARM代码进行汇编的优化,因为我试过指定arch平台,但是CPU的架构版本我没办法定义。

最后,如果大家需要引用头文件到ffmpeg里面,需要用-I 像这样-ID:\src\win8\include。 但是configure之后不能马上make,需要再config.mak 文件中找到--extra-cflags 选项,把-ID:\src\win8\include 路径加上双引号-I ”D:\src\win8\include“

关于windows phone的移植,我们还没有开始,我猜大概和ARM的差不多。等做到了,我再回来补上。

听说VS13直接支持C99那ffmpeg或许直接就可以用VS编译了。

ffmpeg Win8移植记(一)的更多相关文章

  1. ffmpeg Win8移植记(二)

    接着上回说,http://www.cnblogs.com/zjjcy/p/3384517.html 上回移植了ffmpeg在ARM上面,只是纯C的代码,没有做汇编的优化.因为ffmpeg的ARM汇编是 ...

  2. ffmpeg之移植到ARM

    移植方法分为两种:第一种手工移植,第二种buildroot移植. 第一种手工移植: 优点:灵活性高 缺点:重复工作多 一.配置 ./configure --enable-memalign-hack - ...

  3. 【转】FFMPEG 库移植到 VC 需要的步骤

    原文:http://blog.csdn.net/leixiaohua1020/article/details/12747899 在VC下使用FFMPEG编译好的库,不仅仅是把.h,.lib,.dll拷 ...

  4. FFMPEG 库移植到 VC 需要的步骤

    在VC下使用FFMPEG编译好的库,不仅仅是把.h,.lib,.dll拷贝到工程中就行了,还需要做以下几步.(此方法适用于自己使用MinGW编译的库,也同样适用于从网上下载的编译好的库,例如http: ...

  5. ffmpeg android移植

    CMake语法简介(androidstudio中利用CMake开发NDK): http://blog.csdn.net/u013718120/article/details/62883711FFmpe ...

  6. 移植ffmpeg到VC环境心得

    所有想学习ffmpeg的网友有福了,大名鼎鼎的ffmpeg,移植到Windows的VC6版本全部开源,编译环境为VC6+SP5+VCPP5.别忘记了顶贴哦. 移植ffmpeg到windows,主要的修 ...

  7. FFmpeg 移植 Android

    近期项目需要解析苹果的HLS流媒体协议,而FFmpeg从0.11.1“Happiness”版本开始,才增加了对HLS协议的支持.目前网上关于FFmpeg编译移植的文章有很多,但大多都是对旧版本的说明. ...

  8. android 移植ffmpeg后so库的使用

    今天折腾了一天,可算是有所收获,成功的用jni调用了libffmpeg中的一个方法-----avcodec_version(),至于avcodec_version()是干什么用的我不大清楚,应该是获取 ...

  9. [转]FFMPEG视音频编解码零基础学习方法

    在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者.在和大家探讨的过程中,我忽然发现了一个问题:在“ ...

随机推荐

  1. windows远程连接Ubuntu12.04 (Ubuntu14.0连接方式不一样)

    参考 http://www.cnblogs.com/jerome-rong/archive/2012/08/16/2642035.html 有两种方式:Vnc方式(优缺点)和xrdp模式 中提到的Vn ...

  2. 读书笔记_Effective_C++_条款二十七:尽量少做转型动作

    有关转型的几种做法,已经在早些的博客中写过了.这里先简单回顾一下,再讲一讲effective中对之更深入的阐述. 转型可以按风格可以分成C风格转型和C++风格转型两大类,C风格转型很容易看到,因为我们 ...

  3. FLV视频在IIS6.0下不能播放 处理的方法

    FLV视频在IIS6.0下不能播放 Flash视频由于其较高的压缩率和优越的下载速度,前景普遍看好,同时也为Flash课件增色不少.然而,在FLV视频播放中,却有两个头痛的问题    一.FLV视频在 ...

  4. http://www.tangible-engineering.com/tangible_t4editor.html

    T4 Template Tutorials   http://www.tangible-engineering.com/tangible_t4editor.html

  5. hadoop招聘需求每天都在添加,短短半个月时间,需求量差点儿翻了一番,这是大数据要爆发的节奏么?

    近期常常关注企业hadoop招聘需求的动态变化,多说无益,直接上几张百度的截图: 4月20日: 4月22日: 4月27日: 5月8日:

  6. JSP页面乱码全解析

    乱码指的是中文乱码. 一.POST乱码 由于两个页面都是用UTF-8编码,但是参数的传输默认是ISO-8859-1,这时候可以在接受参数之前 request.setCharacterEncoding( ...

  7. 静态资源(StaticResource)和动态资源(DynamicResource)

    静态资源(StaticResource)和动态资源(DynamicResource) 资源可以作为静态资源或动态资源进行引用.这是通过使用 StaticResource 标记扩展或 DynamicRe ...

  8. spring-cloud服务器雪崩效应

    在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用.为了保证其高可用,单个服务 ...

  9. Springboot集成Jedis + Redisson(已自测)

    原文:https://blog.csdn.net/c_zyer/article/details/79415728 本文主要跟大家分享在Springboot中集成Jedis和Redisson的方法.为什 ...

  10. Workflow:采用坐标变换(移动和旋转)画箭头

    背景 流程设计器的连线部分需要画一个箭头代表连接的方向,下图是期望的效果: 刚开始我准备采用三角函数(sin和cos)来计算三角的坐标,实现的过程真不爽(有兴趣的朋友可以试试),就在完工的时候,突然想 ...