Is it possible to force an encoder to create a video file with 720p@30fps while using a main profile level 3.0? If so, would there be a significant quality difference as opposed to using main profile level 3.1?
I ask because I have some video files that show this, but I cannot find any documentation anywhere suggesting this is a common practice or even allowed.
Thank you!
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays! or rip iTunes movies!
+ Reply to Thread
Results 1 to 23 of 23
Thread
-
If everything is infinite then nothing is definite.
-
It was answered in your other thread
If encoder abides by strict rules, the level and profile place upper limits on what is allowed. Thus the set level and profile dictate the theoretical maximum quality . The strict encoder won't allow you to go beyond. That's just the theoretical upper limit - because there are large quality differences between settings and encoders even at the same level and profile and bitrate
If encoder doesn't abide, then level and profile are irrelevant and there is no difference. For example, old x264 versions only gave you a warning, yet produced a working video. Newer x264 versions abide by the rules, and place limits
You can "patch" the name to whatever you want - BUT it would be the same video underneath. Thus no difference in quality in that case
How the recieving HW or SW decoder is another story - sometimes there are limits placed just because of the "label" . As soon as some "see" the word high or a certain number, it will refuse to decode. Software decoders on a computer are usually less problematic - they can play anything
You don't see it often because it's "bad practice" to use the wrong "label" . If I have a Honda Civic, all the paint jobs in the world doesn't make it a Ferrari. Underneath it's still a Honda Civic.
Changing the level and profile is more often done, when a level and/or profile is too high for the actual video. For example , if I set it High@L5.2 , but nothing about the actual video characteristics makes it that high - it may be refused to play on some HW chipsets which usually have a limit of High@L4.1. You would patch it to the proper level matching the content thus enabling it to play without re-encoding or losing quality
I attached an example of this bad practice below - so yes it's possible. -
It was said once here that LEVEL is just a label .... It just should be correct considering frame rate, resolution and bitrate, profile following this table: https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Levels
but it is just a label, that player might read and refuse that video because it was designed to not read higher levels or player just might ignore and it will play the file
x264 encoder can set level automatically, because it sets it following that table above, depending on what the input is (frame rate, resolution, setting buffers), so for example, your video, 720p30, x264 might encode video with level set to 3.1 because you limit buffers to 10.000, but setting buffers to 20.000 limit (--vbv-bufsize 20000 --vbv-maxrate 20000 ) would set level to 3.2 etc... how accurate the encoder is , not sure if 100%, perhaps not, but I have a good experience with it ...Last edited by _Al_; 18th Mar 2015 at 08:59.
-
Thanks for the info, guys. I can see how it would be construed as just a label, but it seems to be more. If they were only that then one label would fit all. But maybe the point trying to be made is really that because you can force parameters, it becomes just a label at that point.
@poisondeath - Thank you for the sample.
@_AI_ - The Wikipedia page is one I spent a bit of time on before posting here. Which is partially why I wanted to find out if this could be done.
I was fairly sure that the answer was yes if going beyond constraints, but I wanted confirmation since I could not find any credible sources that suggested that.
Does anyone know of a program that I can actually perform such a feat? Professional NLE's won't allow it. But I am hoping there is something where I could run a couple of tests since the videos in question seem to be subpar quality in comparison to what 720p should look like. I am trying to discern if it could be a profile issue or more of a settings issue.
Thanks!If everything is infinite then nothing is definite. -
encoding 3.1 will not improve your quality as oppose setting it to 3.0, providing encoder would not set something else behind scenes, like rising maximum bitrate values where encoder actually would distribute higher maximum peaks to keep certain quality , using low CRF values ...
test it with a front end x264 encoder , check videohelp here, whatever would suit you,
or to go down to the basics using just a command line, to have those variables under control so to speak, with no limit for bitrate, you'd get the same volume encoding using:
Code:x264.exe --crf 18 --profile High --level 3.0 --output raw_video.264 input.avs x264.exe --crf 18 --profile High --level 3.1 --output raw_video.264 input.avs
Last edited by _Al_; 18th Mar 2015 at 10:28.
-
It's just a label. That's all it is. It might or might not indicate anything about the actual video.
There are hundreds of possible reasons for "sub par" quality . The level and profile used are way down on that list (even if you use an encoder that enforces them). You're looking at the wrong things first
If you want to play with levels and profiles as a "label", use an old x264 binary from a few years ago. That's what I used to produce that example above . Newer versions doen't let you violate profile and levels restrictions - if you set vbv constraints -
I've seen a few tests done and where quality was concerned. A higher bitrate with identical resolutions and frame rates visually showed no difference. However, at LOW bitrates, profiles did seem to matter in terms of quality. I am not one to go for the lowest possible bitrate though...
This is actually one of the last things I'm looking at as I'm being told it's not the encoding settings, although I have little doubt that they are. I have one more test to run before knowing that they are, but that is neither here nor there. I just appreciate everyone replying and giving what information they can.If everything is infinite then nothing is definite. -
These are facts, and easily proven:
1) Differences are difficult to see at high bitrates relative to content complexity - regardless of anything else . Differences are easier to see in the low bitrate range
2) There can be a disconnect between levels, profiles and the actual video. It doesn't necessarily indicate anything about the video. Even if you use a strict encoder and ensure it plays by the rules, it still doesn't necessarily indicate much about the video - it only places an upper theoretical limit. If I have a Main@L3.1 vs. High@L5.2 at the same bitrate, frame rate and resolution - it says nothing about the actual video. One might be better or worse
3) There can be large differences in quality between settings used with the same encoder at a given bitrate (thus filesize)
4) There can be large differences in quality between different encoders with the same bitrate (thus filesize).
5) The "Gold standard" for AVC/h.264 encoding is x264 -
I think we're going in circles, and I rather not get into an argument, but I feel like what you are saying reinforces what I am saying. In either case, a label is just a label when all things are equal but differing profiles. If there are differences in quality and all things are still equal but profiles, that is when the label bares importance.
As you are suggesting, there are many things that can affect file size and video quality. More reference frames can help maintain high quality with a smaller file size. Using CRF, CBR, or VBR can produce great quality differences. So, yes, I am in agreement, a label is a label until it is not.If everything is infinite then nothing is definite. -
The problem is you haven't given any indication as to whether or not you 've look at the other, more important things
Are you certain there are no other differences ? Have you looked in any more details ? b-frames, gop size ? etc... Those are more important than labels. Those have functional relevance to compression efficiency . Common things being common, that's where you look first. A label might or might not - its near the bottom of the list - especially (and moreso) since you have videos that clearly have the wrong label
You haven't given any indication about the workflow history either - many things can negatively impact the video on it's journey. Multiple generations etc...
As you are suggesting, there are many things that can affect file size and video quality. More reference frames can help maintain high quality with a smaller file size. Using CRF, CBR, or VBR can produce great quality differences. So, yes, I am in agreement, a label is a label until it is not.
Filesize = bitrate*running time -
I came to ask about profiles, and I got my answer. There is no actual reason to discuss this further, but I'll humor you. I did give an indication in one of my replies, but it's up to you to read it or not.
Since you know I had another thread, then you know I can't give a lot of background given that this thread will then be closed. You should then also know that there are many things out of my control, e.g. encoding settings. As my other thread makes evident, there is no workflow in the sense of what you mean.
I spoke in haste, reference frames affect compression efficiency, not file size. I should have included it as part of visual quality differences.
If you have anything more that you feel must be said to me, feel free to PM me and I'll get back to you when possible. Otherwise, as stated above, I received my answer and the thread need not live on. Again, I appreciate everyone who replied to this thread and gave me helpful information, even you.If everything is infinite then nothing is definite. -
You came to ask about differences in AVC levels, not profiles. You asked about Main@L3.0 vs. Main@L3.1 (the number is the Level, not profile)
To be 100% clear, you can re-read post #2. Both are really labels, unless enforced . You didn't ask this - but in terms of profiles, if "baseline" profile was enforced for some video, then b-frames and CABAC are not allowed. Yes - that would negatively impact compression efficiency
Since you know I had another thread, then you know I can't give a lot of background given that this thread will then be closed. You should then also know that there are many things out of my control, e.g. encoding settings. As my other thread makes evident, there is no workflow in the sense of what you mean. -
You just want to argue over semantics, so we can do that. I asked about profiles, it may be the same profile with different levels, but that technically still makes it about profiles as much as it is about levels. Without a profile there is no level, so when speaking of a level, you must be speaking of a profile as well. If I ask about a profile at two different levels, then I am asking just that, about profiles at different levels. I never stated I came to ask about different profiles, only you did, so what I stated still stands as true.
Maybe most interesting is you wanting me to read things (when you don't seem to attempt that). Read my first post because it was never about levels and profiles, it was about if something was possible with a profile at a certain level. Not two profiles at two different levels, but one profile at one level. My later questions were built upon that foundation but still do not hold more significance than the first. So, no, I did not come to ask about the difference in levels, I came to ask if a specified profile and level allowed a specific resolution and frame rate.
You can reread the entire thread and understand why I was asking what I did. You can actually read the first thread and better understand why I asked. You can use Google to find out about that specific software. Most every question you are asking has been answered, if you read the threads.If everything is infinite then nothing is definite. -
I'm not arguing. You may call it semantics , but I call it important details. If you spew forth inaccuracies, some other guy is going to read it and think it's true. And someone will have to correct their misunderstanding later. You're going to be causing trouble for me and everyone else later. It's happened before. That's why I'm making a big deal out of it. That's why I'm not doing this in PM and not letting it go
Profile and level are independent entities. It's important to separate them because different limitations are placed if the encoder enforces them
Maybe most interesting is you wanting me to read things (when you don't seem to attempt that). Read my first post because it was never about levels and profiles, it was about if something was possible with a profile at a certain level. Not two profiles at two different levels, but one profile at one level. My later questions were built upon that foundation but still do not hold more significance than the first. So, no, I did not come to ask about the difference in levels, I came to ask if a specified profile and level allowed a specific resolution and frame rate. You can reread the entire thread and understand why I was asking what I did. You can actually read the first thread and better understand why I asked. You can use Google to find out about that specific software. Most every question you are asking has been answered, if you read the threads.
Exactly! That is confusing, as everything was already answered in your other thread , and again here. But you went on to say something about various encoding tests , ffmpeg . Obviously you can change the encoding settings there - so the discussion grew beyond the original scope. Is that software using ffmpeg ? Or libx264 ? Did you think applying your tests and observations wtih ffmpeg to that other software is relevant or directly valid? That's why there is some confusion on my part . I have had to make a lot of assumptions to fill in the gaps. The onus shouldn't be on the volunteer providing you free information to use search to fill in the gaps. And I realize the limitations you have with providing information here
Your posts suggested to me that you were searching for a cause or culprit for the low quality, and I was trying to steer you away from levels and profile as the culprit. That's what the big deal is about for me. Someone is going to read your posts and get the wrong idea with the misinformation
I'll say it again. It's just a label. Even if encoder enforces strict rules (and again, yours didn't, so that's even more telling - that means it's completely a "label" in your case) it says nothing about the actual quality . The other factors like bitrate, enocding settings, encoding conditions, etc.... are more important to consider .
Recall what I said about earlier x264 and later x264 versions. If your ffmpeg tests used a more recent binary, then levels and profiles are enforced, if VBV settings were set. Earlier versions only gave you warnings but allowed you to make violations. So be careful what conclusions you come to with your "tests"
I have a big problem with this statement:
If there are differences in quality and all things are still equal but profiles, that is when the label bares importance.
Now someone is going to ask why isn't the quality better when I use a higher profile blah blah... those types of questions. I'm trying to prevent all those misunderstandings before they occur
I hope you see why I asked those questions and where I'm coming from
CheersLast edited by poisondeathray; 19th Mar 2015 at 08:40.
-
Jim: Got some milk for me?
George: Sure, but I got to tell you, it's not organic!
Jim: Oh, no, I only drink organic!
George: Wait Jim, I got an Organic Sticker, let me put in on the milk carton!
Jim: Wow George, what a great idea! Now I can drink my organic milk!
-
Good one, hehehe.
I agree, inaccuracies and clarification is always beneficial for others. Such as clarifying that different profiles yield different visual quality even if identical settings are used to create the video output.
Logically the statement is valid, being sound is a different matter. And again, I can't look anywhere, I'm fairly sure I expressed that...
You seem like the type who needs the last word, so I don't doubt that you will reply. As for me, I'm done. I got my answers long ago and while it may seem that I was hoping profiles and levels were the cause of quality concerns, I actually was more hopeful that it would be as it actually is.
Anyways, I appreciate the help of those that gave it.If everything is infinite then nothing is definite. -
If identical encoding settings were used (an all other conditions were the same), then the output will be identical, regardless of levels or profile
You can look elsewhere. There are various stream analyzing utilities , avc analyzers. Start with mediainfo (view=>text) . h264_parse is a free CLI utility. Commercial analyzers like streameye, h264 visa , etc.... They tell you more information about the elementary stream
It sounds to me , like they emphasize speed (rightly so - they can't be having excessive frame drops with customers with slow computers) .
Perhaps you can request that they make some more settings available or expose more options
Last word hahaha -
The program in question encodes with x264 at fairly low quality settings:
Code:Writing library : x264 core 142 r2431 ac76440 Encoding settings : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x1:0x111 / me=dia / subme=4 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=4 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=2 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=1 / keyint=18 / keyint_min=10 / scenecut=40 / intra_refresh=0 / rc_lookahead=0 / rc=cbr / mbtree=0 / bitrate=3200 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=3200 / vbv_bufsize=3200 / nal_hrd=none / filler=0 / ip_ratio=1.41 / pb_ratio=1.30 / aq=1:1.00
Keep in mind that Netflix streams are not super high quality to begin with. -
@jagabo - r2431 is new enough, that it should respect levels and profile restrictions since vbv settings were set - can you post what mediainfo says about profile/level ? x264 shouldn't let you encode 1280x720p30 with main@L3.0 - I'm wondering if they're using a patched or custom build
Is there an .ini or .config file anywhere? Can you "hack" what settings they are using ?
Yes, those settings aren't very good and it explains a lot -
And I was wrong about newer builds not allowing you to encode out of spec - it looks like they only give you a warning for the CLI . But some GUI's that use x264 enforce those restrictions
Similar Threads
-
720p@30fps Possible with Main Profile Level 3.0?
By Thommers in forum Video Streaming DownloadingReplies: 3Last Post: 17th Mar 2015, 17:20 -
Handbrake Question: Lower quality 1080p, or higher quality 720p?
By natebetween in forum Blu-ray RippingReplies: 78Last Post: 8th Feb 2015, 21:25 -
H.263 Profile 3 Level 10 (video) and MPEG-4 AAC
By mfm_14 in forum Newbie / General discussionsReplies: 0Last Post: 21st Jul 2014, 06:32 -
Choosing the optimal h.264 profile/level in today's world
By iceblitzed in forum Video ConversionReplies: 1Last Post: 23rd Jun 2014, 22:35 -
Which is better video: 1080i 60i/30fps or 720p 60fps?
By jbitakis in forum Video ConversionReplies: 7Last Post: 9th Dec 2012, 04:59