我正在尝试创建一个应用程序,允许我将视频从iPhone流式传输到服务器。我目前关于如何做到这一点的理论是创建一系列FFMpeg文件并将它们发送到服务器。据我所知,我已经为iPhone正确编译了FFMpeg库。 i followed these instructions here。一系列可执行文件出现在文件夹中,所以我假设它工作。
我的问题现在是什么?我如何将这些应用到应用程序中?如何调用这些可执行文件?最重要的是,这甚至会按照我想要的方式工作吗?
答案 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
两者都使用FFmpeg,就像你建议的那样,这个问题有点旧,但我发现很多用户试图实现这一点,所以我有一个问题你是否成功做到了这一点?你能分享一下你的经历或建议吗?