Convierta GIF animado a video en Linux Server mientras conserva la velocidad de fotogramas

¿Cómo convierto un gif animado a un video (por ejemplo, h264 @ mp4) mediante programación en un servidor Linux?

Necesito esto para procesar el contenido generado por el usuario que debe salir como varios formatos de video definidos; por lo tanto, es posible que los usuarios quieran procesar archivos gif animados. Ya tengo un conjunto de scripts php en funcionamiento para transcodificar archivos de video a formatos específicos (como vpx @ webm y h264 @ mp4, escalados a resoluciones específicas) usando avconv, pero por lo tanto necesito entrada de video.

Las formas habituales parecen ser extraer los marcos del gif y luego codificarlo, como

convert file.gif file%03d.png 
avconv -i file%03d.png file.mp4

Pero esto descarta la velocidad de cuadros, determinada por la información de pausa dentro del archivo gif. Es posible definir un framerate para avconv con -r, pero

esto no respeta la pausa entre cuadros, ya que pueden diferir (como el 1er cuadro de pausa de 100ms, el segundo cuadro de pausa de 250ms, el tercer cuadro de pausa de 100ms, ...)Como la entrada proviene de los usuarios, incluso puede variar, ya que algunos gifs pueden tener 5 fps y otros 30 fps

Noté que avconv puede procesar gifs por sí mismo y, por lo tanto, puede respetar las pausas correctas, pero cuando lo hago (como se describe de manera similar en¿Cómo convertir GIF a Mp4 es posible?)

avconv -i file.gif -r 30 file.mp4

avconv solo tomará el primer fotograma del gif, mientras detecta el archivo al menos como video:

Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
  Stream #0.0: Video: gif, pal8, 640x480, 25 tbn

(ejemplo gif 'file.gif' tiene 15 cuadros, cada uno con pausa de 100 ms => 1,5 segundos de duración, bucle)

¿Qué me estoy perdiendo? ¿Qué va mal?¿Hay probablemente mejores herramientas para este caso de uso?¿Cómo son los sitios grandes, p. ¿9gag usando para transcodificar gifs cargados a video?