Because many audio/video codecs are encumbered by software patents, GNU/Linux distributions have had to omit FFmpeg or bundle a less-capable FFmpeg version of it. Even if it were compiled with support for non-free encoders/decoders, there would be a risk of a licence violation. Recently, FFmpeg released its Version 3 with a totally native AAC encoder, but more work remains. The solution was for users to do their own compilation. The FFmpeg Wiki site has compilation steps for several distributions. The compilation process does take a while to finish, but it will eventually create the four binary executable files. Copy them to your usr/bin directory. If you don’t want to disturb the FFmpeg installation that came with your Linux distribution, then you can access the binaries by providing their full path from a different directory.
While this FFmpeg installation covers most formats, I found that it would not encode to the audio codec of the undocumented AMV format. AMV is used by many cheap Chinese-made media players. These tiny devices are primarily FM and MP3 players with the video option added as a ‘ please ignore it’ extra. The video resolution is a luxurious 160x120! I bought one of these players without realising all this. Fortunately, there was a Google Code project called amv-codec-tools that provided support for AMV using an old version of FFmpeg. If you need to work with this format, then build a custom FFmpeg binary, specially made for AMV,