Which is better between a .flv and a .mp4 video files with same encoding?
Solution 1:
The .flv files are a bit bigger (1.22% more, more or less). Then, should I download the .mp4 videos instead of the .flv, given that if they are the same video, the extra size of .flv doesn't mean better quality?
The video contents of the files you see should be exactly the same.
FLV and MP4 containers may contain the same video and audio codecs.1 And while there's a difference in file size, the fact that it's a few percent means that the only difference is the actual container (i.e. FLV and MP4), and not the video (H.264) and audio (AAC). Containers have different ways of wrapping the content, and FLV might just be a little more verbose there, which explains the difference in size.
And, a part from the size, which is better supported, or which is played with better performance?
FLV is a proprietary format developed by Adobe. MP4 is a format standardized by the ISO in the MPEG-4 family. Your video is H.264 (MPEG-4 Part 10), so it's from the same MPEG-4 standard.2
That being said, the support for MP4 should always be better than for FLV containers. While typical desktop video players support almost every container and codec, devices such as mobile phones or DLNA streaming servers might only handle MP4 files.
The video you're trying to download is encoded with the Baseline profile, which explicitly targets mobile devices—so if that's a possible target, you should definitely go with the MP4 option.3
Furthermore, there's no equivalent of MP4Box and AtomicParsley for FLV files, which are very powerful tools for remuxing and changing the metadata of MP4 files.
1 – See Comparison of container formats for a list of what is supported.
2 – Both formats are patent-encumbered, but in practice this doesn't really matter.
3 – The Baseline profile disables some features of the encoder to guarantee that the file can be played on devices with lower processing power. It generally doesn't mean "less quality" though.
Solution 2:
FLV is a byte-aligned format which means a minimum marker uses a whole byte and all frame headers use a 4 byte timestamp. These are the primary reason for the file size increase.
That said, it is much cheaper computationally to read an FLV file for streaming from a smart-server. (smart meaning that the format is being read by the server instead of raw bytes like a http server) It however does not have forward and backward seek markers like mp4 does.
There are advantages both ways. An FLV parser could be written in about half an hour; this is why no complex parsers exist. FFMPEG has full FLV support in both directions.