The best actual, mathematically lossless format I know of is huffyuv, but that will produce hilariously huge files, and wouldn't be compatible with much. For the record, ffmpeg can do it with:
ffmpeg -i input -c:v huffyuv -c:a libmp3lame -b:a 320k output.avi
X264, the open-source h.264 encoder, has a lossless mode. This can go inside an MP4 container, and should be compatible with most hardware made in the last few years. The first command will give a fast encode speed, but large file; the second command will take a lot longer, but the file should be about half the size of the fast-encoded one (it will still be pretty big though):
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
If that doesn't give you a small enough file, a crf of 18 is generally considered 'visually lossless':
ffmpeg -i input -c:v libx264 -crf 18 -preset veryfast -c:a libmp3lame -b:a 320k output.mp4
I generally recommend the veryfast preset for encoding with x264, in my experience it offers the best speed/size tradeoff (there's a big dropoff in file size between superfast and veryfast, any slower than that and it's more incremental). General advice is to use the slowest preset you can handle, the presets are: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow.
See here for a more in-depth guide to x264 encoding.
1
For a comparison, see http://en.wikipedia.org/wiki/List_of_codecs#Lossless_compression
– artistoex – 2012-10-11T11:20:43.1434I'm sorry but you practically cannot get a (visually) lossless 720p video of 4 minutes compressed to less than 700 MB (I assumed Megabyte here, not "mb" which would mean "bit"). Why do you have such a constraint? Can't the video be h.264-encoded? – slhck – 2012-10-11T11:24:08.533
yes, MB, sorry about the confusion. I need to fit cca 5 videos x 4 minutes into 4 GB (medium limitations). – mrkva – 2012-10-11T11:32:32.553
2Since you're getting 12GiB files I assume that you use 24Bit colour depth. The uncompressed video data stream is about 4GiB per minute. That's a huge amount of data. What you want is about 170MiB per minute. Regardless of the codec you choose you can only achieve this with a static scene without much movement. I'm afraid you have to relax the contraint to be lossless, reduce the frame rate or tolerate a larger file size. – Marco – 2012-10-11T11:57:40.953
Can you clarify, "Container + codec can be played on modern DVD players (supporting other formats than DVD)"? – llogan – 2012-10-11T17:17:26.743
@LordNeckbeard Nicke nickname :) By that I mean, that most of the modern DVD players (I mean - physical DVD players) can nowadays play other formats than just DVDs. – mrkva – 2012-10-11T21:38:49.920