Playback profiles

From MythTV Official Wiki
Jump to: navigation, search

Playback profiles are a way for MythTV to set individual playback settings for various types of media through the internal media player.

Several "default" Playback Profile Groups are automatically available in MythTV. Provided are three example groups for each of VDPAU, OpenGL, VDA (on Mac OS), and "standard" playback rendering. The Slim, Normal, and High Quality Playback Profile groups for each renderer type demonstrate configurations for low-resource (but lower-quality) playback (via Slim) through high-resource (but higher-quality) playback (via High Quality).

While you may edit these default profile groups, generally it's better to think of them purely as examples and either use them without modification or create your own playback profile group if you wish to edit and modify settings. Doing so will help to prevent miscommunications when describing your configuration, for example when asking for help or when helping others. Creating your own playback profile group also has the benefit of allowing you to start with a simple configuration (i.e. if rez > 0 0 -> ffmpeg & XVideo) and experiment by changing items (OSD renderer, OSD fade, deinterlacers, ...) individually and seeing how the change affects playback quality and performance. Then, as you determine how the settings affect your system, you can add complexity to get exactly the behavior you want for each type of video you use.

If you have not yet modified your playback profile configuration, the "Normal" playback profile group will be selected by default. To use a profile group that is similar to the software-rendered settings in versions before 0.21, choose "Slim."

Each playback profile group consists of multiple profiles that are applied according to priority and match criteria (currently matching the recording's source resolution to some specified resolution). The profiles will be evaluated in order of priority, then by matching resolutions, but will only be used if the decoder is supported on the current hardware/configuration.

Available Settings

What options you have for each setting is defined by your configuration options as well as which development packages you have installed on your computer. The available settings are briefly as follows:

Resolution
These settings define the source resolutions for which this profile will be applied.
Decoder
This defines what library MythTV will use to decode the video, be it software (nuppeldecoder, ffmpeg, libmpeg2), or hardware assisted (VDPAU).
Video Renderer
This controls how the video is actually drawn to the screen. If you choose a renderer that's not supported by the current hardware/software configuration, MythTV will fall back to a working renderer.
OSD Renderer
This defines how the On-Screen Display is overlaid on the video. If you choose a renderer that's not supported by the current hardware/software configuration, MythTV will fall back to a working renderer.
OSD Fade
This specifies whether the OSD fades away or simply vanishes when it times out.
Deinterlacer
This specifies the method used to deinterlace interlaced video for display.
Secondary Deinterlacer
This specifies the deinterlacer used if the primary deinterlacer cannot be used. For example, if the framerate is too slow for double-framerate deinterlacers.
Filters
This specifies the filters to apply.

Default profile groups

Note: If you manage to muck up your playback profile groups and want the defaults back: First, copy down information you want to "save" from your current Playback Profile Group configuration (unless you want to just start over). Then, start deleting all the Playback Profile Groups. Go to the "Delete" button next to "Current Video Playback Profile" and hit it until there's no name left in the drop-down box next to "Current Video Playback Profile" (it should be blank). At this point, the Playback Profile Entries may look messed up (there may be some seemingly random number of them that may or may not be filled out), but don't worry about that. Then, select the Next button to "save" your settings. Finally, go back through TV Setting->Playback until you get to the "Playback Profiles (3/9)" page, where you'll see all the defaults. Then, add a new playback profile group and edit to your content.


High Quality default settings

High Quality is a profile group designed for machines capable of software rendering with enough extra resources to handle processor-intensive deinterlacing for SDTV resolutions. If the display is running at twice the frame rate of the video for SDTV resolutions, a very high quality deinterlacer is used.

High Quality Profile 1 Profile 2 Profile 3 Profile 4
Description Good deinterlacer for 1080i High quality deint for (noisier) SDTV Good deinterlacer for 1080i High quality deint for (noisier) SDTV
Resolution >= 1920 1080 > 0 0 >= 1920 1080 > 0 0
Decoder ffmpeg ffmpeg ffmpeg ffmpeg
Video Renderer xv-blit xv-blit quartz-blit quartz-blit
OSD Renderer softblend softblend softblend softblend
OSD Fade On On On On
Deinterlacer linearblend yadifdoubleprocessdeint linearblend yadifdoubleprocessdeint
Secondary Deinterlacer linearblend yadifdeint linearblend yadifdeint
Filters none none none none

Normal default settings

Normal is a profile group designed for machines capable of software rendering with enough extra resources to handle processor-intensive deinterlacing for SDTV resolutions. It is the default selected profile group. The deinterlacer used for SDTV requires fewer resources than the one used for the High Quality profile group and supports a fallback to a single-rate deinterlacer for displays running at less than twice the frame rate of the video. OSD Fade is disabled for high-definition.

Normal Profile 1 Profile 2 Profile 3 Profile 4
Description Good deinterlacer for HDTV High quality deint for (noisier) SDTV Good deinterlacer for HDTV High quality deint for (noisier) SDTV
Resolution >= 1280 720 > 0 0 >= 1280 720 > 0 0
Decoder ffmpeg ffmpeg ffmpeg ffmpeg
Video Renderer xv-blit xv-blit quartz-blit quartz-blit
OSD Renderer softblend softblend softblend softblend
OSD Fade Off On Off On
Deinterlacer linearblend greedyhdoubleprocessdeint linearblend greedyhdoubleprocessdeint
Secondary Deinterlacer linearblend kerneldeint linearblend kerneldeint
Filters none none none none

Slim default settings

Slim is a profile group designed for machines capable of software rendering. The deinterlacers used for all resolutions require few resources and do not require displays running at twice the frame rate of the video. OSD Fade is disabled for high-definition.

Slim Profile 1 Profile 2 Profile 3 Profile 4
Description Simple deinterlacer for HDTV Simple, slightly better, deinterlacer for SDTV Simple deinterlacer for HDTV Simple, slightly better, deinterlacer for SDTV
Resolution >= 1280 720 > 0 0 >= 1280 720 > 0 0
Decoder ffmpeg ffmpeg ffmpeg ffmpeg
Video Renderer xv-blit xv-blit quartz-blit quartz-blit
OSD Renderer softblend softblend softblend softblend
OSD Fade Off On Off On
Deinterlacer onefield linearblend onefield linearblend
Secondary Deinterlacer onefield linearblend onefield linearblend
Filters none none none none

A note about deinterlacers

Time stretching and time compression during playback affect the efficacy of some deinterlacers, namely those which process video from more than two fields (e.g. greedy or yadif). A symptom of using the 'wrong' deinterlacer for those playback methods is an apparent reduction in framerate coupled with lots of messages in a '-v playback' log similar to this:

NVP: Video is 7.02403 frames behind audio (too slow), dropping frame to catch up.

NVP: Video is 7.67555 frames behind audio (too slow), dropping frame to catch up.

NVP: Video is 7.92416 frames behind audio (too slow), dropping frame to catch up.

NVP: Video is 7.87064 frames behind audio (too slow), dropping frame to catch up.

The solution of course is to ensure that the secondary deinterlacer is one which does not process more than two fields of video - namely 'onefield', 'discard' etc - or just leave the secondary deinterlacer preference as its default value.

Comparing deinterlacers

There is a python script available for comparing deinterlacers.