Tonight I wanted to play around with the ffmpeg API and see how complicated it was. I downloaded the example decoding_encoding.c file and tried to compile it against a local build of ffmpeg I made based on their Ubuntu compiling tutorial.
Well let me tell you, ffmpeg sucks at getting people up to speed. Yeah it’s great they have a few examples on how to use the API, but their makefile is dependent on pkg-config, so it is totally useless for a cross compilation, you would have to add the libs path to your build machine, which is dumb. Not to mention the libraries they use in the example makefile are missing library references required for the example, leading to a TON of missing symbol errors! Well after a bunch of searching I found one or two references to people who got the examples built which lead to the commands to build the damn thing on my machine. This post is for everyone wanting to get started with the ffmpeg API and so I don’t loose it! Enjoy
The -I and -L paths should be to your ffmpeg build, mine was obviously /home/s1axter/projects/ffmpeg_sources/ffmpeg_build/
gcc -Wall -I/home/s1axter/projects/ffmpeg_sources/ffmpeg_build/include -c -o decoding_encoding.o decoding_encoding.c
gcc -Wall -L/home/s1axter/projects/ffmpeg_sources/ffmpeg_build/lib -L/usr/lib/i386-linux-gnu -o decoding_encoding decoding_encoding.o -lavformat -lavcodec -lswscale -lavdevice -lavfilter -lfdk-aac -lpostproc -lswresample -lx264 -lavutil -lvpx -lvorbisenc -lvorbis -lmp3lame -ltheora -ltheoraenc -ltheoradec -lva -ldl -lz -pthread -lm
And a Makefile: ffmpeg makefile