[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