播放格式的多种多样,促使了FFmpeg的诞生,无论是视频格式的mp4,mkv,mov还是流格式的rtmp rtsp 又或者是现在流行的直播格式的m3u8
ffmpeg 都可以做到游刃有余
但是如何让FFmpeg编译为我们所用 不是简单的下载下来就行 有时候步骤错误 就会绕很远 我也是找了很多资料才给编译成功打包 这篇文章也算是个记录。
** My building environment **
- Mac OS X 10.11.6
- Xcode 8.1
- Terminal
要用到的文件
编译
首先确认是否安装homwbrew
如果没有安装 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装yasm
brew install yasm
or
cd yasm-1.2.0
./configure
make
make install
安装gas-preprocessor
这个稍微麻烦一点 因为涉及到文件权限
- 首先复制gas-preprocessor.pl到/usr/local/bin
chmod 777 /usr/local/bin/gas-preprocessor.pl
关于ijkplayer
如同官方README写的
进入到文件夹然后
./init-ios.sh
这一步之后
cd ios
./comppile-ffmpeg.sh clean
./compile-ffmpeg.sh all
将编译好的framework添加到自己项目里面
-
File -> Add Files to ... -> Select ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj
选择Select your Application's target.
然后依赖性添加IJKMediaFrameworkBuild Phases -> Target Dependencies -> Select IJKMediaFramework
还有Link Binary with Libraries
添加IJKMediaFramework
以及相应的系统framework 如
libz.tbd
AudioToolBox.framework
VideoTollBox.framework
CoreGraphic.framework
CoreVideo.framework
..... 需要的framework你编译的时候xcode会告诉你 你加上去就好
关于FFmpeg
同样,如同官方README写的
-
如果你要编译支持所有平台
./build-ffmpeg.sh
-
如果是arm64的话
./build-ffmpeg.sh arm64
-
armv7 和x86
./build-ffmpeg.sh armv7 x86_64
-
合并所有版本
./build-ffmpeg.sh lipo
过程比较慢,稍微等一下就好
编译好之后的样子
![](https://img.haomeiwen.com/i3365753/031060a479e362f4.jpg)
FFmpeg-3.2是源代码 FFmpeg-iOS是编译好的给iOS用的,一共7个.a静态文件拖到项目里面,然后加载libz.dylib libbz2.dylib libiconv.dylib这些依赖库
好了,创建一个项目把必要的framework添加进去,然后简单设置一下,接着找一个直播源,来测试一下。
![](https://img.haomeiwen.com/i3365753/07c2beb26264d84b.png)
![](https://img.haomeiwen.com/i3365753/638ad1be617da37f.jpg)
下载后pod install 然后由于 IJKMediaFramework过大,所以demo下载后要自己添加
这算是可以播放直播,至于怎么把自己拍的视频上传上去作为源 会在下一篇中整理出来
网友评论