FFMPeg使用详解
环境:
Mac 10.11.1
xcode 7.1
概述:
由于最近需要用到ios的流媒体播放器,花了很大功夫才搞了一个,大多数是从网上收集而来,给刚学习的做一个小小的参考~
准备工作:
下载最新ffmpeg2.8.1包;
安装yasm(建议最新版 1.2 or later),安装教程参考yasm安装教程
注:Mac 10.11系统、/usr/bin为Adminstrator权限,非root权限(解决办法:关机->按住Command + R 开机,待出现Logo和进度条后松开Command 和R键->选择实用工具->终端->csrutil disable->reboot.[!更改完毕后重新设回enable]);下载gas-preprocessor.pl,下载地址:gas-preprocessor 使用方法:
1、拷贝gas-preprocessor.pl文件到 /usr/bin 和
/usr/local/bin 目录下
2、修改gas-preprocessor.pl文件的权 使用 chmod
a+rwx gas-preprocessor.pl
注:遇到权限问题参考第二条下载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:编译多平台时合并而成(包较大...)
集成项目
- 新建测试工程….;
- 将编译后的文件导入工程:lib、include这2个文件夹;
- 添加库:lib.tbd、libbz2.tbd、libiconv.tbd(注:xcode7后后库名称有所改变
- 配置Search Paths:Header Serach Paths->添加一条$(PROJECT_DIR)/你的工程名/头文件文件夹名,同样地配置library
- 开启C、OC混编:Language Modules->Enable Modules->YES
导入第三方播放器: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.
播放截图: