适用于iPhone的FFMpeg

时间:2010-08-02 22:31:41

标签: iphone ffmpeg

我正在尝试创建一个应用程序,允许我将视频从iPhone流式传输到服务器。我目前关于如何做到这一点的理论是创建一系列FFMpeg文件并将它们发送到服务器。据我所知,我已经为iPhone正确编译了FFMpeg库。 i followed these instructions here。一系列可执行文件出现在文件夹中,所以我假设它工作。

我的问题现在是什么?我如何将这些应用到应用程序中?如何调用这些可执行文件?最重要的是,这甚至会按照我想要的方式工作吗?

3 个答案:

答案 0 :(得分:2)

你已经构建了可以在iPhone上运行的ffmpeg二进制文件。您无法在(非越狱)手机上的应用程序中运行可执行文件。所以你必须编译库,并链接到它。然后,从您的应用程序中,直接调用相关函数,模仿ffmpeg程序的功能。

答案 1 :(得分:1)

虽然这个问题已经很久了,但这可能有助于未来的其他用户:

请在这里查看源代码http://dev.wunderground.com/support/wunderradio/wunderradio.1.9lgpl.zip

祝你好运

答案 2 :(得分:0)

好的,你说你成功编译了FFMpeg for iPhone,对吧?正如mvds所说,你不能将它们用作可执行文件。因此,为了在编译完成后使用此库,您需要将生成的所有.a库复制到项目中(如添加库或其他框架时)。这些库是:

libavcodec.a
libavfilter.a
libavutil.a
libswscale.a
libavdevice.a
libavformat.a
libswresample.a

然后你必须配置你的项目
Clic在您的项目上 - >建立设置
搜索“标题搜索路径”并添加库的文件夹位置(位置可以是绝对的或相对的)
构建阶段的Clic - >链接二进制文件库 - >添加其他,并添加所有.a文件

瞧!现在您可以为项目导入和使用FFmpeg库

#include <avcodec.h>
#include ...
// More C and/or Objective-C Code

要访问单个未压缩的帧,您可以使用captureOutput:didOutputSampleBuffer:fromConnection:来自AVCaptureVideoDataOutput的委托方法(有很多示例),并以某种方式将它们编码为h264可能使用AVFrame?据我所知,FFmpeg也可以使用RTSP进行流媒体直播,但文档似乎接近于零:(

回答你的最后一个问题

  

最重要的是,这甚至会按照我想要的方式工作吗?

答案是肯定的,它可以工作,我发现2个库可以实现您想要实现的目标 http://www.foxitsolutions.com/iphone_h264_sdk.html

http://ios-rtmp-library.com

两者都使用FFmpeg,就像你建议的那样,这个问题有点旧,但我发现很多用户试图实现这一点,所以我有一个问题你是否成功做到了这一点?你能分享一下你的经历或建议吗?