为Raspberry Pi编译Xuggler的指南

Ash*_*rma 2 xuggler raspberry-pi raspbian

有人可以发一篇详细的文章,关于如何为Raspberry Pi编译Xuggler?

Ash*_*rma 5

在工作了大约5天之后,我将使用以下指南为Raspberry Pi编译xuggler(所需时间:8小时):

先决条件:

  1. Raspberry Pi Model B + 512 MB RAM(任何比这更小的模型都不会给你编译的二进制文件,并且会在编译期间卡住)
  2. Raspbian安装在SD卡上(超过4GB的SD卡可以)

脚步:

  1. 切换到"root"用户.

  2. 从Basic xuggler构建页面安装标记为"Required" 的依赖项(http://www.xuggle.com/xuggler/build)

  3. 创建和导出变量如下(制作相关目录)

    export XUGGLE_HOME=/home/pi/Downloads/xuggler    
    export PATH=$XUGGLE_HOME/bin:$PATH    
    export LD_LIBRARY_PATH=$XUGGLE_HOME/lib:$LD_LIBRARY_PATH
    
    Run Code Online (Sandbox Code Playgroud)
  4. 创建以下链接:

    sudo ln -s /usr/bin/make /usr/bin/gmake
    
    Run Code Online (Sandbox Code Playgroud)
  5. 如果您在任何类型的Web代理后面,那么也设置以下变量:

    export http_proxy='proxy-url:port'    
    export https_proxy='proxy-url:port'    
    export ftp_proxy='proxy-url:port'
    
    Run Code Online (Sandbox Code Playgroud)
  6. 现在转到以下目录:

    cd /home/pi/Downloads/
    
    Run Code Online (Sandbox Code Playgroud)
  7. 从这里下载xuggler代码(https://github.com/artclarke/xuggle-xuggler):

    git clone https://github.com/artclarke/xuggle-xuggler.git
    
    Run Code Online (Sandbox Code Playgroud)
  8. 代码将下载到名为'xuggle-xuggler'的目录中

  9. 移动目录'xuggle-xuggler'

  10. 如果您在代理后面,请在文件'build.xml'中添加以下行,就在文件中'property'xml标记的下方:

    <setproxy proxyhost="proxy-url" proxyport="port"/>
    
    Run Code Online (Sandbox Code Playgroud)
  11. 现在编辑文件'captive/libspeex/csrc/configure',如下所示:

    从:

    CFLAGS="$CFLAGS -O3 -msse"
    
    Run Code Online (Sandbox Code Playgroud)

    至:

    CFLAGS="$CFLAGS -O3"
    
    Run Code Online (Sandbox Code Playgroud)

    从:

    if test "$has_sse" = yes; then
    $as_echo "#define _USE_SSE /**/" >>confdefs.h
    fi
    
    Run Code Online (Sandbox Code Playgroud)

    至:

    #if test "$has_sse" = yes; then
    #$as_echo "#define _USE_SSE /**/" >>confdefs.h
    #fi
    
    Run Code Online (Sandbox Code Playgroud)

    有关详细信息,请参阅

  12. 现在编辑文件'captive/libspeex/csrc/configure.ac',如下所示:

    从:

    CFLAGS="$CFLAGS -O3 -msse"
    
    Run Code Online (Sandbox Code Playgroud)

    至:

    CFLAGS="$CFLAGS -O3"
    
    Run Code Online (Sandbox Code Playgroud)

    从:

    if test "$has_sse" = yes; then
     AC_DEFINE([_USE_SSE], , [Enable SSE support])
    fi
    
    Run Code Online (Sandbox Code Playgroud)

    至:

    #if test "$has_sse" = yes; then
    # AC_DEFINE([_USE_SSE], , [Enable SSE support])
    #fi
    
    Run Code Online (Sandbox Code Playgroud)

    有关详细信息,请参阅

  13. 现在,如xuggler advance build链接(http://www.xuggle.com/xuggler/advbuild)中所列,启动命令:

    ant stage
    
    Run Code Online (Sandbox Code Playgroud)
  14. 在编译libX264时或编译期间,该过程将失败,以绕过它,在现在生成的文件中添加以下编译开关,即编辑文件'captive/libx264/incarcerate.in':

    从:

    X264_OPTIONS="$X264_OPTIONS --enable-static"
    X264_OPTIONS="$X264_OPTIONS --enable-pic"
    
    Run Code Online (Sandbox Code Playgroud)

    至:

    X264_OPTIONS="$X264_OPTIONS --disable-asm"
    X264_OPTIONS="$X264_OPTIONS --enable-shared"
    X264_OPTIONS="$X264_OPTIONS --enable-static"
    X264_OPTIONS="$X264_OPTIONS --enable-pic"
    
    Run Code Online (Sandbox Code Playgroud)
  15. 现在运行以下命令(仅一个一个):

    ant clobber
    ant clean
    ant stage
    
    Run Code Online (Sandbox Code Playgroud)
  16. 这次所有编译步骤都将完成.

  17. 运行install命令:

    ant install
    
    Run Code Online (Sandbox Code Playgroud)
  18. xuggler二进制文件将安装在步骤#3中定义的"XUGGLE_HOME"位置.

  19. java二进制文件的xuggler maven存储库位于'/root/.m2/repository/xuggle/xuggle-xuggler'

  20. 您还可以查看'../xuggle-xuggler/dist'目录,检查所有本机和Java二进制文件,以便您使用非maven类型.

  21. 已编译的二进制文件在Raspberry PI(Arch Linux,Raspbian)上运行良好.

  22. 如果您没有时间编译,请从此处获取二进制文件.

  23. 在使用我编译的java二进制文件之前,确保在java类路径或shell终端中添加步骤#3中定义的变量.

特别感谢11101101b的指导和帮助.

参考文献:

  1. https://github.com/ed/xuggle-xuggler/commit/035c676e6e289fbb4b27dc75134a4470a5bab28a
  2. 使用libspeex为Raspberry pi编译Xuggler时出现问题#1
  3. 如何构建Xuggle Xuggler的GPL和LGPL版本?
  4. 使用libx264为Raspberry pi编译Xuggler时出现问题#2
  5. http://blog.oneiroi.co.uk/linux/ffmpeg-install-with-libx264-h264/
  6. http://www.unix.com/unix-for-dummies-questions-and-answers/53319-change-target-symbolic-link.html
  7. http://www.raspberrypi.org/arch-linux-arm-available-for-download/
  8. 特别感谢:https://groups.google.com/forum/#!topic/ xuggler-users/F-fSSm46ZaI
  9. 对于x86_64 Arch,这有助于:在ubuntu 11.10中安装xuggler时收到错误消息
  10. 让git与代理服务器一起工作
  11. Xuggler代码:https://github.com/artclarke/xuggle-xuggler
  12. 用于Raspberry Pi的Xuggler:https://github.com/ed/xuggle-xuggler/tree/pi