2012-08-27 11 views
13

jemand eine Werkzeugkette für ffmpeg Linux Arm Plattform Kennt die den arm- enthält linux-androideabi-pkg-config Werkzeug?

Das Android NDK enthält es nicht. Hat es auch jemand geschafft, ffmpeg für Android zu bauen, das das alsa-Gerät enthält? Bitte beachten Sie, dass libasound auf meinem Ubuntu x86 PC vorhanden ist.

Nach sehr umfangreichen Recherchen zu Foren wie ffmpeg.org, ffmpeg - nabbles, groups.google.com einschließlich andro und android-ndk gropus und dem Internet im Allgemeinen habe ich niemanden gefunden, der davon zu wissen scheint seine Existenz. Im besten Fall habe ich Leute gelesen, die das ignorieren. Wenn man bedenkt, wofür es gebraucht wird, halte ich das für eine naive Sache.

Eine sorgfältige Überprüfung des Standard-ffmpeg-Konfigurationsskripts zeigt, dass für bestimmte Eingabe- und Ausgabegeräte eine Toolchain mit der Bezeichnung pkg_config_default = pkg-config erforderlich ist. Außerdem sind alle Elemente auf der HAVE_LIST SYSTEMABHÄNGIG. Das Konfigurationsskript gibt sehr deutlich an, welche Abhängigkeiten für jedes indev- oder outdev-Element erforderlich sind. Offenbar ist dieses Tool verwendet dann die Bibliotheken, um zu überprüfen, die für die Abhängigkeiten benötigt werden

Dies ist, was passiert, wenn man ffmpeg für Android

FFMPEG für Android Werkzeugketten: arm-linux-armeabi-EABI-pkg-config - gibt es eine Werkzeugkette in Existenz das pkg-config-Tool enthält

[email protected]:~/android-ffmpeg/Project/jni$ ./configure_ffmpeg.sh
...
...
..
....
License: GPL version 3 or later Creating config.mak and config.h...

config.h is unchanged

config.asm is unchanged

libavutil/avconfig.h is unchanged

WARNING: /home/jasongipsyblues/Desktop/apps/android-ndk-r8b/toolchains/arm-linux-androideabi- 4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-pkg-config not found, library detection may fail.

Auf einem PC mit Ubuntu dort zu konfigurieren versucht, ist kein Problem mit Pkg-Konfig.

Vergleichen Sie bitte die folgenden Ausgaben, wenn man für die in/out Gerät ALSA aus den config.log Dateien für eine Ubuntu x86 PC und das für das Android-Box greps die android-NDK-r8-Toolchain Dieser

[email protected]:~/android-ffmpeg/Project/jni/ffmpeg$ cat config.log|grep >alsa
alsa_indev
alsa_outdev
alsa_asoundlib_h
INDEV_LIST='alsa_indev
OUTDEV_LIST='alsa_outdev
alsa_indev='yes'
alsa_indev_deps='alsa_asoundlib_h snd_pcm_htimestamp'
alsa_outdev='yes'
alsa_outdev_deps='alsa_asoundlib_h'
indevs_if_any='alsa_indev
outdevs_if_any='alsa_outdev
check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound
check_func_headers alsa/asoundlib.h snd_pcm_htimestamp -lasound
1 #include
/tmp/ffconf.VCjQQAHQ.c:1:28: error: alsa/asoundlib.h: No such file or directory

mit der Compiler Ausgabe zeigt die Quelle des Fehlers:

check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound
check_func_headers alsa/asoundlib.h snd_pcm_htimestamp -lasound
check_ld cc -lasound
check_cc
BEGIN /tmp/ffconf.VCjQQAHQ.c
1 #include
2 long check_snd_pcm_htimestamp(void) { return (long) snd_pcm_htimestamp; }
3 int main(void) { return 0; }
END /tmp/ffconf.VCjQQAHQ.c
/home/jasongipsyblues/Desktop/apps/android-ndk-r8b/toolchains/arm-linux-androideabi->4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/jasongipsyblues/Desktop/apps/android-ndk-r8b/platforms/android-14/arch-arm -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -I../x264 -mcpu=cortex-a9 -std=c99 -fomit-frame-pointer -fPIC -marm -c -o /tmp/ffconf.I2B2AXfH.o
/tmp/ffconf.VCjQQAHQ.c
/tmp/ffconf.VCjQQAHQ.c:1:28: error: alsa/asoundlib.h: No such file or directory
/tmp/ffconf.VCjQQAHQ.c: In function 'check_snd_pcm_htimestamp':
/tmp/ffconf.VCjQQAHQ.c:2: error: 'snd_pcm_htimestamp' undeclared (first use in this function)
/tmp/ffconf.VCjQQAHQ.c:2: error: (Each undeclared identifier is reported only once
/tmp/ffconf.VCjQQAHQ.c:2: error: for each function it appears in.)

This is for the Ubuntu x86PC ffmpeg
[email protected]:~/ffmpeg$ cat config.log|grep alsa
alsa_indev
alsa_outdev
alsa_asoundlib_h
INDEV_LIST='alsa_indev
OUTDEV_LIST='alsa_outdev
alsa_indev='yes'
alsa_indev_deps='alsa_asoundlib_h snd_pcm_htimestamp'
alsa_outdev='yes'
alsa_outdev_deps='alsa_asoundlib_h'
indevs_if_any='alsa_indev
outdevs_if_any='alsa_outdev
check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound
check_func_headers alsa/asoundlib.h snd_pcm_htimestamp -lasound
1 #include
There is no error here and alsa is successfully included in the ffmpeg build

+0

Haben Sie eine Lösung gefunden, um diese Warnung wirklich zu beheben? –

Antwort

2

https://github.com/guardianproject/android-ffmpeg

https://github.com/guardianproject/android-ffmpeg/commit/f08db49e613a7ea4423effb22973e3f1afefb819

schauen Sie sich die Links an. Er hat gerade einen Commit gemacht, inklusive 'freetype2' Submodul, um das pkg-config Problem zu umgehen.

+1

@wrowntreerob, vielen Dank für diesen Link. Ich habe einen Ollok genommen und habe versucht zu verstehen, was er hier macht. Ich habe immer noch eine Reihe von Fragen. Was ist das ultimative Ergebnis der Ausführung der Fake-Pkg-Config? Wird versucht, die Bibliothek zu erstellen oder die fehlenden oder erforderlichen Dateien direkt dem Compiler und Linker zur Verfügung zu stellen. – user1545779

+0

keine Ahnung ... ich habe nie auf die Compiler-Warnungen auf 'pkg-config' geachtet. –