Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

There is a server from which I can download videos, and I can choose if I want .flv or .mp4.

The encoding is the same:

-> FLV

  • Flash Video
  • 1 video stream: 640*360 (16:9), at 25,000 fps, AVC (Baseline@L3.0) (6 Ref Frames)
  • 1 audio stream: 44,1 KHz, 2 channels, AAC (LC)

-> MP4

  • MPEG-4 (Base Media / Version 2)
  • 1 video stream: 500Kbps, 640*360 (16:9), at 25,000 fps, AVC (Baseline@L3.0) (6 Ref Frames)
  • 1 audio stream: 61,7 Kbps, 44,1 KHz, 2 channels, AAC (LC)

Moreover, if I open both videos with a text editor, there are lots of parts which are exactly the same:

Comparison

Then, I think that it's the same file but metadata changes.

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?

And, a part from the size, which is better supported, or which is played with better performance?

share|improve this question

3 Answers 3

up vote 5 down vote accepted

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.

share|improve this answer

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.

share|improve this answer
    
yet FLV is pretty rare nowadays - for reasons, that is. FLV always had minor problems, its simply an inferior codec IMHO –  specializt Aug 23 '14 at 21:46
1  
@specializt Minor nitpick: FLV is not a codec, it's a container format. Inside FLV you will typically find H.264, VP-6 or Sorenson Spark codecs. –  slhck Aug 24 '14 at 6:55

I would choose MP4:

  • Supported platforms/Livecycle: flv is a proprietary format and not suported by all mobile devices and similar while on the other hand mp4 is supported by a consortium many firms are part of. Since a very popular mobile platform has decided not to support flash, another one has dropped the support for it and flv is the video format introduced by flash flv might drop in popularity even if it might be the video format that is most widely supported by desktop internet browsers. .mp4 is a format that is definitively actively supported at this time.
  • CPU Efficiency: your hardware almost certainly will contain a hardware mp4 decoder. Even your cellphone will - which means that playing back mp4 costs nearly no CPU capacity at all: The CPU just delivers the data in time. The rest is done by the graphics card - which might even be able to decode the video, as well and sometimes even be able to the sound card without needing the CPU for that.
  • Battery runtime: Since a popular test for the time a laptop, tablet or phone will be how long it can play a .mp4 film the hardware mp4 codec will be optimized for low power consumption. flv isn't supported by all mobile platforms and therefore isn't this popular for benchmarks - that one wants to compare between many platforms.
  • Video Quality If the mp4 codec is set up the right way it can deliver high quality using astonishingly little video bandwidth. In other words: It has very efficient ways of describing most of the differences between two video frames that might occour in a real-live video. flv was designed to do that, too. But in my experience with flv you need a much higher video bitrate than with mp4 if you want your video to contain the same number of details.
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.