[FFmpeg-user] Building for ARM

JITENDRA SINGH narukajsingh at gmail.com
Fri Jun 10 08:44:13 CEST 2011


Hi,

Were you able to solve this problem:
undefined reference to `ff_find_pix_fmt'

I am facing the same while trying to build for arm9..

PS: I face this warning "pkg-config not found, library detection may
fail" during ./configure.

Thank you,
Naruka

================================
Hi all,

I'm building ffmpeg for an ARM with Linux headers 2.6 to send video
frames over RTP, ffmpeg only have to packet these frames and send it.
I need to optimize the space so I use the minimal configuration.

I have compile the revision 26400 with this configuration and works fine:

./configure --enable-cross-compile
--cross-prefix=../../Cross/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-
--target-os=linux
--cc=../../Cross/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc
--host-cc=../../Cross/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc
--cpu=armv5te --arch=arm --enable-static --disable-asm
--enable-armv5te --disable-stripping --disable-debug
--disable-encoders --disable-decoders --disable-parsers
--disable-ffplay --disable-ffserver --disable-devices --disable-bsfs
--disable-muxers --enable-parser=mpeg4video --enable-muxer=rtp
--enable-parser=aac --disable-filters --disable-demuxers
--enable-demuxer=m4v --extra-libs=-static --extra-cflags=--static
--disable-ffprobe

I use with this command (with this output):

# ffmpeg -vcodec copy -i pipe -an -f rtp rtp://224.52.52.22:7004
-sameq -v 0 < /dev/null &
[3] 178
# FFmpeg version SVN-r26400, Copyright (c) 2000-2011 the FFmpeg developers
  built on Jan 18 2011 09:48:17 with gcc 4.1.2
  configuration: --enable-cross-compile
--cross-prefix=../../Cross/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-
--target-os=linux
--cc=../../Cross/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc
--host-cc=../../Cross/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc
--cpu=armv5te --arch=arm --enable-static --disable-asm
--enable-armv5te --disable-stripping --disable-debug
--disable-encoders --disable-decoders --disable-parsers
--disable-ffplay --disable-ffserver --disable-devices --disable-bsfs
--disable-muxers --enable-parser=mpeg4video --enable-muxer=rtp
--enable-parser=aac --disable-filters --disable-demuxers
--enable-demuxer=m4v --extra-libs=-static --extra-cflags=--static
  libavutil     50.36. 0 / 50.36. 0
  libavcore      0.16. 1 /  0.16. 1
  libavcodec    52.108. 0 / 52.108. 0
  libavformat   52.93. 0 / 52.93. 0
  libavdevice   52. 2. 3 / 52. 2. 3
  libavfilter    1.74. 0 /  1.74. 0
  libswscale     0.12. 0 /  0.12. 0
puntero a frame (fis): 0xc2780004
[m4v @ 0x3538a0] max_analyze_duration reached
[m4v @ 0x3538a0] Estimating duration from bitrate, this may be inaccurate
Input #0, m4v, from 'pipe':
  Duration: N/A, bitrate: N/A
    Stream #0.0: Video: [0][0][0][0] / 0x0000, 352x288 [PAR 1:1 DAR
11:9], 25 fps, 25 tbr, 1200k tbn, 25 tbc
Output #0, rtp, to 'rtp://224.52.52.22:7004':
  Metadata:
    encoder         : Lavf52.93.0
    Stream #0.0: Video: [0][0][0][0] / 0x0000, 352x288 [PAR 1:1 DAR
11:9], q=2-31, 90k tbn, 25 tbc
Stream mapping:
  Stream #0.0 -> #0.0
SDP:
v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 224.52.52.22
t=0 0
a=tool:libavformat 52.93.0
m=video 7004 RTP/AVP 96
a=rtpmap:96 MP4V-ES/90000
a=fmtp:96 profile-level-id=1;
config=000001B003000001B50900000100000001200086C400668582120A31

Press [q] to stop encoding


If I try to use the version 0.6.3, I can compile it fine, but it
doesn't work, i get this output:

# ./ffmpeg.last -vcodec copy -i pipe -an -f rtp
rtp://224.52.52.22:7004 -sameq -re
FFmpeg version 0.6.3, Copyright (c) 2000-2010 the FFmpeg developers
  built on May 12 2011 13:00:49 with gcc 4.1.2
  configuration: --enable-cross-compile
--cross-prefix=../../Cross/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-
--target-os=linux
--cc=../../Cross/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc
--host-cc=../../Cross/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc
--cpu=armv5te --arch=arm --enable-static --disable-asm
--enable-armv5te --disable-stripping --disable-debug
--disable-encoders --disable-decoders --disable-parsers
--disable-ffplay --disable-ffserver --disable-devices --disable-bsfs
--disable-muxers --enable-parser=mpeg4video --enable-muxer=rtp
--enable-parser=aac --disable-filters --disable-demuxers
--enable-demuxer=m4v --extra-libs=-static --extra-cflags=--static
--disable-ffprobe
  libavutil     50.15. 1 / 50.15. 1
  libavcodec    52.72. 2 / 52.72. 2
  libavformat   52.64. 2 / 52.64. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.11. 0 /  0.11. 0
[m4v @ 0x30e360]max_analyze_duration reached
[m4v @ 0x30e360]Estimating duration from bitrate, this may be inaccurate
Input #0, m4v, from 'pipe':
  Duration: N/A, bitrate: N/A
    Stream #0.0: Video: 0x0000, 352x288 [PAR 1:1 DAR 11:9], 25 fps, 25
tbr, 1200k tbn, 25 tbc


And doesn't sent anything.

My question is I how can I debug it or if I'm doing anything wrong.

I also try to use the last version or the 0.7.rc1 but both doesn't
compile, I get this error:

/home/john/ffmpeg/ffmpeg-0.7-rc1/libavformat/libavformat.a(utils.o):
In function `.L2670':
utils.c:(.text+0x928c): undefined reference to `ff_find_pix_fmt'
collect2: ld returned 1 exit status
make: *** [ffmpeg_g] Error 1

Thanks for the answers.

Wernam
==========================================


More information about the ffmpeg-user mailing list