O melhor formato real, matematicamente sem perdas, que eu conheço é o huffyuv, mas que produzirá arquivos hilariantes e enormes, e não seria compatível com muito. Para o registro, o ffmpeg pode fazer isso com:
ffmpeg -i input -c:v huffyuv -c:a libmp3lame -b:a 320k output.avi
O X264, o codificador h.264 de código aberto, possui um modo sem perdas. Isso pode ir para dentro de um contêiner MP4 e deve ser compatível com a maioria dos hardwares fabricados nos últimos anos. O primeiro comando fornecerá uma velocidade rápida de codificação, mas um arquivo grande; o segundo comando levará muito mais tempo, mas o arquivo deve ter cerca da metade do tamanho do codificado rapidamente (ainda será 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
Se isso não fornecer um arquivo pequeno o suficiente, um crf de 18 é geralmente considerado 'visualmente sem perdas':
ffmpeg -i input -c:v libx264 -crf 18 -preset veryfast -c:a libmp3lame -b:a 320k output.mp4
Geralmente, recomendo a predefinição muito rápida para codificação com x264; na minha experiência, ela oferece a melhor relação velocidade / tamanho (há uma grande queda no tamanho do arquivo entre super-rápida e muito rápida, mais lenta que isso e mais incremental). O conselho geral é usar a predefinição mais lenta possível, as predefinições são: ultra-rápida, super-rápida, muito rápida, mais rápida, rápida, média, lenta, mais lenta, baixa velocidade.
Veja aqui um guia mais aprofundado sobre a codificação x264.