View Single Post
Old 11th October 2014, 15:31   #11  |  Link
r0lZ
PgcEdit daemon
 
r0lZ's Avatar
 
Join Date: Jul 2003
Posts: 7,469
Quote:
Originally Posted by LoRd_MuldeR View Post
What do I expect? I expect that, if I neither use "--profile" nor "--level", then x264 will set the "correct" Profile and Level for me.
I agree. But that doesn't mean that you don't need to specify the level when your target hardware is not compatible with the highest levels.

Quote:
Originally Posted by LoRd_MuldeR View Post
That is: the lowest possible Profile that my stream complies to as well as the lowest possible Level that my stream complies - given the current input file and the current encoder settings.
Here, I disagree, or I doesn't understand what you mean. If it's really the lowest profile that is selected, all videos should be encoded in the baseline profile, the lowest one. (It is compatible with the clip I have encoded, since it's the profile that x264 uses by default if I select the ultrafast preset.) IMO, the encoder tries to use the highest profile and level, given the input file and the preset. It's what I have verified: when you give it more time to compute a higher profile or level, it does it (of course, as long as it's compatible with your file).

Quote:
Originally Posted by LoRd_MuldeR View Post
Enforcing a lower Level, on the other hand, is almost always a very bad idea, as explained and demonstrated in the previous post.
Quote:
Originally Posted by LoRd_MuldeR View Post
If your stream would normally come out as Level 5.1, but you enforce Level 4.1 by adding "--level 4.1" (while keeping all other settings the same), you stream's Level requirements do not change at all. Only difference is that your stream will now incorrectly be tagged as Level 4.1, while it actually doesn't comply to that Level - it still requires Level 5.1.
Where have you learned that? In all sites about x264 I have visited, the level option is always presented as the upper limit for the encoder, not just as a way to force a (possibly wrong) information in the header. Also, my TV supports only level 4.2. If I encode without --level 4.2 at preset placebo, x264 uses level 5.1, and writes that info in the header. My TV rejects it. OK, that might be because it has read the info in the header. But how could you explain that when I encode the same clip with exactly the same parameters except that I have added --level 4.1, the same TV plays it perfectly? My TV rejects level 5.1 because it can't play it, but plays perfectly my file. Therefore, my file has been encoded at level 4.1, and the --level option has really been used to limit the encoder during the encoding process. Otherwise, I should at least see some glitches from time to time, but the result is perfect. Don't tell me that my TV can decode level 5.1 but rejects it, just to annoy the peoples.

However, I agree that specifying --ref 16 AND the --level 4.1 at the same time is incompatible and will trigger warnings. Of course, if you limit x264 to a certain level AND you force it to use some characteristics from a higher level, it will not be able to do what you want without violating one of the parameters. And in that case, it may write level 4.1 in the header, even if it's not true. In my tests, I specify ONLY the level, without other incompatible options, and in that case, I'm sure x264 produces really a stream compatible with level 4.1.
__________________
r0lZ
PgcEdit homepage (hosted by VideoHelp)
BD3D2MK3D A tool to convert 3D blu-rays to SBS, T&B or FS MKV

Last edited by r0lZ; 11th October 2014 at 15:34.
r0lZ is offline   Reply With Quote