FFMpeg

FFMpeg es una herramienta extremadamente poderosa para convertir video de un formato a otro. Todos los codecs prinicpales funcionan, y aún muchos otros codecs menos conocidos. Desafortunadamente, la única manera de usar esta herramienta es a través de comandos en la línea de comandos.

Para introducir comandos, necesitas lanzar un programa de "Terminal". En Ubuntu puedes accesar este programa a través de Aplicaciones -> Accesorios -> Terminal.

Una vez en el Terminal, puedes ingresar comandos para operar programas. (Dos comandos importantes pero no relacionados con FFMpeg son: "ls" - produce una lista de todos los archivos en el directorio en el que te encuentras, y "cd" - cambia el directorio. Por ejemplo puedes ingresar "cd Descargas" desde tu directorio principal para ir al directorio de Descargas. Tu línea de entrada te va a mostrar el directorio en el que te encuentras; la tilde "~" significa que estás en tu directorio principal /home/usuario.)

Las primeras dos cosas que puedes hacer con FFMpeg son hacer una lista de los formatos y codecs que esta copia soporta. Esto puede cambiar basado en lo que tengas instalado en tu computador, por lo que es mejor revisar esto antes de ingresar un comando, para asegurante que tengas el soporte correcto disponible. 
Para ver una lista de todos lost formatos contenedores ingresa: ffmpeg -formats
Para ver una lista de todos los codecs ingresa:  ffmpeg -codecs

Para convertir un video, simplemente ingresa el comando "ffmpeg" con cuatro partes adicionales:
ffmpeg [entrada] [opciones de video] [opciones de audio] [salida]

La parte del video de entrada se compone de una "-i" y el nombre del video (o audio) que tienes que quieres convertir a otro tipo. Puedes tener más de uno de estos archivos de entrada (y cada uno recibe su propia "-i") si por ejemplo tienes un video con una pista de audio en un archivo diferente.
ffmpeg -i VideoEntrada.mpg ...[opciones de video] [opciones de audio] [salida]
ffmpeg -i PistaDeVideoDeEntrada.mpg -i PistaDeAudioDeEntrada.wav ...[opciones de video] [opciones de audio] [salida]

La opciones de video es donde especificas el codec (con el prefijo "-vcodec") y el bit-rate (con la opción "-b"). Además puedes especificar un preset de video ("-preset") sin el cual la codificación x264 no va a comenzar (algunos presets sencillos son: slow, medium, fast), y puedes especificar un tamaño ("-s") ya sea con una referencia a un tamaño estándar o con el formato ANCHOxALTO.
ffmpeg [entrada] -vcodec mpeg2 -b 3000k ...[opciones de audio] [salida]
ffmpeg [entrada] -vcodec libtheora -b 3000k ...[opciones de audio] [salida]
ffmpeg [entrada] -vcodec libx264 -preset medium -b 3000k ...[opciones de audio] [salida]
ffmpeg [entrada] -vcodec mpeg2 -b 3000k -s hd480 ...[opciones de audio] [salida]
ffmpeg [entrada] -vcodec mpeg2 -b 3000k -s vga ...[opciones de audio] [salida]
ffmpeg [entrada] -vcodec mpeg2 -b 3000k -s 1280x720 ...[opciones de audio] [salida]

Las opciones de audio es donde especificas el condec de audio ("-acodec") y el bit-rate ("-ab"). También es posible especificar no audio ("-an") para obtener solamente video en el archivo de salida.
ffmpeg [entrada] [opciones de video] -acodec flac ...[salida]
ffmpeg [entrada] [opciones de video] -acodec libmp3lame -ab 256k ...[salida]
ffmpeg [entrada] [opciones de video] -acodec libvorbis -ab 192k ...[salida]
ffmpeg [entrada] [opciones de video] -acodec libfaac -ab 192k ...[salida]
ffmpeg
[entrada] [opciones de video] -an ...[salida]

La salida es donde especificas el nombre del archivo al cual se grabará el video convertido. Usualmente la extensión del nombre del archivo (.mkv, .mp4, .avi, etc) le permitirá al programa determinar qué formato debe usarse para el archivo, sin embargo esto es ambiguo si quieres usar un formato que no está asociado con esa extensión de archivo; en ese caso puedes usar "-f" y el nombre del formato deseado. (Estos comandos siempre van a almecenar el archivo de salida en el mismo directorio en el que te encuentras actualmente.)
ffmpeg [entrada] [video options] [audio options] SalidaVideo.mkv
ffmpeg [entrada] [video options] [audio options] SalidaVideo.mp4
ffmpeg [entrada] [video options] [audio options] -f dvd SalidaVideo.mpg
ffmpeg [entrada] [video options] [audio options] -f matroska SalidaVideo.vid
ffmpeg [entrada] [video options] [audio options] -f mp4 SalidaVideo.vid
ffmpeg [entrada] [video options] [audio options] -f avi SalidaVideo.vid

El resultado puede verse como sigue:
ffmpeg -i EntradaVideo.mpg -vcodec mpeg2 -b 3000k -s hd480 -acodec flac SalidaVideo.mkv

Codificación a Doble Paso (Two-Pass)
Es posible usar ffmpeg para codificación two-pass. La parte importante es entrar el comando dos veces, primero con el parámetro "-pass 1" y luego una vez terminado entrar el mismo comando con el parámetro "-pass 2". En Ubuntu, puedes hacer un par de cosas adicionales en el primer paso para acelerarlo: "-an" especifica que no hay un codec de audio que activar. "-f rawvideo" evita que el programa trate de empacar el video en un formato especial, solo para descartarlo luego. El "-y /dev/null" especifica que el archivo de salida va a ir al archivo especial "null", que significa que solamente desaparecerá en vez de tener que enviar data al disco duro. Ademas de usar "two-pass", podemos añadir el parámetro "-bt" el cual le comunica al codec cuanto puede cambiar el bit-rate. Usualmente va a servir bien el establecer este parámetro igual que el bit-rate.
ffmpeg -i EntradaVideo.mpg -pass 1 -vcodec mpeg2 -b 3000k -bt 3000k -an -f rawvideo -y /dev/null
ffmpeg -i EntradaVideo.mpg -pass 2 -vcodec mpeg2 -b 3000k -bt 3000k -acodec flac SalidaVideo.mkv

Eso es todo lo que hay que saber para operar FFMpeg. No es tan complicado.

Ahora intentemos un ejemplo usando FFMpeg...
ffmpeg -i sintel_clip-ffmpeg.mkv -pass 1 -vcodec libx264 -preset slow_firstpass -b 1200k -bt 1200k -an -f rawvideo -y /dev/null
ffmpeg -i sintel_clip-ffmpeg.mkv -pass 2 -vcodec libx264 -preset slow -b 1200k -bt 1200k -acodec libfaac -ab 192k output.mp4

Como bono, puedes configurar el programa para que pueda correr desde un website, y el video va a comenzar a reproducir antes de que la descarga termine:
qt-faststart output.mp4 webvid.mp4