NVIDIA Component Out
The best configuration for video from a MythTV frontend via an nVidia card to an HD capable television is via DVI, VGA, or component out from the nVidia card to the television. All three of these methods are capable of progressive video, and provide a much better quality picture over interlaced s-video or composite connections.
A VGA connection from your MythTV system to your television will treat the television in the same way that it treats a computer monitor. Computer monitors have the ability of having a large variety of resolutions, but there are only a few resolutions that are compatible with television broadcasts and DVDs. VGA is an analog signal which has the potential for some loss (although it is widely considered to be negligible).
Far fewer televisions provide DVI input, and even fewer have them enabled properly. However, DVI is effectively the digital equivalent of VGA. Because it is digital, there is no loss of quality and it can span greater distances.
An excellent option is a standard DVI to HDMI cable which simply takes the DVI output from your video card to the HDMI input to your television. Long 9 foot good quality cables can be found in the $20US range. http://www.buyextras.com/hdmamasilica.html
Some newer nVidia video cards now come with HDMI interfaces on-board. As of October 2007, the 7600GS can be found with an HDMI connection. The advantage of HDMI is that is it purely digital end to end. However, the number of cards of this type are still limited in availability and, as such, are still more expensive than their DVI counterparts. HDMI has the potential of being negatively impacted by Digital_rights_management (DRM).
Some video cards provide 'HD Breakout Pods' or "HD Breakout Boxes" which provide the ability to run component cables from the computer to the television. The component video output, unlike VGA or DVI, follows TV standards for output. As such, there is a certain amount of overscan (but see below) involved in the resulting video. However, the quality of the video is very good, yet still analog. Component can support 720p, 1080i and even 1080p, depending on the monitor and source.
However, we are all limited by what inputs our televisions have.
If VGA, DVI, HDMI, or Component connections are used to connect from your MythTV box to your television, you have to be aware that you will be displaying interlaced video on an progressive display which will introduce issues (that can be mostly solved) that will be addressed below.
Comparisons to a component transcoder
Some users report that "with finally getting the component out on the Nvidia card to work, I have the best Myth display I have ever had, and that is with using composite, s-video, 3 different VGA transcoders, and finally the component out" while others suggest that utilizing a VGA to component transcoder provides higher quality, the end result of each is a lot better than composite or s-video. Using a television that supports DVI is the best method. For anyone that does not have a TV capable of DVI or VGA and wants to avoid the expense of a transcoder as these can cost upwards of $125US, this is one option that does work.
This guide assumes a person has the Nvidia drivers loaded and functioning for VGA. I would recommend starting with the latest nVidia drivers. If you have problems, work your way backwards to the previous driver, and so on, until those problems go away.
The Nvidia Linux drivers have "TVStandard" and "Modes" that supports component out directly from the card. No modelines required! To get it going, look at the following excerpt from Xorg.conf. The key line to getting the component out to work is TVStandard. Note: Component is not a valid "TVStandard" such as SVideo and composite. The Nvidia README is a great resource for those looking to better understand the options. A basic example is shown below, providing the quick-n-easy option for simply uncommenting the two options for the resolution you would like to use while leaving the rest commented out.
Example Configuration using metamodes (TVStandard)
Section "Screen" Identifier "Default Screen" Device "NVIDIA Corporation NV43 [GeForce 6600]" Monitor "Visual Sensa" Option "UseEDID" "FALSE" Option "ConnectedMonitor" "TV" Option "TvOutFormat" "Component" #------------480p Group----------------------------- #Option "TVStandard" "HD480p" #Option "metamodes" "CRT: 720x480 +0+0" #------------720p Group----------------------------- Option "TVStandard" "HD720p" Option "metamodes" "CRT: 1280x720 +0+0" #------------1080i Group----------------------------- #Option "metamodes" "CRT: 1920x1080 +0+0" #Option "TVStandard" "HD1080i" Option "AddARGBGLXVisuals" "True" End Section Section "Monitor" Identifier "Visual Sensa" HorizSync 15.0 - 620.0 VertRefresh 15.0 - 600.0 # You probably do not want your screen blanking while you are watching a recording # Option "DPMS" EndSection SubSection "Display" Depth 24 Modes "720x480" "1280x720" "1920x1080" EndSubSection
Example using nVidia macros
Section "Monitor" Identifier "Monitor0" VendorName "Polaroid FLM-3232" ModelName "Proview FLM-3232" EndSection Section "Device" Identifier "Videocard0" Driver "nvidia" VendorName "XFX" BoardName "XFX nVidia GeForce 6200" Option "RenderAccel" "1" Option "NvAGP" "2" Option "NoLogo" "true" Option "UseEvents" "True" EndSection Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 # 1080p 720p 480p #Modes "1920x1080_60" "1280x720_60" "720x480_60" # This TV only support up to 720p Modes "1280x720_60" "720x480_60" EndSubSection EndSection
Check the information below regarding the differences in the configuration options with regard to the driver that you are currently running to see if there are any additional steps to perform. Be sure to check out the newer macros as an alternative to the metamodes configuration.
That's it. Component out from Mythtv without a transcoder.
nVidia Driver Version differences
Prior to and including 8756
There's a bug in the Nvidia drivers prior to and including 8756:
In nVidia drivers releases prior to and including 8756, if you try to do video at 1080i, X will lock up. This problem does not exist with 9746. To workaround this issue under the other drivers, launch the "nvidia-settings" GUI and make sure that 'Sync to VBlank' under Video Texture Adaptor is NOT checked. The nvidia-settings also needs to be loaded everytime X starts, and this can be done ini a variety of ways depending on the distribution you are using (check with your distribution's documentation). Some have placed it in their startup group to run the command "nvidia-settings -l" and others have placed the following in their .Xsession file instead of having nvidia-settings in your startup group:
/usr/bin/nvidia-settings --assign="XVideoBlitterSyncToVBlank=0" \\ --assign="XVideoTextureSyncToVBlank=0" --assign "SyncToVBlank=0"
As of nVidia driver version 9746, the option "ConnectMonitor" is no longer used. In previous versions of the driver, you would set "Option "ConnectMonitor" "TV" to tell the driver to enable the TV-Out encoder. Unless the card detects a television at start up (the television must be on before turning on the computer), the card won't enable the TV-Out encoder.
The configuration has been simplified by nVidia as they have created modes that provide standard TV output. Rather than using the metamodes as in the examples above, nVidia made available modes for 1080p ("1920x1080_60"), 720p ("1280x720_60"), and 480p ("720x480_60"). By using these, the xorg.conf file becomes much more simplified and easier to manage, and you now know exactly what signal you are outputting from your system to the television.
I have personally found a lot more success using these pre-defined modes than with the metamodes. However, as with the metamodes above, there will be a certain amount of overscan defines within the signal.
Since 190.36 there is again a way to compensate for the television's overscan. (The TVStandard "HD1080i" overrides all modelines.) In the X server GUI under the GPU 0(or 1) there is now an "Overscan Compensation" slider which applies to Desktop and mythTV video alike. An alternative workaround to this problem is to adjust the gui size in the MythTV general settings. Then check play video at the size of gui. Some sets require cutting up to 100 pixels out of the picture for both height and width, but this can vary with the way each television handles overscan.
Displaying interlaced video on an HD display will result in artifacts. It is best to enable the checkbox next to "de-interlace video" and select "Bob" as the method. This will result in an upscaled picture that should look pretty good (not excellent). It will, however, require some CPU processing to do the interlaced->progressive transition, but not a lot. If you have a decently powered frontend system, you won't even notice the difference. You will, however, periodically see some artifacts during fast movement, but you have to consider that your source image is interlaced and it is being modified to be displayed on a progressive screen.
A big warning: The quality from component out is actually quite good when compared to composite or S-Video output. Composite and S-Video output are always interlaced video, so your standard definition TV broadcasts will look as they normally do. Up-scaling the video from interlaced to progressive (regardless of the resolution (480p, 720p, 1080i) and you will see a difference in the picture quality with SD television recordings. Displaying DVD's or video from MythVideo (depending on the quality of the source) will look fantastic.
Digital Rights Management
The fear with relying on HDMI for displaying on a television screen is that HDMI, by design, supports DRM. DRM is best defined here.
VGA, DVI, Component, S-Video, and composite outputs are not subject to DRM filtration unless they pass through some form of converter to 'become' HDMI before going to the television.
Here is a post if you are considering buying a 6200 for component out capability. http://www.nvnews.net/vbulletin/showthread.php?t=67261&highlight=6200+component
The original snippet of the Xorg.conf was obtained from Mitchell Gore's posting: http://www.gossamer-threads.com/lists/mythtv/users/245570?search_string=MythTV%20%2B%20HD;#245570 It has since been heavily modified and updated, and it no longer bears any resemblance to the original.