peertube-theme-nctv-dark/peertube-plugin-transcoding-custom-quality
2023-10-10 07:22:30 +00:00
..
main.js Merge branch 'telemillevaches-master-patch-65524' into 'master' 2023-10-05 08:11:36 +00:00
package.json Update version 2023-10-05 10:12:00 +02:00
README.md Update README.md with more details on the CRF value used by each label, and with some explanations on CRF method (with a source link to ffmpeg.org) 2023-10-10 07:22:30 +00:00

PeerTube transcoding custom quality

This plugin creates a transcoding profile in which admins can decide the quality of the transcoding process. Here are the CRF value used by ffmpeg for each label :

  • 'Low' -> CRF = 36
  • 'Medium' -> CRF = 33
  • 'Good (Peertube default)' -> CRF = 30
  • 'Very good' -> CRF = 27
  • 'Excellent' -> CRF = 24
  • 'Perfect' -> CRF = 21
  • 'Unreasonnable' -> CRF = 18
  • 'Insane' -> CRF = 15

Increasing quality will result in bigger video sizes.


Once installed and your value set in the plugin parameters, you have to choose "custom-quality" option in Administration/Configuration/VOD Transcoding/Transcoding profile.


Explanations (source : https://trac.ffmpeg.org/wiki/Encode/H.264)

CRF means Constant Rate Factor. This method allows the encoder to attempt to achieve a certain output quality for the whole file when output file size is of less importance. This provides maximum compression efficiency with a single pass. By adjusting the so-called quantizer for each frame, it gets the bitrate it needs to keep the requested quality level. The downside is that you can't tell it to get a specific filesize or not go over a specific size or bitrate, which means that this method is not recommended for encoding videos for streaming. The range of the CRF scale is 051, where 0 is lossless, 23 is the default (for ffmpeg), and 51 is worst quality possible. A lower value generally leads to higher quality, and a subjectively sane range is 1728. Consider 17 or 18 to be visually lossless or nearly so; it should look the same or nearly the same as the input but it isn't technically lossless. The range is exponential, so increasing the CRF value +6 results in roughly half the bitrate / file size, while -6 leads to roughly twice the bitrate. Choose the highest CRF value that still provides an acceptable quality. If the output looks good, then try a higher value. If it looks bad, choose a lower value.

Note: The 051 CRF quantizer scale mentioned on this page only applies to 8-bit x264. For 10-bit support, refer to the documentation on ffmpeg.org