编译VLC for IOS
之前接触VLC是因为Winrt的项目,后来似乎ARM版本的始终搞不定(没有针对于ARM-COFF的GCC编译器),vlc for winrt的项目好久没有更新了,自己也没有深入研究。有一天跟同事聊,他们说android和ios都没有一个像Media Foundation那样的多媒体框架,我就想到了是不是可以基于VLC这套框架来开发。研究完之后我才发现,VLC真的是一个伟大的项目。
我用了大概一周的时间来研究VLC的编译,文档上说的很简单,你git下来之后,运行脚本,喝杯咖啡,就编译好了(https://wiki.videolan.org/iOSCompile)。但赐予天朝的网络,很多依赖库下载不下来。所以在编译之前,必须要有给力的FQ环境才可以。
ios这边会有几个分支
http://git.videolan.org/?p=vlc-ports/ios.git;a=summary 这个是带有VLC for ios全部功能的分支,里面有包含UI和vlc的SDK,还有其他第三方库。
http://git.videolan.org/?p=vlc-bindings/VLCKit.git;a=summary 这个只是有vlc的sdk和一个简单的sample
如果你不想编译整个VLC,只是用他们的SDK,我建议从http://nightlies.videolan.org/build/ios/ 这边下载SDK,解压下载的文件,引用进vlc_for_ios.xcodeproj的项目里,直接生成就可以。
如果想编译VLC,我建议还是先已编译SDK 比较好,编译SDK的文档在这里(https://wiki.videolan.org/VLCKit/)
首先要用git clone 代码 git://git.videolan.org/vlc-bindings/VLCKit.git
如果你的MAC中已经安装了autoconf等工具,这里强烈建议把这些工具从PATH中移除再去跑脚本,VLC会下载对应的编译工具,如果不移除系统中的工具,会因为环境,或者版本冲突,报各种莫名其妙的错误。修改PATH用export就好。
然后执行./buildMobileVLCKit.sh
如果你的VPN给力的话,确实如文档所说喝个咖啡就好了。
但是我这边有好多包 curl下载不下来,比如freetype2等。这个时候可以通过浏览器下载,或者从别的地方copy过来,然后把把tar.gz文件放到 {vlckit主目录}/MobileVLCKit/ImportedSources/vlc/contrib/tarballs 下面。curl下载完之后会校验一下shasum的值。很奇怪的是浏览器下载的文件,这个值居然和curl下载下来的不一致。
这个时候要去修改{vlckit主目录}/MobileVLCKit/ImportedSources/vlc/contrib/src/{对应库的名字}/SHA512SUMS 文件。 我们先要修改下载文件的后缀名,我这里的环境.tar.gz被修改成了.tar,然后再用shasum -a 512 {文件名} 算出SHA的值,SHA512SUMS的值替换成我们算出来的。
还有些文件会被改名字,比如pkg-config-lite-0.27.1-1 会被改成pkg-config-0.27.1-1。这种情况会发生在curl无法下载的情况下,如果能正常下载,请忽略。这段逻辑在(vlckit主目录}/MobileVLCKit/ImportedSources/vlc/extras/tools/tools.mak 中描述)
接着再运行./buildMobileVLCKit.sh -n 切记要加-n的参数,这个参数是告诉脚本禁用网络,这样我们做的修改就不会被git给覆盖掉。当然如果你想checkout也行,但是我觉得这种方法简单有效。
如果你之前没有删除PATH,编译到后来会有莫名其妙的错误。这个时候把PATH改掉后,再去编译,有好多已经编译好的,autoconf不会再去给你配置一遍,所以还是会报错。这个时候你可以删除所有代码,重新clone一遍。再此之前,你可以尝试删除根目录的aclocal.m4 和configure文件,这样脚本就会再去configure一遍,或许能解决问题。
./buildMobileVLCKit.sh 是编译真机的 -s 是编译模拟器的 -d 是编译debug的
我所遇到的问题大概就这些,祝大家都能编译成功。
最后说几句题外话,vlc确实是一个伟大的项目,我尝试的是给vlc写一个demux的插件,个人感觉在虚拟机里面的性能还不错,由于公司比较抠,自己比较屌丝,没有真机测试。。。。但是我相信效果应该不是很差。
开源的那套编译器速度很快,比VS快多了。同样代码规格的项目在VS里面要等半天,而这套编译器刷个微博就好了。而且VS的这套东西也不兼容开源的代码,之前编译ffmpeg遇到的最大问题就是,VS的这套东西无法编译GNU风格的汇编。然后呢GCC又没有ARM-COFF的编译器,本来这个编译器应该是微软提供的,就像android那样,但是微软没出。。VS的C编译器本身也有问题,有些代码GCC能编译过,cl却不行。
编译VLC for IOS的更多相关文章
- ubuntu下编译VLC
ubuntu下编译VLC 标签(空格分隔): ubuntu vlc 视频 编译 [TOC] 1.下载VLC源码包并解压 VLC的源码包在VLC的官网有,可以直接下载.也可以使用git来clone一个. ...
- Ubuntu15.10 编译VLC Android(安卓)过程记录
持续更新中... 最后一次修改于 2016-03-20 15:33:45 1.必要库的安装 除基本编译环境(gcc.g++等外),需要额外安装如下的库(用于下载必要的依赖文件) (1)JDK 推荐安装 ...
- Msys+MinGW编译VLC
说明:本文只是对官方文档进行简单的翻译总结,旨在帮助一些英文不太好的朋友.官方文档请见wiki.videolan.org/Win32CompileMSYSNew. Msys是MinGW的一个辅助工 ...
- 多媒体开发(7):编译Android与iOS平台的FFmpeg
编译FFmpeg,一个古老的话题,但小程还是介绍一遍,就当记录.之前介绍怎么给视频添加水印时,就已经提到FFmpeg的编译,并且在编译时指定了滤镜的功能. 但是,在手机盛行的时代,读者可能更需要的是能 ...
- VLC for iOS 2.3.0
http://www.cocoachina.com/bbs/read.php?tid=231898 VLC for iOS 2.3.0 本帖属于CocoaChina会员发表,转帖请写明来源 ...
- ubuntu下编译VLC源码
http://blog.csdn.net/beitiandijun/article/details/9225591ubuntu下编译VLC源码 分类: 视频处理 2013-07-02 17:33 57 ...
- 在ubuntu16.04-32bits 下编译vlc和vlc-qt开源项目
软件版本: Ubuntu14.04 32位 Qt5.4.0 32位 开源项目: vlc2.2.4: wget http://download.videolan.org/pub/v ...
- win7下使用cygwin编译VLC
win7下使用cygwin编译VLC http://kathy.blog.51cto.com/1168050/295460 2010-04-15 14:54:01 标签:编译 休闲 VLC 职场 w ...
- Linux下编译VLC for Android源代码总结
转:http://blog.chinaunix.net/uid-26611383-id-3678766.html 由于项目需要,需要一个在android平台能够支持RTSP协议的播放器,由于之前没有a ...
随机推荐
- Android消息机制——Handler
/**android的消息处理有三个核心类:Looper,Handler和Message.其实还有一个MessageQueue(消息队列), * 但是MessageQueue被封装到Looper里 ...
- Codeforces Beta Round #9 (Div. 2 Only) B. Running Student 水题
B. Running Student 题目连接: http://www.codeforces.com/contest/9/problem/B Description And again a misfo ...
- mybatis源码分析(8)-----事务(mybatis管理、spring管理)
写在前面 接口:MyBatis的事务Transaction的接口有一下实现类 JdbcTransaction 由jdbc管理的事务(即利用Connection对象完成对事务的提交(commit()). ...
- MySQL单表恢复方法
正休息的时候一个电话将我的睡意完全打散,“开发童鞋写update SQL的时候忘了加where条件了”,相信每一个DBA同学听到这个消息的时候都有骂街的冲动吧.万幸只是单表写花了,而不是哪位大神在DB ...
- centos安装单机zookeeper
1.下载zookeeper版本 wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz ...
- unity基础开发----unity游戏速度更快的简易检查表
让游戏速度更快的简易检查表 保持顶点数在 200K 下面,针对 PC 时每帧应为 3M,主要取决于目标 GPU. 若使用内置着色器,请在移动 (Mobile) 或未点亮 (Unlit) 的类别中选择. ...
- 跨域策略文件crossdomain.xml
Web站点通过crossdomain.xml文件(放于站点根目录)配置提供允许的域跨域访问本域内容的权限 以土豆的为例: <cross-domain-policy> <allow-a ...
- 实验3 OpenGL几何变换
转自:http://www.cnblogs.com/opengl/archive/2012/10/30/2747130.html 1.实验目的: 理解掌握一个OpenGL程序平移.旋转.缩放变换的方法 ...
- PHP闭包--匿名函数
匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数.最经常用作回调函数(callback)参数的值.当然,也有其它应用的情况. ...
- 【GISER&&Painter】Chapter01:WebGL渲染初体验
基于上一篇OpenGL的渲染原理,这两周又陆续接触了一些关于WebGL绘图的一些内容,因为刚入门,很多东西又很晦涩,所以特意花了小半天的时间整理了一下,特此记录. 零 画一个多边形吧! 把一个多边形 ...