@OttoKerner said:
Putting the encoder into CRF mode makes it disregard any bandwidth restrictions completely, which is bad for streaming. And streaming is what we are optimizing for.
I disagree with this. What the CRF does is set the quantizer to expect it to achieve a certain similarity to the original. It may or may not require use more bits depending on the source and the expected result.
edit, more backgroud:
CRF mode is good for archiving. You define a maximum allowed deviation in quality from the source file (this is the CRF value). You get a file of a certain size.
No you don’t. You can’t determine the size based on the CRF. You’re referring to limiting and that is not what the CRF does.
Simply dividing this filesize by the play duration only gets you the average bitrate. Which is not very useful if you have a streaming scenario where the maximum bitrate is limited. A ‘CRF encoding’ can still contain passages where the allowed bitrate is exceeded.
That is true. But this is always true when re-compressing files. With ffmpeg you can set a CRF value but then limit the upper bounds it can use in any one portion or over a portion of a file (x frames from each other). By doing this you can make sure you have the highest quality given per a specific bandwidth limit.
Here is an experiment:
if you have a Windows box download this tool: winhoros.de
It generates a graph of the bitrate of a video file. (It is a bit tricky to feed it mkv files, but it is possible. Just put in the ‘file name’ box . and Enter. After that you can select every file type.)
I’m not sure what you’re trying to show with this graph. You’re comparing apples to oranges. I think this is the same “confusion” Plex is putting on Media Optimizer. I believe Plex thinks they need to control the bitrate.
Many people will be quite happy with MO regardless of size of file. They just want to be able to transcode things like VC-1 blu ray rips in the background to get them in a format that can be streamed to devices without the buffering that takes place without a high-end CPU.
Remember we can already select the limit for the bandwidth (release 1), we can now select the compress or preset (release 2) but we still can’t choose our target quality (CRF) which is needed.
Once we have those 3 things this feature (MO) can be tailored specifically to what the user needs. As an example you could keep “original” to not artifically set a bandwidth with a CRF of 18 and a preset of veryslow to get a streamable version of a blu ray that will play without buffering.
You could setup a 4Mb 720 preset veryslow with a crf of 22 for those without a lot of bandwidth wanting to stream to friends.
You could setup a 2MB 720 slow CRF 24 for use to stream to smart phones.
So as you can see by being able to control each of these things we could setup MO to do exactly the task at hand!
Carlo