Avidemux will do that -
http://avidemux.sourceforge.net/download.html
It presumes you know what you're doing (there are online guides) but just be careful with the output selections on the left and you'll be okay - for example, if you have an mp4 that you want to reduce in size, make sure you set video output to x264, and muxer to mp4 (audio to 'copy' unless you also want to shrink that). When saving, don't forget to include ".mp4" at the end of the filename too.
Likewise if you had an mkv, make sure you choose mkv muxer (if you want it to remain an mkv file) and include the ".mkv" when naming the file.
The options for output size are under the video output tab, you can choose a fixed size (double-pass), and remember that this refers only to the video, the audio will be extra on top of that at the end.
You can get a full 1080p movie down to around 1.5gb without too much (noticeable) loss, depending on the content. If you reduce the resolution to 720p, you can go much smaller again. If it's a really clean image in the source, you can go surprisingly small, even as far as 500mb.