问题描述
有人可以详细写一篇关于如何为 Raspberry Pi 编译 Xuggler 的文章吗?
Can someone post a detailed write up, on how to compile Xuggler for Raspberry Pi?
推荐答案
经过大约 5 天的工作,我将以下指南用于为 Raspberry Pi 编译 xuggler(所需时间:8 小时):
After working on for about 5 days , I am putting the following guide to compile xuggler for Raspberry Pi (Time required : 8 hrs):
先决条件:
- 具有 512 MB RAM 的 Raspberry Pi Model B+(任何小于此的型号都不会为您提供已编译的二进制文件,并且会在编译期间卡住)
- Raspbian 安装在 SD 卡上(超过 4GB SD 卡即可)
步骤:
切换到root"用户.
Switch to 'root' user.
从基本 xuggler 构建页面安装依赖项 (http://www.xuggle.com/xuggler/build) 标记为必需"
From the Basic xuggler build page install the dependencies (http://www.xuggle.com/xuggler/build) labeled as 'Required'
创建和导出变量如下(制作相关目录)
Create and export variables as follows (Make the relevant directories)
export XUGGLE_HOME=/home/pi/Downloads/xuggler
export PATH=$XUGGLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$XUGGLE_HOME/lib:$LD_LIBRARY_PATH
创建以下链接:
Create the following link:
sudo ln -s /usr/bin/make /usr/bin/gmake
如果您支持任何类型的网络代理,那么也设置以下变量:
If you are behind any kind of web proxy then set the following variables too:
export http_proxy='proxy-url:port'
export https_proxy='proxy-url:port'
export ftp_proxy='proxy-url:port'
现在移动到以下目录:
Now move to the following directory:
cd /home/pi/Downloads/
从这里下载 xuggler 代码(https://github.com/artclarke/xuggle-xuggler):
git clone https://github.com/artclarke/xuggle-xuggler.git
代码将下载到名为xuggle-xuggler"的目录
The code would be downloaded in the directory named 'xuggle-xuggler'
移动到目录 'xuggle-xuggler'
Move inside the directory 'xuggle-xuggler'
如果您在代理后面,请在文件build.xml"中添加以下行,就在文件中的property"xml标签下方:
If you are behind a proxy add the following line in the file 'build.xml', just below the 'property' xml tags in the file:
<setproxy proxyhost="proxy-url" proxyport="port"/>
现在编辑文件captive/libspeex/csrc/configure"如下:
Now edit the file 'captive/libspeex/csrc/configure' as follows:
来自:
CFLAGS="$CFLAGS -O3 -msse"
致:
CFLAGS="$CFLAGS -O3"
和
来自:
if test "$has_sse" = yes; then
$as_echo "#define _USE_SSE /**/" >>confdefs.h
fi
致:
#if test "$has_sse" = yes; then
#$as_echo "#define _USE_SSE /**/" >>confdefs.h
#fi
有关详细信息,请参阅此.
Refer this for more info.
现在编辑文件captive/libspeex/csrc/configure.ac"如下:
Now edit the file ' captive/libspeex/csrc/configure.ac' as follows:
来自:
CFLAGS="$CFLAGS -O3 -msse"
致:
CFLAGS="$CFLAGS -O3"
还有
来自:
if test "$has_sse" = yes; then
AC_DEFINE([_USE_SSE], , [Enable SSE support])
fi
致:
#if test "$has_sse" = yes; then
# AC_DEFINE([_USE_SSE], , [Enable SSE support])
#fi
有关详细信息,请参阅此.
Refer this for more info.
现在如 xuggler 高级构建链接 (http://www.xuggle.com/xuggler/advbuild),启动命令:
Now as listed in the xuggler advance build link (http://www.xuggle.com/xuggler/advbuild), launch the command:
ant stage
该过程将在 libX264 编译时或编译过程中失败,要绕过它,请在现在生成的文件中添加以下编译开关,即编辑文件captive/libx264/incarcerate.in":
The process will fail at or during the compilation of libX264, to circumvent it, add the following compile switches in the now generated file i.e edit file 'captive/libx264/incarcerate.in' :
来自:
X264_OPTIONS="$X264_OPTIONS --enable-static"
X264_OPTIONS="$X264_OPTIONS --enable-pic"
致:
X264_OPTIONS="$X264_OPTIONS --disable-asm"
X264_OPTIONS="$X264_OPTIONS --enable-shared"
X264_OPTIONS="$X264_OPTIONS --enable-static"
X264_OPTIONS="$X264_OPTIONS --enable-pic"
现在运行以下命令(一一):
Now run following command(one by one only):
ant clobber
ant clean
ant stage
这次所有的编译步骤都会完成.
This time all the compile steps will go through.
运行安装命令:
ant install
xuggler 二进制文件将安装在第 3 步中定义的XUGGLE_HOME"位置.
The xuggler binaries would be installed at the location 'XUGGLE_HOME' as defined in step #3.
Java 二进制文件的 xuggler maven 存储库将位于/root/.m2/repository/xuggle/xuggle-xuggler"
The xuggler maven repository for java binaries would be located at '/root/.m2/repository/xuggle/xuggle-xuggler'
您还可以查看../xuggle-xuggler/dist"目录以检查所有本机和 Java 二进制文件,以供非 Maven 使用.
Also you can check out the '../xuggle-xuggler/dist' directory to check all the native and java binaries for your non-maven kind of use.
编译后的二进制文件在 Raspberry PI(Arch Linux、Raspbian)上运行良好.
The compiled binaries ran fine on Raspberry PI (Arch Linux, Raspbian).
如果您没有时间编译,请从 此处.
在使用我编译的java二进制文件之前,请确保在java类路径或shell终端中添加步骤#3中定义的变量.
Make sure to add the variables as defined in step #3 in java class path or shell terminal before using the java binaries compiled by me.
特别感谢 11101101b 的指导和帮助.
Special thanks to 11101101b for guidance and helping.
参考文献:
- https://github.com/ed/xuggle-xuggler/commit/68c84b4b4b4b4b4b4b4b8c70370303
- 为 Raspberry pi 编译 Xuggler 时的问题 #1使用 libspeex
- 如何我可以构建 Xuggle Xuggler 的 GPL 和 LGPL 版本吗?
- 为 Raspberry pi 编译 Xuggler 时的问题 #2使用 libx264
- http://blog.oneiroi.co.uk/linux/ffmpeg-install-with-libx264-h264/
- http://www.unix.com/unix-for-dummies-questions-and-answers/53319-change-target-symbolic-link.html
- http://www.raspberrypi.org/arch-linux-arm-available-for-download/
- 特别感谢:https://groups.google.com/forum/#!topic/xuggler-users/F-fSSm46ZaI
- 对于 x86_64 Arch,这有帮助:在 ubuntu 11.10 中安装 xuggler 时收到错误消息
- 让 git 与代理服务器一起工作
- Xuggler 代码:https://github.com/artclarke/xuggle-xuggler
- 树莓派的 Xuggler:https://github.com/ed/xuggle-xuggler/tree/pi
这篇关于为 Raspberry Pi 编译 Xuggler 的指南的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!