[FFmpeg-user] Building for ARM

Wernam Wer wernam at hotmail.com
Thu May 12 13:53:37 CEST 2011


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