Il miglior formato attuale, matematicamente senza perdita di dati che conosco è huffyuv, ma questo produrrà file esilaranti e non sarebbe compatibile con molti. Per la cronaca, ffmpeg può farlo con:
ffmpeg -i input -c:v huffyuv -c:a libmp3lame -b:a 320k output.avi
X264, l'encoder h.264 open source, ha una modalità lossless. Questo può andare all'interno di un contenitore MP4 e dovrebbe essere compatibile con la maggior parte dell'hardware prodotto negli ultimi anni. Il primo comando fornirà una velocità di codifica rapida, ma file di grandi dimensioni; il secondo comando richiederà molto più tempo, ma il file dovrebbe essere circa la metà di quello con codifica rapida (sarà comunque abbastanza 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 ciò non ti dà un file abbastanza piccolo, un crf di 18 è generalmente considerato 'visivamente senza perdita':
ffmpeg -i input -c:v libx264 -crf 18 -preset veryfast -c:a libmp3lame -b:a 320k output.mp4
In generale, consiglio la preimpostazione molto veloce per la codifica con x264, nella mia esperienza offre il miglior compromesso di velocità / dimensione (c'è un grande calo nella dimensione del file tra superveloce e molto veloce, qualsiasi più lento di quello ed è più incrementale). Il consiglio generale è di usare il preset più lento che puoi gestire, i preset sono: ultraveloce, superveloce, molto veloce, più veloce, veloce, medio, lento, più lento, veryslow.
Vedi qui per una guida più approfondita alla codifica x264.