Cómo compilar ffmpeg para iphone

Compile FFmpeg

mkdir en iPhone. /Construir

#Configurar para la versión armv7

. /config\

-cc =/Desarrollador/Plataformas/plataforma iPhone OS/Desarrollador/usr/bin/gcc \

-as = 'gas-preprocesador . Plataformas/plataforma iPhone OS .Desarrollador/usr/bin/gcc ' \

-sysroot =/Desarrollador/Plataformas/plataforma iPhone OS/Desarrollador/SDKs/iphone OS 4.3 .

-extra-LD flags =-L/Developer/Platforms/iphone OS platform/Developer/SDKs/iphone OS 4.3 . \

- arch=arm \

- cpu=cortex-a8 \

- extra-cflags='-arch armv7' \

- extra-ldflags='-arch armv7' \

- enable-pic \

-enable-cross-compilation\

- deshabilitar-ffmpeg \

- desactivar-ffplay \

- desactivar-ffserver \

-disable-doc

#Build para armv7

Hacer limpieza

Hacer

#Copiar biblioteca armv7

mkdir. /build/armv7

cp -f ./libavcodec/libavcodec.a. /build/armv7/libavcodec.a

CP -f ./libavdevice/libavdevice .a. /build/armv7/libavdevice.a

CP -f ./libavfilter/libavfilter .a. /build/armv7/libavfilter.a

CP -f ./libavformat/libavformat .a. /build/armv7/libavformat.a

cp -f ./libavutil/libavutil.a. /build/armv7/libavutil.a

cp -f ./libswscale/libswscale.a. /build/armv7/libswscale.a

#Configure para la versión armv6

.

/config\

-cc =/Desarrollador/Plataformas/plataforma iPhone OS/Desarrollador/usr/bin/gcc \

-as = 'gas-preprocesador . Plataformas/plataforma iPhone OS .Desarrollador/usr/bin/gcc ' \

-sysroot =/Desarrollador/Plataformas/plataforma iPhone OS/Desarrollador/SDKs/iphone OS 4.3 .

-extra-LD flags =-L/Developer/Platforms/iphone OS platform/Developer/SDKs/iphone OS 4.3 . \

- arch=arm \

- cpu=arm1176jzf-s \

- extra-cflags='-arch armv6' \

- extra-ldflags='-arch armv6' \

-enable-cross-compilation\

- deshabilitar-ffmpeg \

- deshabilitar-ffplay \

- desactivar-ffserver \

-disable-doc

#Build para armv6

Hacer limpio

Hacer

#Copiar biblioteca armv6

mkdir. /build/armv6

cp -f ./libavcodec/libavcodec.a. /build/armv6/libavcodec.a

CP -f ./libavdevice/libavdevice .a. /build/armv6/libavdevice.a

CP -f ./libavfilter/libavfilter .a. /build/armv6/libavfilter.a

CP -f ./libavformat/libavformat .a. /build/armv6/libavformat.a

cp -f ./libavutil/libavutil.a. /build/armv6/libavutil.a

cp -f ./libswscale/libswscale.a. /build/armv6/libswscale.a

#Configurado para la versión i386

.

/config\

-cc =/Desarrollador/Plataformas/simulador de iPhone/Desarrollador/usr/bin/gcc \

-as = 'gas-preprocesador . Plataformas/simulador de iPhone .Desarrollador/usr/bin/gcc ' \

-sysroot =/Desarrollador/Plataformas/simulador de iPhone .

-extra-LD flags =-L/Desarrollador/Plataformas/simulador de iPhone . \

- arch=i386 \

- cpu=i386 \

- extra-cflags='-arch i386' \

- extra-ldflags='-arch i386' \

-enable-cross-compilation\

- deshabilitar-ffmpeg \

- deshabilitar-ffplay \< / p>

-disable-ffserver \

-disable-doc

#Build para i386

hacer limpio

hacer

#Copiar la biblioteca i386

mkdir. /build/i386

cp -f ./libavcodec/libavcodec.a. /build/i386/libavcodec.a

CP -f ./libavdevice/libavdevice .a. /build/i386/libavdevice.a

CP -f ./libavfilter/libavfilter .a. /build/i386/libavfilter.a

CP -f ./libavformat/libavformat .a. /build/i386/libavformat.a

cp -f ./libavutil/libavutil.a. /build/i386/libavutil.a

cp -f ./libswscale/libswscale.a. /build/i386/libswscale.a

#Crear bibliotecas gruesas (genéricas)

Salida gruesa. /build/libavcodec.a -create \

-v6. /build/armv6/libavcodec.a \

-arch armv7. /build/armv7/libavcodec.a \

-arch i386. /build/i386/libavcodec.a

Salida de grasa. /build/libavdevice.a -create \

-v6.

/build/armv6/libavdevice.a \

-arch armv7. /build/armv7/libavdevice.a \

-arch i386. /build/i386/libavdevice.a

Salida de grasa. /build/libavfilter.a -create \

-v6. /build/armv6/libavfilter.a \

-arch armv7. /build/armv7/libavfilter.a \

-arch i386. /build/i386/libavfilter.a

Salida de grasa. /build/libavformat.a -create \

-v6. /build/armv6/libavformat.a \

-arch armv7. /build/armv7/libavformat.a \

-arch i386. /build/i386/libavformat.a

Salida de grasa. /build/libavutil.a -create \

-v6. /build/armv6/libavutil.a \

-arch armv7. /build/armv7/libavutil.a \

-arch i386. /build/i386/libavutil.a

Producción de grasa. /build/libswscale.a -create \

-v6. /build/armv6/libswscale.a \

-arch armv7. /build/armv7/libswscale.a \

-arch i386. /build/i386/libswscale.a

La configuración del compilador i386 anterior, es decir, el simulador, no es necesaria. Aquí hay otro método de configuración:

.

/config\

- desactivar-bzlib \

- desactivar-mmx \

- desactivar-doc \

- desactivar-ffmpeg \

- desactivar-ffplay \

- desactivar-ffserver \

-cc =/Desarrollador/Plataformas/simulador de iPhone/Desarrollador/usr/bin. /i686-apple-Darwin 10-gcc-4 . 2 1 \

-as = 'gas-preprocessor/gas-preprocessor . bin/i686-apple-Darwin 10-gcc-4 . 2 1 ' \

-sysroot =/Desarrollador/Plataformas/plataforma de iPhone/Desarrollador/SDK/Simulador de iPhone 4.0 p> p>

-extra-c flags = '-f longitud-mensaje = 0-pipe-Wno-trigraphs-fpascal-strings-O0-fasm-blocks-Wreturn-type-Wunused-variable-D _ _ IPHONE _ OS _ VERSION _ MIN _ REQ UIRED = 30000-isysroot/Desarrollador/Plataformas/Simulador de plataforma iPhone/Desarrollador/SDK/Simulador de iPhone 4.0 SDK-f visibilidad = oculto-mmacosx-VERSIÓN-MIN = 10.5-1

Otro artículo

Mover el valor FFMPEG a iPhone o Mac OS/X

Para obtener una descripción detallada de FFMPEG, consulte los documentos pertinentes en Internet. Aquí sólo hablamos del proceso de migración de FFMPEG a iPhone o Mac OS/X y las precauciones relacionadas.

Las funciones de FFMPEG son bastante potentes, incluidas FFServer, FFPlay, FFMPEG, AVCODEC, AVDevice, AVFormat, AVutil, SWScale, etc. En el paquete FFMPEG completo. Entre ellas, ffserver, ffplay y ffmpeg son aplicaciones que son básicamente inútiles para quienes nos dedicamos al desarrollo de software. Avcodec es una biblioteca de cifrado y decodificación, avformat es una biblioteca de formatos, avutil es una biblioteca básica (pero rara vez la usamos) y swscale es una biblioteca de procesamiento de imágenes. Entonces lo que queremos es transferir los valores de estas cuatro bibliotecas: avcodec, avformat, avutil y swscale.

El proceso de transferencia de valor a Mac OS/X:

1.

/configure-prefix =/Developer/usr-cc =/Developer/usr/bin/gcc-4.0-enable-GPL-enable-shared-disable-IPv6-enable-SW scale-enable-zlib-enable-bzlib-disable- ffmpeg-disable-ff play-disable-ff server-disable-vhook

Segundo, compilar

Fabricación

Tercero, instalar

Instalación

Nota: /Developer/usr arriba es el directorio de destino. Si su Xcode está instalado de forma predeterminada, puede compilar y depurar su código en Xcode después de la instalación.

El proceso de mover valores a la plataforma de iPhone simulada en Mac OS/X:

1. /configure-prefix =/Developer/usr-disable-debug-cc =/Developer/usr/bin/i686-apple-Darwin 9-gcc-4 0 . enable-IPv6-enable-swscale-enable-zlib-enable-bzlib-disable-ffmpeg-disable-ff play-disable-ff server-disable-v hook-enable-pthreads

Entre ellos: puedes También agregue -Enable-sharing, para que pueda compilarse y generar una biblioteca dinámica, que se utilizará en futuras programaciones. -Prefix establece el directorio de instalación. Si no se agrega -enable-shared durante la configuración, el enlace estático no generará tres bibliotecas dinámicas. Al mismo tiempo, los archivos ejecutables generados por ffplay y ffmpeg también son relativamente grandes porque se pueden ejecutar sin el soporte de bibliotecas dinámicas. Pero no favorece el desarrollo secundario, por lo que también puedo considerar el uso de enlaces dinámicos.

Segundo, compila

Fabricación

Tercero, instala

Instalar

Después de la instalación, verás tres directorios en /usr/local/ffmpeg.

Ubicación de la biblioteca de enlaces dinámicos Lib

Contiene archivos de encabezado para programación.

El directorio donde se encuentra el archivo ejecutable bin.

Para facilitar la programación futura, copiamos tres bibliotecas de enlaces libavcodec. formato solibav. solibavuutil.so en lib a /usr/lib. Copie el directorio ffmpeg bajo el directorio de inclusión en /usr/include. Ejecute ffplay en el directorio bin para reproducir archivos de audio o video. Por ejemplo, reproduzca 1.mp3

. /ffplay 1.mp3

Además, hay dos archivos en el directorio bin: ffmpeg y ffserver.

Ffmpeg es una buena herramienta de conversión de formatos de vídeo y audio. Hay mucha documentación al respecto en internet. Si no desea generar ffserver, simplemente agregue -disable-ffserver cuando. /configurar.

Nota: /Developer/usr arriba es el directorio de destino. Si su Xcode está instalado de forma predeterminada, puede compilar su código en Xcode y descargarlo al simulador después de la instalación.

El proceso de transferencia de valor a la plataforma iPhone:

1.

/configure-enable-cross-compile-cross-prefix =/Desarrollador/Plataformas/plataforma iPhone OS/usr/bin/-cc =/Desarrollador/Plataformas/plataforma iPhone OS/Desarrollador/usr/bin/arm-apple-. Darwin 9-gcc-4 0 1-prefix =/Desarrollador/Plataformas/plataforma iPhone OS/Desarrollador/SDK/iphone OS 2.0. plataforma/plataforma

Segundo, compilar

fabricar

Tercero, instalar

Instalar

Nota: arriba. /developer/platform/iphoneOS.platform/developer/usr/bin/ es el directorio de destino. Si su Xcode está instalado de forma predeterminada, puede compilar su código en Xcode y descargarlo al simulador después de la instalación. >Notas relacionadas:

Si usa una biblioteca estática en ffmpeg, habrá algunos errores de conexión, así que elija la biblioteca dinámica al instalar la biblioteca ffmpeg >Bien, ahora sabemos cómo mover ffmpeg a. iPhone y combine la biblioteca ffmpeg con Xcode. Por supuesto, si su herramienta Xcode no está instalada de forma predeterminada, cambie las opciones de directorio correspondientes.