I’ve created a newer version of this how-to which covers all current active releases of ffmpeg . The new how-to can be found here.

I’ve created a newer version of this how-to which covers all current active releases of ffmpeg . The new how-to can be found here.
The following extra packages will be installed:
libx264-112
The following NEW packages will be installed:
libx264-112 libx264-dev
Following your guide, any ideas on this?
root@server:~/nut/ffmpeg-0.7.5# ./configure –enable-gpl –enable-nonfree –enable-postproc –enable-pthreads –enable-x11grab –enable-swscale –enable-version3 –enable-shared –disable-yasm –enable-filter=movie –enable-frei0r –enable-libdc1394 –enable-libfaac –enable-libmp3lame –enable-libx264 –enable-libdirac –enable-libxvid –enable-libfreetype –enable-libvorbis –enable-libgsm –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-libnut –enable-libopenjpeg –enable-librtmp –enable-libschroedinger –enable-libspeex –enable-libtheora
ERROR: libx264 version must be >= 0.115.
Hi Chris,
Thanks for reporting this issue. I’ve completely forgot something here (can’t remember why)! I’ve updated the post above.
The problem was, that as of version 0.7.1 ffmpeg needs libx264-115 or newer. The squeeze repository only has libx264-112. Adding the backports repository to your sources.list and then install libx264-116 and libx264-dev from the backport repository will fix the problem.
Why using ffmpeg version number 0.7 and not a newer one?
Is 0.7.11 is good for squeeze?
Regards,
Eviatar
0.8 has a new API and uses newer versions of libav libraries. I haven’t followed the ffmpeg project for a while now and i also notice they started 2 new branches, 0.9 and 0.10 I’ll have a look into those and create a new how-to for them, or update the existing ones.
You can use 0.7.11 with Debian squeeze if you like.
Thanks for the quick replay! I really appreciate it.
Another question if you please, Installing the related packages adds an extra of 26Mb. I’m installing ffmpeg on an embedded system with a limited flash size. Is it possible to maybe exclude some packages? Maybe some rarely used formats/coders?
Thanks again and best regards,
Eviatar
I didn’t mention that I bare use of ffmpeg is for transcoding and video thumbnails.
You can loose some of the libraries that you won’t be using, this how-to installs almost everything.
You can shorten it down to, say: apt-get install libmp3lame-dev libxvidcore4-dev
and configure with: ./configure –enable-gpl –enable-nonfree –enable-postproc –enable-pthreads –enable-x11grab –enable-swscale –enable-version3 –enable-shared –disable-yasm –enable-filter=movie –enable-libmp3lame –enable-libxvid
For mp3/xvid support only .. if the embedded device is powerful enough, you could add h264
Thanks Again!
Thanks’ for guide unfortunately following error is raised when I make ffmpeg.
Any ideas on this ?
/usr/bin/ld: /usr/local/lib/libnut.a(muxer.o): relocation R_X86_64_32 against `.rodata’ can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libnut.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [libavformat/libavformat.so.52] Error 1
Hi Pavel,
I think you forgot a “–enable-shared” somewhere in the process.
I’ve been trying to reproduce your error, but wasn’t able to. I installed a clean Debian system and followed the instructions above and ran through it without any problem. Note that we’re using nut and xavs from svn, so it can be that the current revision is broken. I run nut from revision 676.
Optionally you can open config.mak in the nut dir and change
CFLAGS += -Os -fomit-frame-pointer -g -Wall
to
CFLAGS += -Os -fomit-frame-pointer -g -Wall -fPIC
Your problem mostly occurs when you mix up shared and statically build objects. Make sure you build everything “shared”.
Translation for noobs:
1. go to directory where you downloaded the source of libnut, in my case /etc/nut/
2. enter make uninstall
3. enter make clean
4. change the config.mak as suggested by mark
5. type make
6. type make install
After that you can go ahead and compile ffmpeg
Good day for me after you make make install command throws me
localhost:~/nut/xavs/ffmpeg-0.7.11# make install
INSTALL libavdevice/libavdevice.a
LD libavformat/libavformat.so.52
/usr/bin/ld: /usr/local/lib/libnut.a(muxer.o): relocation R_X86_64_32 against `.rodata’ can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libnut.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [libavformat/libavformat.so.52] Error 1
Hi Fastman,
You might want to read the comments above. Someone else ran into the same problem and I already supplied a solution to the problem.
Regards,
Mark
You might want to change the link above, see this message:
http://forum.videolan.org/viewtopic.php?t=70719&f=13
debian-multimedia org is no good
At least its no good according to that website. I dont know if they are right.
Jan, that thread is almost 2.5 years old. I’ve been using this setup on our work environment for at least 2 years and we convert A LOT of movies to and from all sorts of codecs, without any problems. We’re only using the compiled libs, and compile our own ffmpeg against it (to add more codec support). Thank you for pointing it out, i appreciate it, but that issue is not at hand anymore.