El mejor formato real, matemáticamente sin pérdidas que conozco es huffyuv, pero eso producirá archivos enormemente divertidos y no sería compatible con mucho. Para el registro, ffmpeg puede hacerlo con:
ffmpeg -i input -c:v huffyuv -c:a libmp3lame -b:a 320k output.avi
X264, el codificador h.264 de código abierto, tiene un modo sin pérdidas. Esto puede ir dentro de un contenedor MP4 y debería ser compatible con la mayoría del hardware fabricado en los últimos años. El primer comando dará una velocidad de codificación rápida, pero un archivo grande; el segundo comando tomará mucho más tiempo, pero el archivo debe tener aproximadamente la mitad del tamaño del codificado rápido (aunque seguirá siendo bastante grande):
ffmpeg -i input -c:v libx264 -crf 0 -preset ultrafast -c:a libmp3lame -b:a 320k output.mp4
ffmpeg -i input -c:v libx264 -crf 0 -preset veryslow -c:a libmp3lame -b:a 320k output.mp4
Si eso no te da un archivo lo suficientemente pequeño, un crf de 18 generalmente se considera 'visualmente sin pérdidas':
ffmpeg -i input -c:v libx264 -crf 18 -preset veryfast -c:a libmp3lame -b:a 320k output.mp4
En general, recomiendo el ajuste preestablecido muy rápido para codificar con x264, en mi experiencia, ofrece la mejor compensación de velocidad / tamaño (hay una gran caída en el tamaño del archivo entre súper rápido y muy rápido, más lento que eso y es más incremental). El consejo general es utilizar el preajuste más lento que pueda manejar, los preajustes son: ultrarrápido, súper rápido, muy rápido, más rápido, rápido, medio, lento, más lento, muy lento.
Consulte aquí para obtener una guía más detallada sobre la codificación x264.