ffmpeg - 使用 libspeex 为 Raspberry pi 编译 Xuggler 时出现问题 #1

标签 ffmpeg raspberry-pi raspbian xuggler speex

我正在尝试编译 Xuggler对于 Raspberry Pi(在 Debian OS aka Raspbian 上运行),

我遵循了可用的“基本构建说明”here用于编译 Xuggler。

成功安装所有先决条件并设置正确路径后,我运行以下命令:

ant run-tests

一段时间后,我面临以下错误,并且 ant 构建失败:

{滚动到日志末尾查看问题}
 [exec] Making all in libspeex
 [exec] make[2]: Entering directory `/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/libspeex'
 [exec] Incarcerated package must be reconfigured; regenerating out of date captive Makefile from: ../../../../../captive/libspeex/csrc/configure
 [exec] /bin/mkdir -p csrc
 [exec] cd csrc && sh ../incarcerate
 [exec] checking for a BSD-compatible install... /usr/bin/install -c
 [exec] checking whether build environment is sane... yes
 [exec] checking for a thread-safe mkdir -p... /bin/mkdir -p
 [exec] checking for gawk... no
 [exec] checking for mawk... mawk
 [exec] checking whether make sets $(MAKE)... yes
 [exec] checking build system type... armv6l-unknown-linux-gnu
 [exec] checking host system type... armv6l-unknown-linux-gnu
 [exec] checking how to print strings... printf
 [exec] checking for style of include used by make... GNU
 [exec] checking for gcc... gcc
 [exec] checking whether the C compiler works... yes
 [exec] checking for C compiler default output file name... a.out
 [exec] checking for suffix of executables...
 [exec] checking whether we are cross compiling... no
 [exec] checking for suffix of object files... o
 [exec] checking whether we are using the GNU C compiler... yes
 [exec] checking whether gcc accepts -g... yes
 [exec] checking for gcc option to accept ISO C89... none needed
 [exec] checking dependency style of gcc... none
 [exec] checking for a sed that does not truncate output... /bin/sed
 [exec] checking for grep that handles long lines and -e... /bin/grep
 [exec] checking for egrep... /bin/grep -E
 [exec] checking for fgrep... /bin/grep -F
 [exec] checking for ld used by gcc... /usr/bin/ld
 [exec] checking if the linker (/usr/bin/ld) is GNU ld... yes
 [exec] checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
 [exec] checking the name lister (/usr/bin/nm -B) interface... BSD nm
 [exec] checking whether ln -s works... yes
 [exec] checking the maximum length of command line arguments... 805306365
 [exec] checking whether the shell understands some XSI constructs... yes
 [exec] checking whether the shell understands "+="... yes
 [exec] checking how to convert armv6l-unknown-linux-gnu file names to armv6l-unknown-linux-gnu format... func_convert_file_noop
 [exec] checking how to convert armv6l-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
 [exec] checking for /usr/bin/ld option to reload object files... -r
 [exec] checking for objdump... objdump
 [exec] checking how to recognize dependent libraries... pass_all
 [exec] checking for dlltool... false
 [exec] checking how to associate runtime and link libraries... printf %s\n
 [exec] checking for archiver @FILE support... @
 [exec] checking for strip... strip
 [exec] checking for ranlib... ranlib
 [exec] checking command to parse /usr/bin/nm -B output from gcc object... ok
 [exec] checking for sysroot... no
 [exec] checking for mt... mt
 [exec] checking if mt is a manifest tool... no
 [exec] checking how to run the C preprocessor... gcc -E
 [exec] checking for ANSI C header files... yes
 [exec] checking for sys/types.h... yes
 [exec] checking for sys/stat.h... yes
 [exec] checking for stdlib.h... yes
 [exec] checking for string.h... yes
 [exec] checking for memory.h... yes
 [exec] checking for strings.h... yes
 [exec] checking for inttypes.h... yes
 [exec] checking for stdint.h... yes
 [exec] checking for unistd.h... yes
 [exec] checking for dlfcn.h... yes
 [exec] checking for objdir... .libs
 [exec] checking if gcc supports -fno-rtti -fno-exceptions... no
 [exec] checking for gcc option to produce PIC... -fPIC -DPIC
 [exec] checking if gcc PIC flag -fPIC -DPIC works... yes
 [exec] checking if gcc static flag -static works... yes
 [exec] checking if gcc supports -c -o file.o... yes
 [exec] checking if gcc supports -c -o file.o... (cached) yes
 [exec] checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
 [exec] checking dynamic linker characteristics... GNU/Linux ld.so
 [exec] checking how to hardcode library paths into programs... immediate
 [exec] checking whether stripping libraries is possible... yes
 [exec] checking if libtool supports shared libraries... yes
 [exec] checking whether to build shared libraries... no
 [exec] checking whether to build static libraries... yes
 [exec] checking whether to enable maintainer-specific portions of Makefiles... no
 [exec] checking whether byte ordering is bigendian... no
 [exec] checking for an ANSI C-conforming const... yes
 [exec] checking for inline... inline
 [exec] checking for C/C++ restrict keyword... __restrict
 [exec] checking for C99 variable-size arrays... yes
 [exec] checking alloca.h usability... yes
 [exec] checking alloca.h presence... yes
 [exec] checking for alloca.h... yes
 [exec] checking getopt.h usability... yes
 [exec] checking getopt.h presence... yes
 [exec] checking for getopt.h... yes
 [exec] checking for alloca... yes
 [exec] checking for SSE in current arch/CFLAGS... no
 [exec] checking for ELF visibility... yes
 [exec] checking sys/soundcard.h usability... yes
 [exec] checking sys/soundcard.h presence... yes
 [exec] checking for sys/soundcard.h... yes
 [exec] checking sys/audioio.h usability... no
 [exec] checking sys/audioio.h presence... no
 [exec] checking for sys/audioio.h... no
 [exec] checking for Ogg... yes
 [exec] checking for sin in -lm... yes
 [exec] checking for getopt_long... yes
 [exec] checking for main in -lwinmm... no
 [exec] checking for pkg-config... /usr/bin/pkg-config
 [exec] checking pkg-config is at least version 0.9.0... yes
 [exec] checking size of short... 0
 [exec] checking size of int... 0
 [exec] checking size of long... 0
 [exec] configure: creating ./config.status
 [exec] config.status: creating Makefile
 [exec] config.status: creating libspeex/Makefile
 [exec] config.status: creating src/Makefile
 [exec] config.status: creating doc/Makefile
 [exec] config.status: creating Speex.spec
 [exec] config.status: creating include/Makefile
 [exec] config.status: creating include/speex/Makefile
 [exec] config.status: creating speex.pc
 [exec] config.status: creating speexdsp.pc
 [exec] config.status: creating win32/Makefile
 [exec] config.status: creating win32/libspeex/Makefile
 [exec] config.status: creating win32/speexenc/Makefile
 [exec] config.status: creating win32/speexdec/Makefile
 [exec] config.status: creating symbian/Makefile
 [exec] config.status: creating win32/VS2003/Makefile
 [exec] config.status: creating win32/VS2003/tests/Makefile
 [exec] config.status: creating win32/VS2003/libspeex/Makefile
 [exec] config.status: creating win32/VS2003/libspeexdsp/Makefile
 [exec] config.status: creating win32/VS2003/speexdec/Makefile
 [exec] config.status: creating win32/VS2003/speexenc/Makefile
 [exec] config.status: creating win32/VS2005/Makefile
 [exec] config.status: creating win32/VS2005/libspeex/Makefile
 [exec] config.status: creating win32/VS2005/speexdec/Makefile
 [exec] config.status: creating win32/VS2005/speexenc/Makefile
 [exec] config.status: creating win32/VS2005/libspeexdsp/Makefile
 [exec] config.status: creating win32/VS2005/tests/Makefile
 [exec] config.status: creating win32/VS2008/libspeexdsp/Makefile
 [exec] config.status: creating win32/VS2008/Makefile
 [exec] config.status: creating win32/VS2008/speexdec/Makefile
 [exec] config.status: creating win32/VS2008/tests/Makefile
 [exec] config.status: creating win32/VS2008/libspeex/Makefile
 [exec] config.status: creating win32/VS2008/speexenc/Makefile
 [exec] config.status: creating include/speex/speex_config_types.h
 [exec] config.status: creating ti/Makefile
 [exec] config.status: creating ti/speex_C54_test/Makefile
 [exec] config.status: creating ti/speex_C55_test/Makefile
 [exec] config.status: creating ti/speex_C64_test/Makefile
 [exec] config.status: creating config.h
 [exec] config.status: executing depfiles commands
 [exec] config.status: executing libtool commands
 [exec] Type "make; make install" to compile and install Speex
 [exec] Incarcerated package configured: ../../../../../captive/libspeex
 [exec] Incarcerating package ../../../../../captive/libspeex to fake DESTDIR=/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/stage
 [exec] make[3]: Entering directory `/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/libspeex/csrc'
 [exec] make  all-recursive
 [exec] make[4]: Entering directory `/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/libspeex/csrc'
 [exec] Making all in libspeex
 [exec] make[4]: *** [all-recursive] Error 1
 [exec] make[3]: *** [all] Error 2
 [exec] make[4]: Leaving directory `/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/libspeex/csrc'
 [exec] make[3]: Leaving directory `/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/libspeex/csrc'
 [exec] Out of date files; re-running make
 [exec] make[3]: Entering directory `/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/libspeex/csrc'
 [exec] make  all-recursive
 [exec] make[4]: Entering directory `/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/libspeex/csrc'
 [exec] Making all in libspeex
 [exec] make[5]: Entering directory `/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/libspeex/csrc/libspeex'
 [exec] /bin/bash ../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/../../../../captive/libspeex/csrc/libspeex -I.. -I/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/../../../../captive/libspeex/csrc/include -I../include -I.. -I/home/pi/Downloads/xuggler/include     -I/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/stage/home/pi/Downloads/xuggler/include  -fvisibility=hidden -O3 -msse -c -o cb_search.lo /home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/../../../../captive/libspeex/csrc/libspeex/cb_search.c
 [exec] libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/../../../../captive/libspeex/csrc/libspeex -I.. -I/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/../../../../captive/libspeex/csrc/include -I../include -I.. -I/home/pi/Downloads/xuggler/include -I/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/stage/home/pi/Downloads/xuggler/include -fvisibility=hidden -O3 -msse -c /home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/../../../../captive/libspeex/csrc/libspeex/cb_search.c  -fPIC -DPIC -o cb_search.o
 [exec] cc1: error: unrecognized command line option '-msse'
 [exec] make[5]: *** [cb_search.lo] Error 1
 [exec] make[4]: *** [all-recursive] Error 1
 [exec] make[3]: *** [all] Error 2
 [exec] make[2]: *** [all-local] Error 2
 [exec] make[1]: *** [all-recursive] Error 1
 [exec] make: *** [all-recursive] Error 1
 [exec] make[5]: Leaving directory `/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/libspeex/csrc/libspeex'
 [exec] make[4]: Leaving directory `/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/libspeex/csrc'
 [exec] make[3]: Leaving directory `/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/libspeex/csrc'
 [exec] make[2]: Leaving directory `/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive/libspeex'
 [exec] make[1]: Leaving directory `/home/pi/Downloads/xuggle-xuggler/build/native/armv6l-unknown-linux-gnueabihf/captive'

BUILD FAILED
/home/pi/Downloads/xuggle-xuggler/mk/buildtools/buildhelper.xml:1192: exec returned: 2

Total time: 73 minutes 17 seconds

我在这里无法理解问题陈述“无法识别的命令行选项'-msse'”,有人可以告诉我如何解决这个问题或在 xuggler 中规避它吗?

最佳答案

以下是我在 pi 上构建时为解决 libspeex 问题所做的确切代码更改。正如我在 another question you asked 中提到的那样,你可以看到我在 github 上构建的 pi 上所做的更改。我知道我的 pi 分支不包括 X264,但它确实有 libspeex。

您可以在 github here 上查看此提交中的更改:

enter image description here

关于ffmpeg - 使用 libspeex 为 Raspberry pi 编译 Xuggler 时出现问题 #1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24844601/

相关文章:

android - 用于在 android 中合并 mp4 视频的 FFMPEG 命令问题

node.js - 使用 Raspbian 升级 Node JS 版本在 Raspberry Pi 4 中不起作用

python - 树莓派 Python 错误

raspberry-pi - 无需指定端口即可远程桌面连接到 Raspberry Pi

c++ - 如何使用 pthread 在对象内部运行线程

Python/Arduino : PySerial, Matplotlib,numpy;树莓派

linux - 使用 ffmpeg 将实时视频从树莓派流式传输到 Web 服务器进行分发

ffmpeg - 如何在安装 Video-ffmpeg 时摆脱 'avformat.h' no such file or directory 错误?

javascript - Concat 音频文件然后调用创建文件

python - 使用 Python 终止 Linux 进程 - ffmpeg 终止到 Youtube 的实时流