Интеграция FFMPEG по проекту iphone / ipad

Может ли кто-нибудь сказать мне, как интегрировать FFMPEG в моем iphone / ipad project.im с помощью Xcode 4. Я много искал, но не нашел полезной ссылки .please скажите мне шаг за шагом, чтобы интегрировать FFMpeg в мой проект.

благодаря,

Предпосылки

MacPorts для установки: открыть терминал и тип

sudo port install pkgconfig

Запустить терминал и загрузить источник FFmpeg

Местоположение каталога соответствует вашим личным предпочтениям, и я решил сохранить его в папке ffmpeg под моей домашней папкой, чтобы получить легкий доступ позже.

git clone git: //source.ffmpeg.org/ffmpeg.git ~ / ffmpeg

Прежде чем идти дальше, нам нужно подумать заранее и понять, что мы, скорее всего, сделаем некоторые симуляции на самом Mac вместе с фактическим тестированием на iPhone. Нам нужно создать библиотеки для 3-х архитектур: armv7 (iPhone 3Gs или более поздние), armv7s (iPhone 5) и i386 (iPhone Simulator).

Давайте создадим несколько папок внутри папки ffmpeg, чтобы провести 3 разных сборки, чтобы мы могли объединить их в одну универсальную сборку.

cd ffmpeg mkdir armv7 mkdir armv7s mkdir i386 mkdir -p universal / lib

Установка газопроцессора

  1. Нажмите на значок ZIP, чтобы загрузить газ-препроцессор.
  2. Скопируйте файл gas-preprocessor.pl в каталог / usr / bin.
  3. Измените разрешение gas-preprocessor.pl, установив привилегию на чтение и запись для всех.

Настроить FFmpeg для сборки armv7

Перед настройкой вы можете обратиться к подробным параметрам, перейдя в папку ffmpeg и введите:

./configure –help

список параметров для вашей справки: FFmpeg Configure Options . «Параметры компонентов» будут зависеть от того, что вы хотите делать с FFmpeg.

Теперь запустите следующие параметры настройки:

./configure \ –prefix = armv7 \ –disable-ffmpeg \ –disable-ffplay \ –disable-ffprobe \ –disable-ffserver \ –enable-avresample \ –enable-cross-компилировать \ sysroot = “/ Applications / Xcode.app / Содержание / Разработчик / Платформы / iPhoneOS.platform / Разработчик / SDK / iPhoneOS6.0.sdk” \ –target-os = darwin \ –cc = “/ Приложения / Xcode.app /Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc “\ –extra-cflags =” – arch armv7 -mfpu = neon -miphoneos-version-min = 6.0 “\ –extra-ldflags = “-arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk -miphoneos-version-min = 6.0” \ –arch = arm \ – cpu = cortex-a9 \ –enable-pic \

Вы можете получить предупреждение, такое как:

ПРЕДУПРЕЖДЕНИЕ: Компилятор не указывает ABI с плавающей запятой, мягкое угадывание.

Не беспокойся. Вы должны быть в порядке, чтобы продолжить следующие шаги.

Построить FFmpeg для armv7

Запустите команды сборки:

make clean && make && make install

Теперь вы можете видеть, что файлы заполняются внутри папки ffmpeg / armv7 . Теперь мы переходим на здание для armv7s для iPhone 5.

Настроить и установить FFmpeg для архитектуры armv7s (iPhone 5)

, / configure \ –prefix = armv7s \ –disable-ffmpeg \ –disable-ffplay \ –disable-ffprobe \ –disable-ffserver \ –enable-avresample \ –enable-cross-compile \ –sysroot = “/ Applications / Xcode.app / Содержание / Разработчик / Платформы / iPhoneOS.platform / Разработчик / SDK / iPhoneOS6.0.sdk” \ –target-os = darwin \ –cc = “/ Applications / Xcode.app / Содержание / Разработчик / Платформы / iPhoneOS.platform / Разработчик / usr / bin / gcc “\ –extra-cflags =” – arch armv7s -mfpu = neon -miphoneos-version-min = 6.0 “\ –extra-ldflags =” -arch armv7s -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk -miphoneos-version-min = 6.0 “\ –arch = arm \ –cpu = cortex-a9 \ –enable-pic \

Затем постройте:

make clean && make && make install

Настроить FFmpeg для сборки i386

./configure \ –prefix = i386 \ –disable-ffmpeg \ –disable-ffplay \ –disable-ffprobe \ –disable-ffserver \ –enable-avresample \ –enable-cross-compile \ –disable-ffserver \ sysroot = “/ Applications / Xcode.app / Содержание / Разработчик / Платформы / iPhoneSimulator.platform / Разработчик / SDK / iPhoneSimulator6.0.sdk” \ –target-os = darwin \ –cc = “/ Applications / Xcode.app /Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc “\ –extra-cflags =” – arch i386 “\ –extra-ldflags =” – arch i386 -isysroot /Applications/Xcode.app /Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk “\ –arch = i386 \ –cpu = i386 \ –enable-pic \ –disable-asm \

Обратите внимание на последний тег –disable-asm. Если вы забудете включить этот тег, вы, скорее всего, получите эту ошибку:

cc1: ошибка в backend: вышла из регистров во время распределения регистров! make: *** [libavcodec / h264_cabac.o] Ошибка 1

Построить FFmpeg для i386

make clean && make && make install

Создание универсальной библиотеки

Команды lipo (при условии, что вы все еще находитесь в папке ffmpeg): (Пожалуйста, обратите внимание, что липо с доставкой Mountain Lion ничего не знает о armv7s на данный момент. Поэтому нам нужно использовать xcrun для поиска липо, поставляемого с SDK.)

cd armv7 / lib для файла в * .a do cd ../ .. xcrun -sdk iphoneos lipo -output universal / lib / $ file -create \ -arch armv7 armv7 / lib / $ file \ -arch armv7s armv7s / lib / $ file \ -arch i386 i386 / lib / $ file echo “Универсальный файл $ created created”. cd – done cd ../ ..

Посмотрите под универсальный / lib, вы найдете все FAT-библиотеки, недавно испеченные там. Теперь мы обратим наше внимание на связывание этих статических библиотек с проектом Xcode.

если вы получаете ошибку, например, эту ошибку: в каталоге разработчиков не найдено ни одной директории разработчика? “ затем введите

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

Связывание статических библиотек в Xcode

Во-первых, мы втягиваем файлы .a.

Создайте новое Пустое приложение, используя Xcode. Назначьте имя продукта и идентификатор компании. Затем нажмите «Далее» и сохраните проект. Найдите универсальные библиотеки, которые мы создали (файлы .a) в файле ffmpeg / universal / lib . Перетащите файлы .a в папку «Ракурсы» на панели «Навигатор проекта». Отметьте «Скопируйте элементы в папку целевой группы (при необходимости)». Нажмите «Готово».

Теперь мы позаботимся о включенных файлах.

Найдите файлы include в файле ffmpeg / armv7 / include . Перетащите содержимое этой папки в папку «Название проекта» на панели «Навигатор проекта». Снова отметьте «Скопировать элементы в папку целевой группы (если необходимо)». Затем нажмите «Готово».

Наконец, нам нужно установить пути поиска заголовков для проекта .

Нажмите « Проект» на панели «Навигатор проекта». В стандартном редакторе в середине экрана нажмите «Настройки сборки». Найдите «Пути поиска заголовков» . Добавьте свой путь к проекту и установите его в рекурсивный. т.е. $ (SRCROOT) Нажмите «Построить фазы». В разделе Link Binary With Libraries добавьте libbz2.dylib и libz.dylib .

Проверка и проверка работы библиотеки

Мы не будем здесь подробно. Просто убедитесь, что библиотека работает. Перейдите в свой AppDelegate.m и добавьте:

> #include “avformat.h”

И в функции didFinishLaunchingWithOptions добавьте:

av_register_all ();

если предполагается, что вы получаете эти ошибки

Неопределенные символы для архитектуры i386: «_iconv», на которые ссылаются: _mail_iconv в libmailcore.a (charconv.o) «_iconv_open», на которые ссылаются: _charconv в libmailcore.a (charconv.o) _charconv_buffer в libmailcore.a (charconv.o) «_iconv_close», на который ссылается: _charconv в libmailcore.a (charconv.o) _charconv_buffer в libmailcore.a (charconv.o) ld: символ (ы) не найден для архитектуры i386 collect2: ld возвращен 1 статус выхода

затем добавьте структуру libiconv.dylib

теперь вы готовы погрузиться в разработку с помощью FFmpeg на iOS.

./configure script:

./configure –extra-ldflags = -L / Разработчик / Платформы / iPhoneOS.platform / Разработчик / SDK / iPhoneOS4.3.sdk / usr / lib / system –disable-bzlib –disable-doc –disable-ffmpeg –disable-ffplay –disable-ffserver –enable-cross-compile –arch = arm –target-os = darwin –cc = / Разработчик / Платформы / iPhoneOS.platform / Разработчик / usr / bin / gcc – -as = ‘gas-preprocessor / gas-preprocessor.pl /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc’ –sysroot = / Разработчик / Платформы / iPhoneOS.platform / Разработчик / SDK / iPhoneOS4.3 .sdk –cpu = cortex-a8 –extra-cflags = ‘- arch armv7’ –extra-ldflags = ‘- arch armv7’ –enable-pic

это прекрасно работает. поскольку сценарий конфигурации ffmpeg по умолчанию имеет путь по умолчанию к библиотеке, установленный в «/ usr / lib / system», поэтому он не может найти библиотеку libcache.dylib, поэтому здесь я установил ее на последний путь sdk.

  • Каков максимальный размер песочницы на iPad?
  • Создание файла .pem для APNS?
  • Лучшая библиотека Cocoa / Objective-C Wrapper для SQLite на iPhone
  • Типы в объективе-c на iPhone
  • Как создать изображение из UILabel?
  • Как найти размер файла перед загрузкой его в iOS 7?
  • Настройка меню «Дополнительно» на панели вкладок
  • Уведомление об изменениях в каталоге iPhone / Documents
  • Отключить клавиатуру UITextField?
  • UITableView dequeueReusableCellWithIdentifier Theory
  • Переход на существующую оплаченную версию приложения на бесплатную версию с покупкой приложения
  • Давайте будем гением компьютера.