Difference between revisions of "Playback profiles"

From MythTV Official Wiki
Jump to: navigation, search
(Remove references to deprecated/removed CPU* groups)
 
(36 intermediate revisions by 12 users not shown)
Line 1: Line 1:
Playback profiles are a way for MythTV to set individual settings for various types of media through the internal media player.
+
Playback profiles are a way for MythTV to set individual playback settings for various types of media through the internal media player.
  
Three profiles come by default, CPU--, CPU+, CPU++You may also create your own profile. ''These changes may only exist in SVN''
+
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 renderingThe 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).
  
Each profile is multiple groups of display options that apply to different source resolutions in the recordingThe profiles will be evaluated in order of priority, then by matching resolutions, if those resolutions can be handled by the decoder specifiedIn other words, if you have ivtv specified as the decoder, but don't have a PVR-350 configured, those settings will be skipped in favor of the next matching profile groupLikewise, XvMC only supports MPEG-2 streams, so if you wish to use XvMC groups, they should be higher priority than Xv groups, so MPEG-4 recordings will fail through the XvMC groups but MPEG-2 streams will be caught by the higher priority XvMC group.
+
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 settingsDoing so will help to prevent miscommunications when describing your configuration, for example when asking for help or when helping othersCreating 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 performanceThen, 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.
  
==Examples==
+
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."
===CPU++ default settings===
 
  
CPU++ is designed for high powered machinesIt relies entirely on software rendering to display the image.
+
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.
  
{| border=1 cellspacing=0 cellpadding=5
+
==Available Settings==
|'''Resolution 1'''
+
 
 +
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:
 +
 
 +
; [[wikipedia:Display_resolution|Resolution]]: These settings define the source resolutions for which this profile will be applied.
 +
; [[wikipedia:Decoder|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.
 +
; [[Deinterlacing|Deinterlacer]]: This specifies the method used to deinterlace interlaced video for display.
 +
; Secondary [[Deinterlacing|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.
 +
; [[Using_playback_filters|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.
 +
 
 +
{| border=1 cellpadding=5
 +
! style="background:black" | <font color="white">High Quality</font>
 +
!! style="background:lightgrey" | Profile 1
 +
!! style="background:lightgrey" | Profile 2
 +
!! style="background:lightgrey" | Profile 3
 +
!! style="background:lightgrey" | Profile 4
 +
|-
 +
! style="background:lightgrey" | Description
 +
| Good deinterlacer for 1080i || High quality deint for (noisier) SDTV || Good deinterlacer for 1080i || High quality deint for (noisier) SDTV
 +
|-
 +
! style="background:lightgrey" | Resolution
 +
| >= 1920 1080 || > 0 0 || >= 1920 1080 || > 0 0
 +
|-
 +
! style="background:lightgrey" | Decoder
 +
| [[ffmpeg]] || [[ffmpeg]] || [[ffmpeg]] || [[ffmpeg]]
 +
|-~
 +
! style="background:lightgrey" | Video Renderer
 +
| [[xv-blit]] || [[xv-blit]] || [[quartz-blit]] || [[quartz-blit]]
 +
|-
 +
! style="background:lightgrey" | OSD Renderer
 +
| [[softblend]] || [[softblend]] || [[softblend]] || [[softblend]]
 +
|-
 +
! style="background:lightgrey" | OSD Fade
 +
| On || On || On || On
 +
|-~
 +
! style="background:lightgrey" | Deinterlacer
 +
| [[linearblend]] || [[yadifdoubleprocessdeint]] || [[linearblend]] || [[yadifdoubleprocessdeint]]
 +
|-
 +
! style="background:lightgrey" | Secondary Deinterlacer
 +
| [[linearblend]] || [[yadifdeint]] || [[linearblend]] || [[yadifdeint]]
 +
|-
 +
! style="background:lightgrey" | 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.
 +
 
 +
{| border=1 cellpadding=5
 +
! style="background:black" | <font color="white">Normal</font>
 +
!! style="background:lightgrey" | Profile 1
 +
!! style="background:lightgrey" | Profile 2
 +
!! style="background:lightgrey" | Profile 3
 +
!! style="background:lightgrey" | Profile 4
 
|-
 
|-
|[[Resolution]] comparison
+
! style="background:lightgrey" | Description
| > 0 0
+
| Good deinterlacer for HDTV || High quality deint for (noisier) SDTV || Good deinterlacer for HDTV || High quality deint for (noisier) SDTV
 
|-
 
|-
|[[Decoder]]
+
! style="background:lightgrey" | Resolution
|[[ffmpeg]] 
+
| >= 1280 720 || > 0 0 || >= 1280 720 || > 0 0
|-
 
|Video Renderer
 
|[[xv-blit]] 
 
 
|-
 
|-
|[[OSD]] Renderer  
+
! style="background:lightgrey" | Decoder
|softblend 
+
| [[ffmpeg]] || [[ffmpeg]] || [[ffmpeg]] || [[ffmpeg]]
 +
|-~
 +
! style="background:lightgrey" | Video Renderer
 +
| [[xv-blit]] || [[xv-blit]] || [[quartz-blit]] || [[quartz-blit]]
 
|-
 
|-
| [[OSD]] Fade     
+
! style="background:lightgrey" | OSD Renderer
|On         
+
| [[softblend]] || [[softblend]] || [[softblend]] || [[softblend]]
 
|-
 
|-
| [[Deinterlace]]er       
+
! style="background:lightgrey" | OSD Fade
|[[bobdeint]]  
+
| Off || On || Off || On
 +
|-~
 +
! style="background:lightgrey" | Deinterlacer
 +
| [[linearblend]] || [[greedyhdoubleprocessdeint]] || [[linearblend]] || [[greedyhdoubleprocessdeint]]
 
|-
 
|-
|Secondary [[Deinterlace]]er     
+
! style="background:lightgrey" | Secondary Deinterlacer
| [[linearblend]]  
+
| [[linearblend]] || [[kerneldeint]] || [[linearblend]] || [[kerneldeint]]
 
|-
 
|-
| [[Using_playback_filters|Filters]]     
+
! style="background:lightgrey" | Filters
|       None     
+
| none || none || none || none
 
|-
 
|-
|'''Resolution 2'''
+
|}
 +
 
 +
===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.
 +
 
 +
{| border=1 cellpadding=5
 +
! style="background:black" | <font color="white">Slim</font>
 +
!! style="background:lightgrey" | Profile 1
 +
!! style="background:lightgrey" | Profile 2
 +
!! style="background:lightgrey" | Profile 3
 +
!! style="background:lightgrey" | Profile 4
 
|-
 
|-
| [[Resolution]] comparison
+
! style="background:lightgrey" | Description
| > 0 0     
+
| Simple deinterlacer for HDTV || Simple, slightly better, deinterlacer for SDTV || Simple deinterlacer for HDTV || Simple, slightly better, deinterlacer for SDTV
 
|-
 
|-
| [[Decoder]]   
+
! style="background:lightgrey" | Resolution
| [[ffmpeg]]     
+
| >= 1280 720 || > 0 0 || >= 1280 720 || > 0 0
 
|-
 
|-
|Video Renderer  
+
! style="background:lightgrey" | Decoder
| [[quartz]]-blit  
+
| [[ffmpeg]] || [[ffmpeg]] || [[ffmpeg]] || [[ffmpeg]]
 +
|-~
 +
! style="background:lightgrey" | Video Renderer
 +
| [[xv-blit]] || [[xv-blit]] || [[quartz-blit]] || [[quartz-blit]]
 
|-
 
|-
|[[OSD]] Renderer 
+
! style="background:lightgrey" | OSD Renderer
| [[softblend ]]
+
| [[softblend]] || [[softblend]] || [[softblend]] || [[softblend]]
 
|-
 
|-
|[[OSD]] Fade   
+
! style="background:lightgrey" | OSD Fade
| On       
+
| Off || On || Off || On
 +
|-~
 +
! style="background:lightgrey" | Deinterlacer
 +
| [[onefield]] || [[linearblend]] || [[onefield]] || [[linearblend]]
 
|-
 
|-
|[[Deinterlace]]r   
+
! style="background:lightgrey" | Secondary Deinterlacer
| [[linearblend]]  
+
| [[onefield]] || [[linearblend]] || [[onefield]] || [[linearblend]]
 
|-
 
|-
|Secondary [[Deinterlace]]r 
+
! style="background:lightgrey" | Filters
|[[linearblend]]
+
| none || none || none || none
 
|-
 
|-
|[[Using_playback_filters|Filters]]     
 
| 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:
 +
 +
<code>
 +
NVP: Video is 7.02403 frames behind audio (too slow), dropping frame to catch up.
 +
</code>
 +
 +
<code>NVP: Video is 7.67555 frames behind audio (too slow), dropping frame to catch up.
 +
</code>
 +
 +
<code>NVP: Video is 7.92416 frames behind audio (too slow), dropping frame to catch up.
 +
</code>
 +
 +
<code>NVP: Video is 7.87064 frames behind audio (too slow), dropping frame to catch up.
 +
</code>
 +
 +
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]].
 +
 +
[[Category:HOWTO]]

Latest revision as of 14:46, 11 January 2013

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.