O melhor formato matematicamente sem perdas que eu conheço é o huffyuv, mas isso produzirá arquivos hilariantemente grandes 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 dentro de um contêiner MP4 e deve ser compatível com a maioria dos hardwares feitos nos últimos anos. O primeiro comando dará uma velocidade de codificação rápida, mas um arquivo grande; o segundo comando demorará muito mais tempo, mas o arquivo deve ter metade do tamanho do codificado (mas ainda assim será bem 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 lhe der 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
Eu geralmente recomendo o preset rápido para codificação com x264, na minha experiência ele oferece o melhor tradeoff de velocidade / tamanho (há um grande dropoff no tamanho do arquivo entre super rápido e muito rápido, mais lento que isso e é mais incremental). Aconselhamento geral é usar a predefinição mais lenta que você pode manipular, as predefinições são: ultra rápida, super rápida, muito rápida, rápida, média, lenta, mais lenta, muito lenta.
Veja aqui para um guia mais aprofundado sobre a codificação x264.