iOS直播资料 整理(0)

播放格式的多种多样,促使了FFmpeg的诞生,无论是视频格式的mp4,mkv,mov还是流格式的rtmp rtsp 又或者是现在流行的直播格式的m3u8
ffmpeg 都可以做到游刃有余

但是如何让FFmpeg编译为我们所用 不是简单的下载下来就行 有时候步骤错误 就会绕很远 我也是找了很多资料才给编译成功打包 这篇文章也算是个记录。


** My building environment **

  • Mac OS X 10.11.6
  • Xcode 8.1
  • Terminal

要用到的文件

  1. gas-preprocessor

  2. yasm

  3. FFmpeg-iOS-build-script

  4. FFmpeg封装的ijkplayer


编译

首先确认是否安装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

这个稍微麻烦一点 因为涉及到文件权限

  1. 首先复制gas-preprocessor.pl到/usr/local/bin
  2. 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.
    然后依赖性添加IJKMediaFramework Build 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
    过程比较慢,稍微等一下就好


编译好之后的样子

iOS直播资料 整理(0)_第1张图片
3880B7E4-3C67-4797-B566-636E63031F26.jpg

FFmpeg-3.2是源代码 FFmpeg-iOS是编译好的给iOS用的,一共7个.a静态文件拖到项目里面,然后加载libz.dylib libbz2.dylib libiconv.dylib这些依赖库


好了,创建一个项目把必要的framework添加进去,然后简单设置一下,接着找一个直播源,来测试一下。

iOS直播资料 整理(0)_第2张图片
FBF486C2-A746-4BB4-89AC-05F164531189.png
iOS直播资料 整理(0)_第3张图片
CB4E6998-FED2-403D-9B4F-85D4536BA151.jpg

demo地址

下载后pod install 然后由于 IJKMediaFramework过大,所以demo下载后要自己添加

这算是可以播放直播,至于怎么把自己拍的视频上传上去作为源 会在下一篇中整理出来

你可能感兴趣的:(iOS直播资料 整理(0))