Định dạng thực tế, không mất dữ liệu tốt nhất mà tôi biết là huffyuv, nhưng điều đó sẽ tạo ra các tệp cực kỳ vui nhộn và sẽ không tương thích với nhiều. Đối với bản ghi, ffmpeg có thể làm điều đó với:
ffmpeg -i input -c:v huffyuv -c:a libmp3lame -b:a 320k output.avi
X264, bộ mã hóa h.264 mã nguồn mở, có chế độ lossless. Điều này có thể đi vào bên trong một thùng chứa MP4 và phải tương thích với hầu hết các phần cứng được sản xuất trong vài năm qua. Lệnh đầu tiên sẽ cho tốc độ mã hóa nhanh, nhưng tệp lớn; lệnh thứ hai sẽ mất nhiều thời gian hơn, nhưng tệp phải có kích thước bằng một nửa so với lệnh được mã hóa nhanh (mặc dù vậy nó vẫn sẽ khá lớn):
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
Nếu điều đó không cung cấp cho bạn một tệp đủ nhỏ, thì crf 18 thường được coi là 'không mất dữ liệu':
ffmpeg -i input -c:v libx264 -crf 18 -preset veryfast -c:a libmp3lame -b:a 320k output.mp4
Tôi thường khuyên bạn nên cài đặt trước rất nhanh để mã hóa với x264, theo kinh nghiệm của tôi, nó cung cấp sự cân bằng tốc độ / kích thước tốt nhất (có sự sụt giảm lớn về kích thước tệp giữa siêu nhanh và rất nhanh, chậm hơn tốc độ đó và tăng dần). Lời khuyên chung là sử dụng các cài đặt trước chậm nhất mà bạn có thể xử lý, các cài đặt trước là: cực nhanh, cực nhanh, rất nhanh, nhanh, nhanh, trung bình, chậm, chậm, rất chậm.
Xem ở đây để có hướng dẫn sâu hơn về mã hóa x264.