2015/10/28 ios ffmpeg移植

来源:互联网 发布:无法打开淘宝三级页面 编辑:程序博客网 时间:2024/06/06 14:16

关键词:ffmpeg: 多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。


视频采集功能
ffmpeg视频采集功能非常强大,不仅可以采集视频采集卡或USB摄像头的图像,还可以进行屏幕录制,同时还支持以RTP方式将视频流传送给支持RTSP的流媒体服务器,支持直播应用

视频格式转换功能
ffmpeg视频转换功能。视频格式转换,比如可以将多种视频格式转换为flv格式,可不是视频信号转换 。
ffmpeg可以轻易地实现多种视频格式之间的相互转换(wma,rm,avi,mod等),例如可以将摄录下的视频avi等转成视频网站所采用的flv格式。

视频截图功能
对于选定的视频,截取指定时间的缩略图。视频抓图,获取静态图和动态图,不提倡抓gif文件;因为抓出的gif文件大而播放不流畅。
给视频加水印功能
使用ffmpeg 视频添加水印(logo)。

对于ffmpeng的使用

    下载ffmpeg源代码

参考:http://ffmpeg.org/download.html

下载ffmpeg-iphone-build

参考:https://github.com/gabriel/ffmpeg-iphone-build


在git中有一个“一键编译”脚本:

编译能在iOS下使用的FFMPEG library库

这一步是编译所说的library,编译好之后可以调用FFMPEG的api。网上有一些方法,但都要自己手动编译,稍显复杂而且比较陈旧。按照app store的需求,编译出来的包还必须支持arm64。我在万能的github中找到一个能够"一键编译"的脚本,地址如下:

https://github.com/kewlbear/FFmpeg-iOS-build-script

最重要的是,这个脚本更新及时。真心好用。
下面,就是怎么用我们编译出的库文件。大致分为两种方:
1.直接调用ffmpeg的api。(复杂)
2.通过命令间接调用api。(相对简单)

我们已经将ffmpg集成到项目里了,下面该去用他了。

首先,添加一个头文件引用 #include "avformat.h",这里不是“import”需要注意一下。

然后,给一个类文件.m后缀改为.mm,开启混编模式;

添加一个api语句:av_register_all();

这时候,如果有报错,找不到xxxxx.h 一定是你的绝对路径设置有误。

如果没有报错说明已经移植成功。







0 0
原创粉丝点击