Red de conocimiento informático - Conocimiento informático - Cómo compilar ffmpeg para iphone

Cómo compilar ffmpeg para iphone

Compilar FFmpeg en iPhone

mkdir ./build

# configure para armv7 build

./configure \

--cc=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc \

--as='gas-preprocessor.pl /Developer/Platforms/iPhoneOS.platform/ Desarrollador /usr/bin/gcc' \

--sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk \

--extra-ldflags =-L/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib/system \

--target-os=darwin \

--arch=arm \

--cpu=cortex-a8 \

--extra-cflags='-arch armv7' \

-- extra -ldflags='-arch armv7' \

--enable-pic \

--enable-cross-compile \

--disable-ffmpeg \

--disable-ffplay \

--disable-ffserver \

--disable-doc

# compilación para armv7

hacer limpieza

hacer

# copiar las librerías 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< / p>

# configurar para compilación armv6

./configure \

--cc=/Developer/Platforms/iPhoneOS.platform/Deve

loper/usr/bin/gcc \

--as='gas-preprocessor.pl /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc' \

--sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk \

--extra-ldflags=-L/Developer/Platforms/iPhoneOS.platform/Developer/SDKs /iPhoneOS4.3.sdk/usr/lib/system \

--target-os=darwin \

--arch=arm \

-- cpu=arm1176jzf-s \

--extra-cflags='-arch armv6' \

--extra-ldflags='-arch armv6' \

--enable-cross-compile \

--disable-ffmpeg \

--disable-ffplay \

--disable-ffserver \

--disable-doc

# compilación para armv6

hacer limpieza

hacer

# copiar armv6 libs

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

# configurar para la compilación i386

./configure \

--cc=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc \

--as='gas-preprocessor.pl /Developer/Platforms/iPhoneSimulator.platform/Developer/usr /bin/gcc' \

--sysroot=/Developer/Platforms/iPhoneSimulator.platform/Deve

loper/SDKs/iPhoneSimulator4.3.sdk \

--extra-ldflags=-L/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/lib/system \

--target-os=darwin \

--arch=i386 \

--cpu=i386 \

-- extra-cflags='-arch i386' \

--extra-ldflags='-arch i386' \

--enable-cross-compile \

--disable-ffmpeg \

--disable-ffplay \

--disable-ffserver \

--disable-doc

# compilar para i386

hacer limpio

hacer

# copiar las bibliotecas de 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

# hacer bibliotecas gruesas (universales)

lipo -output ./build/libavcodec.a -create \

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

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

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

lipo -output ./build/libavdevice.a -create \

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

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

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

lipo -output ./build/libavfilter.a -create \

-ar

ch armv6 ./build/armv6/libavfilter.a \

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

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

lipo -output ./build/libavformat.a -create \

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

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

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

lipo -output ./build/libavutil.a -create \

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

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

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

lipo -output ./build/libswscale.a -create \

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

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

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

Lo anterior es para i386 Además, la configuración de compilación del simulador no es necesariamente segura. Aquí hay otro método de configuración:

./configure \

--disable-bzlib \

. --disable-mmx \

--disable-doc \

--disable-ffmpeg \

--disable-ffplay \

--disable-ffserver \

--cc=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/i686-apple-darwin10-gcc-4.2.1 \

--as='gas-preprocessor/gas-preprocessor.pl /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/i686-apple-darwin10-gcc-4.2.1' \

--sysroot=/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk \

--extra-cflags='-fmessage-length=0 -pipe -Wno- trigraphs - fpascal-strings -O0 -fasm-blocks -Wreturn-type -Wunused-variable -D__IPHONE_OS_V

ERSION_MIN_REQUIRED=30000 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk -fvisibility=hidden -mmacosx-version-min=10.5 -gdwarf-2'

Otro artículo Artículo

Mover FFMPEG a iPhone o Mac OS/X

Para obtener instrucciones detalladas sobre FFMPEG, consulte los documentos en línea relevantes. Aquí solo hablamos de mover FFMPEG a iPhone o Mac OS/X; proceso y precauciones relacionadas.

FFMPEG es bastante potente. El paquete completo de FFMPEG incluye ffserver, ffplay, ffmpeg, avcodec, avdevice, avformat, avutil, swscale, etc., entre ellos, ffserver, ffplay y ffmpeg son los programas correspondientes. Básicamente es inútil para aquellos de nosotros que nos dedicamos al desarrollo de software; avcodec es una biblioteca de 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. Lo que queremos son las cuatro bibliotecas de avcodec, avformat, avutil y swscale.

El proceso de migración a Mac OS/X:

1 Configuración

./configure --prefix=/Developer/usr --cc=/ Desarrollador/usr/bin/gcc-4.0 --enable-gpl --enable-shared --disable-ipv6 --enable-swscale --enable-zlib --enable-bzlib --disable-ffmpeg --disable-ffplay - -disable-ffserver --disable-vhook

2. Compilar

hacer

3.

Nota: El directorio /Developer/usr anterior 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;

Mueva el valor a El proceso de. simulando la plataforma iPhone bajo Mac OS/X:

1 Configuración

./configure --prefix=/Developer/usr --disable-debug --cc=/ Developer/ usr/bin/i686-apple-darwin9-gcc-4.0.1 --enable-gpl --enable-static --disable-shared --disable-ipv6 --enable-swscale --enable-zlib --enable -bzlib --disable-ffmpeg --disable-ffplay --disable-ffserver --disable-vhook --enable-pthreads

Entre ellos: --enable-shared también se puede agregar. Esta opción permite la compilación. genera una biblioteca dinámica, que se utilizará en futuras programaciones.

El directorio de instalación establecido por --prefix. Si no se agrega --enable-shared durante la configuración, se utilizarán enlaces estáticos y no se generarán las 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 un mayor desarrollo, por lo que también puedo considerar el uso de enlaces dinámicos.

2. Compilar

make

3. Instalar

make install

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

ubicación de la biblioteca de enlace dinámico lib

incluye archivos de encabezado utilizados en la programación

directorio bin donde se encuentra el archivo ejecutable

Para facilitar la programación en el futuro, copiamos las tres bibliotecas de enlaces libavcodec.so libavformat.so libavutil.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 muy buena herramienta de conversión de formatos de vídeo y audio. Hay mucha documentación al respecto en línea. Si no desea generar ffserver, simplemente agregue --disable-ffserver cuando ./configure.

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

p>

El proceso de migración a la plataforma iPhone:

1. Configuración

./configure --enable-cross-compile --cross-prefix=/ Desarrollador/Plataformas /iPhoneOS.platform/Developer/usr/bin/ --cc=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin9-gcc-4.0.1 --prefix=/Desarrollador /Platforms/ iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/usr --extra-cflags="-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk" --extra- ldflags=" -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk -Wl, -syslibroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk" --arch =armv6 - -enable-armv6 --enable-gpl --enable-shared --disable-ipv6 --enable-swscale --enable-zlib --enable-bzlib --disable-ffmpeg --disable-ffplay --disable -ffserver - -disable-vhook

2. Compilar

make

3. Instalar

make install

Instrucciones: El /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ anterior es el directorio de destino. Si su Xcode está instalado de forma predeterminada, puede compilar su código en Xcode y depurarlo en el simulador después de la instalación.

Instrucciones relacionadas:

Si utiliza una biblioteca estática en ffmpeg, se producirán algunos errores de conexión; así que seleccione la biblioteca dinámica al instalar la biblioteca ffmpeg.

Bien, ahora sabemos cómo mover ffmpeg a iPhone y combinar la biblioteca ffmpeg con Xcode, por supuesto, si su herramienta Xcode no está instalada de forma predeterminada, actualice la información relacionada Opciones del directorio.