0

When I convert a video with ffmpeg, and use mediaInfo to review the metadata, I see the followings for the video codec:

Format : AVC 
Format/Info : Advanced Video Codec 
Format profile : Baseline@L3.1 
Format settings : 1 Ref Frames 

Whereas for some other videos, mediaInfo shows this:

Format : AVC 
Format/Info : Advanced Video Codec 
Format profile : High@L4.2 
Format settings : CABAC / 4 Ref Frames 

What are the differences between these two profiles and settings? Do they have any effects on the compression ratio/file sizes? Any pros/cons? My goal is to reduce the video file sizes at much as possible with negligible quality degradation.

Tina J
  • 4,983
  • 13
  • 59
  • 125
  • 1
    Wikipedia has [the descriptions of the h.264 profiles](https://en.wikipedia.org/wiki/Advanced_Video_Coding#Profiles) – kesh Apr 14 '22 at 21:14
  • 1
    In case of `High` vs. `Baseline` the former is more computationally intensive but allows for more efficient compression and quality for a target bitrate. – aergistal Apr 15 '22 at 08:16
  • @aergistal how about decoding side? Any difference on decoding? – Tina J Apr 15 '22 at 12:51

1 Answers1

0

AVC can be described as set of features. The AVC profiles (Baseline or High) are a list of allowed features for the profile. The more features - the better is the compression. For example High supports B-frames and Baseline doesn't.

A higher profile requires more resources for encoding and decoding - compute and memory.

So you are trading file size (or quality) for RAM and processing. I am guessing for most PC and newer smartphone applications - you are better off using a higher AVC profile. For some embedded application - your hardware may not support higher profiles. If latency for live streaming needs to be low - you may want to avoid B-frames.

Nowadays - Main and High are pretty common and give you a quality or file size advantage.

Markus Schumann
  • 7,636
  • 1
  • 21
  • 27