FFMpeg для iPhone - PullRequest
       6

FFMpeg для iPhone

1 голос
/ 03 августа 2010

Я пытаюсь создать приложение, которое позволит мне передавать видео с iPhone на сервер.Моя текущая теория относительно того, как это сделать, - создать серию файлов FFMpeg и отправить их на сервер.насколько я могу судить, я правильно скомпилировал библиотеку FFMpeg для iPhone. Я следовал этим инструкциям здесь .В папке появилось несколько исполняемых файлов, поэтому я предполагаю, что это сработало.

мой вопрос, что теперь?как я могу получить это в приложение?как сделать вызовы этих исполняемых файлов?и самое главное, будет ли это работать так, как я хочу?

Ответы [ 3 ]

2 голосов
/ 03 августа 2010

Вы создали двоичный файл ffmpeg, который может работать на iPhone.Вы не можете запускать исполняемые файлы из приложения на (не взломанном) телефоне.Таким образом, вам придется скомпилировать библиотеку и ссылаться на это.Затем из вашего приложения вызовите соответствующие функции напрямую, имитируя то, что делает программа ffmpeg.

1 голос
/ 12 января 2012

Хотя эта проблема довольно старая, это может помочь другим пользователям в будущем:

Просто посмотрите на исходный код здесь http://dev.wunderground.com/support/wunderradio/wunderradio.1.9lgpl.zip

Удачи

0 голосов
/ 10 августа 2012

Хорошо, вы сказали, что успешно скомпилировали FFMpeg для iPhone, верно? Как сказал mvds, вы не можете использовать их в качестве исполняемых файлов. Таким образом, чтобы использовать эти библиотеки после завершения компиляции, вам необходимо скопировать все .a библиотеки, сгенерированные в ваш проект (как при добавлении библиотек или других фреймворков). Эти библиотеки:

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

Тогда вы должны настроить свой проект
Кликните на свой проект -> Настройки сборки
Выполните поиск в разделе «Пути поиска в заголовке» и добавьте местоположение вашей библиотеки (местоположение может быть абсолютным или относительным).
Нажмите на этапах сборки -> Связать двоичные файлы с библиотеками -> Добавить другие и добавить все файлы .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 так же, как вы предлагаете, этот вопрос немного устарел, но я нашел много пользователей, пытающихся достичь этого, поэтому у меня есть вопрос. У вас был успех в этом? Можете ли вы поделиться своим опытом или рекомендациями?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...