简介
库名 | 简介 | 需要的能力 | 官网链接 |
---|---|---|---|
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
后续继续更新-