Najlepszym faktycznym, matematycznie bezstratnym formatem, jaki znam, jest huffyuv, ale spowoduje to zabawnie ogromne pliki i nie będzie z nimi kompatybilny. Dla przypomnienia, ffmpeg może to zrobić za pomocą:
ffmpeg -i input -c:v huffyuv -c:a libmp3lame -b:a 320k output.avi
X264, koder h.264 typu open source, ma tryb bezstratny. To może wejść do kontenera MP4 i powinno być kompatybilne z większością sprzętu wyprodukowanego w ciągu ostatnich kilku lat. Pierwsze polecenie da dużą szybkość kodowania, ale duży plik; drugie polecenie zajmie znacznie więcej czasu, ale plik powinien mieć około połowy rozmiaru szybko zakodowanego (jednak nadal będzie dość duży):
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
Jeśli to nie da ci wystarczająco małego pliku, CRF 18 jest ogólnie uważany za „wizualnie bezstratny”:
ffmpeg -i input -c:v libx264 -crf 18 -preset veryfast -c:a libmp3lame -b:a 320k output.mp4
Zasadniczo polecam bardzo szybki zestaw do kodowania z x264, z mojego doświadczenia wynika, że oferuje najlepszą kompromis między szybkością a rozmiarem (istnieje duży spadek wielkości pliku między superszybkim i bardzo szybkim, wolniejszym niż to i jest bardziej przyrostowy). Ogólna rada to używanie najwolniejszego ustawienia wstępnego, jakie można obsłużyć, są to: ultraszybkie, superszybkie, bardzo szybkie, szybsze, szybkie, średnie, wolne, wolniejsze, bardzo wolne.
Patrz tutaj dla przewodnika bardziej dogłębnej do kodowania x264.