Лучший фактический, математически без потерь формат, который я знаю, это huffyuv, но он будет генерировать невероятно большие файлы и не будет совместим со многими. Для записи, ffmpeg может сделать это с:
ffmpeg -i input -c:v huffyuv -c:a libmp3lame -b:a 320k output.avi
X264, кодер h.264 с открытым исходным кодом, имеет режим без потерь. Это может происходить внутри контейнера MP4 и должно быть совместимо с большинством аппаратного обеспечения, созданного за последние несколько лет. Первая команда даст быструю скорость кодирования, но большой файл; вторая команда займет намного больше времени, но файл должен быть примерно вдвое меньше быстро закодированного (хотя он все равно будет довольно большим):
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
Если это не дает вам достаточно маленький файл, CRF обычно считается «визуально без потерь»:
ffmpeg -i input -c:v libx264 -crf 18 -preset veryfast -c:a libmp3lame -b:a 320k output.mp4
Как правило, я рекомендую очень быстрый пресет для кодирования с x264, по моему опыту он предлагает лучший компромисс между скоростью и размером (существует большой спад в размере файла между супербыстрым и очень быстрым, любой медленнее, чем этот, и он более инкрементный). Общий совет - использовать самые медленные пресеты, которые вы можете обработать, пресеты: сверхбыстрые, сверхбыстрые, очень быстрые, быстрые, быстрые, средние, медленные, медленные, очень низкие.
Смотрите здесь для более подробного руководства по кодированию x264.