[Ffmpeg-devel] ffmpeg cross-compile for big-endian armv5
John Clonts
john
Thu May 25 02:23:35 CEST 2006
Hello all,
I am trying to cross-compile and use ffmpeg on an NSLU2 armv5teb to
do (low-quality) video capture into an mpg.
Like this:
cat /dev/video0 > vid.raw
ffmpeg -f rawvideo -pix_fmt rgb24 -i vid.raw vid.mpg
The file it produces does not play. I know vid.raw is good because I
can use the same ffmpeg command on my desktop box and it does produce
a good vid.mpg.
The first few lines of the "bad" vid.mpg are:
$ od -x slug_vid.mpg | head
0000000 01ba 0000 0100 2100 03f3 0180 01bb 0000
0000020 0900 0000 21ff f300 e0e0 00e6 0100 07e0
0000040 21df 0100 0100 01b3 0000 f013 1400 e018
0000060 ffff 01b8 0000 0000 0008 0100 0000 fff8
0000100 000f 0101 0000 f8c9 13cd 00df f96d 7bd3
The lines from the "good" one are:
$ od -x i486_vid.mpg | head
0000000 0000 ba01 0021 0001 c301 6733 0000 bb01
0000020 0900 33c3 0067 ff21 e0e0 00e6 0100 07e0
0000040 31df 0300 915f 0011 4303 0071 0100 14b3
0000060 f000 ff13 e0ff 0018 0100 00b8 0008 0000
0000100 0100 0000 ff0f 00f8 0100 1301 f8cd f9c9
As you can see there is some type of "endianess" problem. I found a
variable in the configure script and set bigendian="yes" (then
reconfigured, recompiled, and redeployed). But surprisingly it made
no difference
whatsoever.
Im using an OpenEmbedded environment, this was my configure log:
NOTE: Running /media/hda8/slug/openslug/tmp/work/ffmpeg-0.4.9-pre1-r1/ffmpeg-0.4.9-pre1/configure
--build=i686-linux --host=armeb-linux
--target=armeb-linux --prefix=/usr --exec_prefix=/usr
--bindir=/usr/bin --sbindir=/usr/sbin
--libexecdir=/usr/libexec --datadir=/usr/share
--sysconfdir=/etc --sharedstatedir=/usr/com
--localstatedir=/var --libdir=/usr/lib
--includedir=/usr/include --oldincludedir=/usr/include
--infodir=/usr/share/info --mandir=/usr/share/man
--enable-mp3lame --enable-vorbis --enable-faad --enable-faadbin
--enable-faac --enable-a52 --enable-a52bin --enable-pp
--enable-shared-pp --enable-shared --disable-amr_nb
--enable-amr_nb-fixed --disable-amr_wb --enable-pthreads
--enable-gpl --enable-zlib --disable-audio-beos --disable-dv1394
--disable-debug --disable-ffserver --disable-ffplay
--cross-prefix=armeb-linux- --extra-cflags=$(TARGET_CFLAGS)
--extra-ldflags=$(TARGET_LDFLAGS) --extra-libs=$(TARGET_LDFLAGS)
--cpu=armeb --prefix=/media/hda8/slug/openslug/tmp/work/ffmpeg-0.4.9-pre1-r1/image/usr
--mandir=/media/hda8/slug/openslug/tmp/work/ffmpeg-0.4.9-pre1-r1/image/usr/share/man
...
Install prefix
/media/hda8/slug/openslug/tmp/work/ffmpeg-0.4.9-pre1-r1/image/usr
Source path
/media/hda8/slug/openslug/tmp/work/ffmpeg-0.4.9-pre1-r1/ffmpeg-0.4.9-pre1
C compiler ccache armeb-linux-gcc -march=armv5te -mtune=xscale
-mthumb-interwork -mno-thumb
make make
CPU unknown (generic)
Big Endian yes
inttypes.h yes
broken inttypes.h no
gprof enabled no
zlib enabled yes
mp3lame enabled yes
vorbis enabled yes
faad enabled yes
faadbin enabled yes
faac enabled yes
a52 support yes
a52 dlopened yes
pp support yes
debug symbols no
optimize yes
shared pp yes
Video hooking yes
SDL support yes
risky / patent encumbered codecs yes
Imlib2 support no
freetype support no
Sun medialib support no
pthreads support yes
AMR-NB float support no
AMR-NB fixed support yes
AMR-WB float support no
License: GPL
Creating config.mak and config.h
Am I just missing some additional configuration bit? Or any other ideas?
Thanks!
John
More information about the ffmpeg-devel
mailing list