Le meilleur format réel, mathématiquement sans perte que je connaisse, est huffyuv, mais qui produira des fichiers énormément énormes et ne serait pas compatible avec beaucoup. Pour mémoire, ffmpeg peut le faire avec:
ffmpeg -i input -c:v huffyuv -c:a libmp3lame -b:a 320k output.avi
X264, l'encodeur open source h.264, dispose d'un mode sans perte. Cela peut aller à l'intérieur d'un conteneur MP4 et devrait être compatible avec la plupart des matériels fabriqués ces dernières années. La première commande donnera une vitesse d'encodage rapide, mais un fichier volumineux; la deuxième commande prendra beaucoup plus de temps, mais le fichier devrait être environ la moitié de la taille de celui à encodage rapide (il sera quand même assez gros):
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 cela ne vous donne pas un fichier suffisamment petit, un crf de 18 est généralement considéré comme 'sans perte visuelle':
ffmpeg -i input -c:v libx264 -crf 18 -preset veryfast -c:a libmp3lame -b:a 320k output.mp4
Je recommande généralement le préréglage très rapide pour l'encodage avec x264, selon mon expérience, il offre le meilleur compromis vitesse / taille (il y a une grande baisse de la taille du fichier entre super rapide et très rapide, plus lente que cela et c'est plus incrémentielle). Le conseil général est d'utiliser le préréglage le plus lent que vous pouvez gérer, les préréglages sont: ultra-rapide, ultra-rapide, très rapide, plus rapide, rapide, moyen, lent, plus lent, très lent.
Voir ici pour un guide plus approfondi de l'encodage x264.