This being informal, it is not a comprehensive guide. This describes an ubuntu 14.04 instance, operating as a virtualbox VM on a Win10 host. FWIW, visual studio is open on the Win10 side, and I'm debugging a media player's edge cases by stepping on ubuntu how ffplay successfully handles them while my own libav based code, following everything I think it should, fails.
First the instructions are a variation from these: https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
Those should work without variation. If they don't, your linux install has issues. Those instructions do not generate ffplay, and are not debuggable. Here's the differences from those instructions to give you ffplay in addition to ffmpeg, ffprobe, and ffserver - with all being step-wise debuggable versions:
In this first step: https://trac.ffmpeg.org/wiki/Compilatio ... pendencies
Add libsdl2-dev to the list of dependant libraries. (Or change libsdl1.2-dev, I happened to want both sdl versions)
In the instructions to build ffmpeg: https://trac.ffmpeg.org/wiki/Compilatio ... ntu#ffmpeg
Use this in place of what they provide for the same line: (sorry, but I don't know what this construct is called)
After the remaining 4 commands back in https://trac.ffmpeg.org/wiki/Compilatio ... ntu#ffmpeg the debuggable versions are generated.
Code: Select all
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \ --prefix="$HOME/ffmpeg_build" \ --pkg-config-flags="--static" \ --extra-cflags="-I$HOME/ffmpeg_build/include -O0 -fno-inline" \ --extra-ldflags="-L$HOME/ffmpeg_build/lib" \ --bindir="$HOME/bin" \ --enable-gpl \ --disable-optimizations \ --disable-mmx \ --disable-stripping \ --enable-version3 \ --enable-ffplay \ --enable-libass \ --enable-libfdk-aac \ --enable-debug=3 \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libtheora \ --enable-libvorbis \ --enable-libvpx \ --enable-libx264 \ --enable-libx265 \ --enable-nonfree
After that, these are probably useful for those of use too used to visual studio: