FFMPeg-ios编译

FFMPeg使用详解



环境:

Mac 10.11.1
xcode 7.1

概述:

由于最近需要用到ios的流媒体播放器,花了很大功夫才搞了一个,大多数是从网上收集而来,给刚学习的做一个小小的参考~

准备工作:


  1. 下载最新ffmpeg2.8.1包;

  2. 安装yasm(建议最新版 1.2 or later),安装教程参考yasm安装教程
    注:Mac 10.11系统、/usr/bin为Adminstrator权限,非root权限(解决办法:关机->按住Command + R 开机,待出现Logo和进度条后松开Command 和R键->选择实用工具->终端->csrutil disable->reboot.[!更改完毕后重新设回enable]);

  3. 下载gas-preprocessor.pl,下载地址:gas-preprocessor 使用方法:
    1、拷贝gas-preprocessor.pl文件到 /usr/bin 和
    /usr/local/bin 目录下
    2、修改gas-preprocessor.pl文件的权 使用 chmod
    a+rwx gas-preprocessor.pl
    注:遇到权限问题参考第二条

  4. 下载FFMPeg脚本编译文件:build-ffmpeg.sh(最新版已支持2.8.1);

    使用方法:拷贝脚本文件到ffmpeg-2.8.1目录下
    

开始编译

进入ffmpeg目录:cd /User/xxx/xxx/ffmpeg-2.8.1

编译选项:

编译所有平台:
./build-ffmpeg.sh

编译arm64平台:
./build-ffmpeg.sh arm64

编译arm64 armv7平台
./build-ffmpeg.sh armv7 x86_64

编译armv7 x86_64(64bit 模拟器可用)
./build-ffmpeg.sh armv7 x86_64

更多编译参数参照Usage.

编译截图:

耗时20分钟左右.

编译截图



编译完成

ffmpeg2.8.1文件夹,出现了FFMPeg-ios 、thin、scratch文件夹.

thin:根据你编译的平台产生不同的平台文件夹
FFMPeg-ios:编译多平台时合并而成(包较大...)

集成项目

  1. 新建测试工程….;
  2. 将编译后的文件导入工程:lib、include这2个文件夹;
  3. 添加库:lib.tbd、libbz2.tbd、libiconv.tbd(注:xcode7后后库名称有所改变
  4. 配置Search Paths:Header Serach Paths->添加一条$(PROJECT_DIR)/你的工程名/头文件文件夹名,同样地配置library
  5. 开启C、OC混编:Language Modules->Enable Modules->YES
  6. 导入第三方播放器:KxMoviePlayer

    KxMovie使用方法:
    (1)不想编译ffmpeg的:直接使用此工程即可
    (2)已编译ffmpeg的:拷贝kxmovie文件夹到工程目录,添
    加库:MediaPlayer, CoreAudio, AudioToolbox,
    Accelerate, QuartzCore, OpenGLES and libz.dylib .

提供一个RTSP实时流:

rtsp://218.204.223.237:554/live/1/66251FC11353191F/e7ooqwcfbqjoo80j.sdp

跳转到player:
ViewController *vc;
vc = [KxMovieViewController movieViewControllerWithContentPath:path parameters:nil];
[self presentViewController:vc animated:YES completion:nil];

具体例子可参照kxmoviePlayer的example.

播放截图:

视屏截图

猜你喜欢

转载自blog.csdn.net/Zhul520/article/details/49614377