iOS使用VLC
iOS使用VLC
简介
| 库名 | 简介 | 需要的能力 | 官网链接 |
|---|---|---|---|
| FFmpeg | FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。 |
了解视频编解码原理和流程、了解图像压缩技术、音频压缩技术等 | http://ffmpeg.org |
| Live555 | Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+、DV、JPEG视频和多种音频编码。同时由于良好的设计,Live555非常容易扩展对其他格式的支持。 |
了解视频编解码原理和流程、了解图像压缩技术、音频压缩技术等 | http://www.live555.com |
| MobileVLCKit | 优秀的封装,源码中最核心的部分,被封装成了独立的库,基于FFmpeg,Live555提供完整的媒体播放库,你只需要定制自己的界面,支持CocoaPods导入库,开发一个简单界面的播放器,你只需要几行代码,几乎覆盖所有媒体格式! |
你只需要定制好自己的界面,它的API看起来就是一个播放器 | http://www.videolan.org |
#### 准备
1. 从 VLC 下载需要用到的文件:VLC for iOS x.x.x source code、MediaLibraryKit x.x.x source code、MobileVLCKit x.x.x-pre2 source code。- VLC for iOS x.x.x source code:VLC 源码,OSX平台- MediaLibraryKit x.x.x source code:VLC- MobileVLCKit x.x.x-pre2 source code:VLC,iOS平台2. 下载源码
编译
方式一
PS:由于我这里网络问题,在执行脚本的时候无法从google下载库,导致无法继续下去,所以执行脚本后的操作暂时不确定。
- 将准备阶段步骤2下载的源码解压,并进入其目录。
- 编译模拟器版本(需要较长的时间):
sh compileVLCforiOS.sh -s - 编译真机版本(需要较长的时间):
sh compileVLCforiOS.sh - 呃……
方式二
PS:这是比较简单的方式,也是我使用的方式。
iOS 端
- 终端执行:
git clone http://code.videolan.org/videolan/VLCKit.git - 编译(需要较长的时间):
buildMobileVLCKit.sh
OSX 端
- 终端执行:
git clone http://code.videolan.org/videolan/VLCKit.git - 打开
VLCKit.xcodeproj,注意不是MobileVLCKit.xcodeproj - 选中
Build Everything编译工程。 - 以上是按照官方wiki Guide进行操作的
方式三:使用cocoapods安装
PS:呃……应该是最简单的方式吧……并且在执行完成后,可以到/YourProject/Pods/MobileVLCKit/MobileVLCKit-binary/目录下获取MobileVLCKit.framework。
- 在 Podfile 中写入:
platform :ios, '8.0' use_frameworks! pod 'MobileVLCKit' - 在终端执行
pod install; - 添加
libz.dylib、libbz2.dylib、libiconv.dylib、libstdc++.6.0.9.dylib四个库,xcode7及以上则是添加libz.tbd、libbz2.tbd、libiconv.tbd、libstdc++.6.0.9.tbd;
使用
通过以上我们得到一个集成了VLC的工程,接下来进行测试。为了方便,我们使用github上一个基于VLC的框架WeLSee。
- 直接下载WeLSee源代码;
- 将上面
编译步骤得到的MobileVLCKit.framework集成到WeLSee工程(可能需要替换一些库,xcode7 及以上需要将库从dylib换成tdb); - 直接编译,没有问题,运行正常。
问题
- 如果编译过程中遇到
svn: warning: W175002: Unable to connect to a repository at URL,可能是DNS缓存问题,在终端输入以下命令进行清除缓存dscacheutil -flushcache
参考
VLC 论坛
VLC wiki
VLC wiki Guide
Blog 码懂
isteven
后续继续更新^-^
喜欢的用户
迷失的羊2016.05.23 14:45巴拉拉噢噢2016.04.22 09:39
menser2016.04.20 14:01
流刃若火泣2016.04.18 15:22devjia2016.04.11 21:05
loyt2016.04.08 17:00
峂峂2016.03.25 18:25
風止2016.03.21 23:45
keithmorning2016.03.21 09:02
LiveMeng2016.03.20 00:28
sclcoder2016.03.19 15:39帅气的昵称62016.03.19 10:01
虞少为2016.03.19 00:35
覗文君2016.03.18 11:48
iOS使用VLC的更多相关文章
- VLC for iOS 2.3.0
http://www.cocoachina.com/bbs/read.php?tid=231898 VLC for iOS 2.3.0 本帖属于CocoaChina会员发表,转帖请写明来源 ...
- iOS开发常见BUG和一些小技巧(ps:耐心看完,很实用)
[385][scrollView不接受点击事件,是因为事件传递失败] // // MyScrollView.m // Created by beyond on 15/6/6. // Copyright ...
- ios 流媒体 资料
(1)“Real-Time Streaming Protocol (RTSP)”比较官方的资料(链接). (2)“ffmpeg”在百度百科的简介(链接). (3)“ffmpeg”的官网:http:// ...
- iOS开发中遇到的一些问题及解决方案【转载】
iOS开发中遇到的一些问题及解决方案[转载] 2015-12-29 [385][scrollView不接受点击事件,是因为事件传递失败] // // MyScrollView.m // Creat ...
- VLC-开源播放器编译
http://blog.sina.com.cn/s/blog_7b9d64af0101jpvy.html 需要VLC 在iOS开发中,如果你的程序中播放视频,并且多媒体播放功能是你iOS程序的核心功能 ...
- iOS_开发中遇到的那些问题_1
[自编号:60][AutoLayout中,怎样让ImageView保持固定的宽高比?比如1:1] 先将imageViewframe手动写成:宽20,高20,再勾选Aspect Ratio加入宽高比约束 ...
- iOS实现基于VLC播放器的封装效果
前言: 在一些特定场景下,我们获取到的音视频,由于格式比较特殊,用avplayer等播放器是无法播放的,此时,我们可以借助强大的VLC播放器来处理. 原理这里不再赘述,下面我们讲一下如何添加VLC播放 ...
- 编译VLC for IOS
之前接触VLC是因为Winrt的项目,后来似乎ARM版本的始终搞不定(没有针对于ARM-COFF的GCC编译器),vlc for winrt的项目好久没有更新了,自己也没有深入研究.有一天跟同事聊,他 ...
- IOS VLC编译步骤(包含移植和截图功能)
http://blog.csdn.net/Kan_Crystal/article/details/40424673 一.下载源码 先到VLC官网将源码下载到本机,以下链接为官网编译操作地址:https ...
随机推荐
- Jenkins 五: 构建Ant项目
1. 点击“新建”,在“Item名称”栏输入要构建的项目名,比如“Ant_project”,选择“构建一个自由风格的软件项目”,点击“OK”按钮. 2. 找到“源码管理”-> “Subversi ...
- Android中调用Paint的measureText()方法取得字符串显示的宽度值
1 public static float GetTextWidth(String text, float Size) { //第一个参数是要计算的字符串,第二个参数是字提大小 2 T ...
- 两种动态载入修改后的python模块的方法
方案一:循环导入/删除模块 a.py import sys, time while True: from b import test test() del sys.modules(b) time.sl ...
- DateTime日期格式获取 分类: C# 2014-04-15 10:36 233人阅读 评论(0) 收藏
c#.net 获取时间年月日时分秒格式 //获取日期+时间 DateTime.Now.ToString(); // 2008-9-4 20:02:10 DateTime.Now. ...
- mysql @变量和变量的区别及怎么判断记录唯一性
DELIMITER// drop PROCEDURE if EXISTS test.express; create PROCEDURE test.express() BEGIN ) into @a f ...
- 用 Java 技术创建 RESTful Web 服务--转载
简介 JAX-RS (JSR-311) 是为 Java EE 环境下的 RESTful 服务能力提供的一种规范.它能提供对传统的基于 SOAP 的 Web 服务的一种可行替代. 在本文中,了解 JAX ...
- ios创建的sqlite数据库文件如何从ios模拟器中导出
为了验证数据库的结构,有的时候需要使用一些管理工具来直接查看sqlite数据库的内容,在windows下有sqlite3的专用工具下载,而在ios下也可以使用火狐浏览器的插件sqlitemanager ...
- linux 之 yum 介绍 <转>
原文在这里 http://doophp.sinaapp.com/archives/linux/yum-setting-parameter.html 因为是程序员出身,平时虽然经常接触服务器,偶尔也会 ...
- 模拟电路"虚短" & "虚断"
<虚短 & 虚断> 运算放大器组成的电路五花八门,令人眼花瞭乱,是模拟电路中学习的重点.遍观所有模拟电子技朮的书籍和课程,在介绍运算放大器电路的时候,无非是先给电路来个定性,比如这 ...
- 分析器错误消息: 未能加载文件或程序集“System.WEB.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。
分析器错误消息: 未能加载文件或程序集“System.WEB.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=3 ...