DVI splitting

Dear Lazyweb,

I want to get an S/Video output from my iMac, so that when it plays videos I can watch them on my TV.

The iMac has (in addition to its built-in LCD) a mini-DVI output. I have a CRT monitor plugged into that via a mini-DVI-to-SVGA adapter, giving me a two-monitor desktop.

I think that what I want is for the picture on that second monitor to just be mirrored onto an S/Video cable. That way, anything I full-screen over on that monitor will be viewable on the TV.

So I guess I need either:

  1. an SVGA splitter, and an SVGA-to-S/Video converter; or
  2. a DVI splitter, and a DVI-to-S/Video converter.

I have this MiniDVI-to-S/Video adapter, and it works good, but when I plug it in, the iMac realizes that it should be doing 800x600, which makes me suspect that DVI is "too smart" for what I want to do, and it would force me to run the desktop CRT at 800x600, which would be not ok. Is that the case?

(I can't find any DVI splitters that don't look like some kind of crazy distribution-amplifier boxes, or that seem like they aren't really splitters, but are for driving a single giant monitor with two video cards, or something weird like that. How does this crap work? Does the thing I want exist?)

So, I guess I should go the other route, and get an SVGA-to-S/Video adapter, since SVGA is "dumb". Central was out of this one, but the guy behind the counter said "you shouldn't buy that anyway, it sucks." Do they all suck?

It wouldn't be that big a hassle to just go behind the iMac and un-plug the external monitor and plug in the video dingus when I want to watch TV, except that doing that causes all my windows to move around, as Finder shifts my 1600x1200 desktop around to fit in 800x600, which is very annoying.

Is there a better way to do this?

Update: I got an AverKey 300 Gold, and it seems to do the job. It made the pass-thru VGA image a bit fuzzier, but that may actually be because my cables are too long now.

Update 2: Yeah, it was the cables. Replacing them with a pair of triple-sheilded 1M cables cleared it up.

Tags: , , ,

25 Responses:

  1. dougygyro says:

    As far as the CRT resizing automatically, go into the "Displays" pane in System Preferences. You can then tell the video card what size and mhz rate you want to export to the external display. In here you can also change around where the two displays share boundaries and which is "primary."

    For your purposes, probably getting an SVGA splitter would be best. I believe (but might very well be wrong) that the video card looks for the closest connection when determining how to redraw the pixel ratio and such. Going to a DVI splitter might confuse it because later down the line both displays would be analog, and since the closest connection would be digital it might bork something. Basically this is similar to what you said about DVI being "smarter" than VGA and all that... but in a different manner and end result.

    • jwz says:

      The "Displays" pane won't let me use anything bigger than 1024x768 60Hz with the DVI-to-S/Video thing, so that's still going to cause a resize (my CRT is running at 1600x1200 85Hz). So, yeah, an SVGA splitter seems the way to go... And I guess I'll have to figure it out all over again if I ever replace this external CRT with an LCD.

  2. codenazi says:

    Maybe I'm not understanding something properly in the question, but is this even possible?

    You want to output to NTSC (by way of S/Video), and that's limited in resolution. Most vid-drivers I've seen, when they detect a NTSC target, automagically change to compatible resolutions (hence the 800x600x60Hz). I doubt you can get it to have a single screen be 1600x1200 and output to NTSC at the same time. How would it do that? Only show 1/4 or whatever of the screen on the TV?

    When I've done things like this in the past, I've had to dedicate a single output/head to the TV/NTSC purpose. Currently I have a crappy (read: cheap) PCI nvidia card in my linux box for such purposes, that is entirely independent of my main (good) video card. That puts my main two outputs on :0.0 and :0.1, and TV on :0.2, which works out ok. That requires another vid-card, though, and how feasible/compatible/sane that is on your system is highly questionable.

    No great answers, unfortunately. If you are ok with switching cables, there may be some magic your could invoke on the mac to have it put your windows back when you are done (thinking save-session/restore-session on X...), but that's out of my area of experience... sigh.

    • jwz says:

      I'm pretty sure the way these SVGA-to-S/Video cables work is by just scaling whatever video is thrown at them.

      • codenazi says:

        Some of the cables I've seen in the past (say, bundled with a Matrox board from a few years back) just split out a couple pins that were spare on the VGA connector. The card would be "smart" and notice an NTSC load out on those pins, and start driving them accordingly. It's worth noting that on at least this card, it did that check at power-on, so it would get confused if you changed the cables after the fact, and various badness would happen.

        Sigh... google is failing me on finding an example of such a pinout... either that or I'm too tired to formulate a search properly. Blarg...

        Aside: This is what Creative Labs and others did to get a "free" marketing-bullet-point on their soundcards by having MIDI in/out support - the game port they used had two spare pins, so that became the MIDI tx/rx, with ground shared with the normal game port ground. A special cable would break things out to the proper connectors.

        As mentioned below, you need something much heavier than a simple piece of copper. Some framebuffer to capture the VGA, scale it down, and output NTSC.

        It's probably worth noting that 1600x1200 is 2x 800x600, so I'd guess that a lot of cheap "converters" would probably just throw out every other col/row, instead of averaging them or something. Some of the old scan-converters I've used a long time ago that did VGA->NTSC were... very pricey. As in >$1000 pricy. I'm sure they are much cheaper now, but I wouldn't be surprised if a cheap <$100 box too such shortcuts. Dealing with scan-conversion sucks. (wait - dealing with NTSC in general sucks...) I still think it's saner to go for a cheap PCI card that has a SVideo-out built in, and dedicate it to that purpose. That should be <$100, easy. At least if it works that easily in mac-land. (I would hope so) That way, you set that particular output to the required 800x600 or whatever, and things "just work". No worries about possible crappy/cheating scalars in cheap SVGA->S/Video scan-converters, as you are output the correct size in the first place. Sure, it's a low-rez screen, but your are only using it to send video to TV anyway, yes? Then it shouldn't matter...

        • jwz says:

          Ok, that's a great idea -- I'll put a cheap PCI card into my iMac. It goes in the CD slot, right?

          If I'm watching some fuckin' downloaded MPEG file, I'm sure throwing out every other line would be just fine.

          • codenazi says:

            ahh, sorry... I keep forgetting that other-world that mac-land is in terms of hardware.

            <lj user="adolf">'s comments below were in line with what I was trying to say about scan converters... that Extron unit mentioned is very similar to one I got to use years ago - great stuff, you can throw whatever you want at it and it "just works". But... yah, the price is horribly frightening.

            That AverKey300 Gold that <lj user="badc0ffee"> linked to seems pretty cool. At only $180 that is surprisingly cheap, and actually claims to support your desired resolution. It even has a VGA pass-through, so it looks like you wouldn't need to split the VGA signal before hand, too.

    • babbage says:

      Cool avatar icon. Where did you get it?

  3. ultranurd says:

    If you mirror the second monitor over to the TV via S-Video, won't that lock your second monitor down to 800x600?

    When I used my old PBG4/400's S-Video out, I was really unimpressed... I don't suppose you're planning on investing in a TV with DVI-D in?

  4. emexgee says:

    much to my surprise, this just works.

    now you just need to find a local distributor...

  5. Don't listen to the hatas, you just need a splitter and a VGS to NTSC converter. I have don this in the past. The converters have a framebuffer in them, and they scale whatever they get, then crap it out as NTSC. The guy from Central said it sucks because NTSC sucks; you don't want to try to do "computer" stuff on a TV, but it's fine for showing video. When you're scaling video from 16x12 to NTSC, it doesn't much matter how optimal your algorithms are.

    You should, however, make sure that the converter supports 16x12@85 or whatever.

    • I probably should've looked at you link first. The $4.95 thing from central is not what you want, you want one of the ~$100 things.

      And, yeah, you're gong to be screwed if you want to drive a digital LCD and also show the video on your TV.

  6. hatter says:

    SVGA is the way to go - the convertors often only (officially) support low-ish res and refresh rates, so make sure you either buy one that supports your combination, or be prepared to send it back or put up with a slightly more wonky picture. You should be able to twiddle the refresh rate from the displays panel, so that you can drop that part without messing up your windows, if that helps the convertor box. If your tv and convertor box both support it, you might want to try PAL mode, see if it looks better than NTSC.

    the hatter

  7. adolf says:

    Right, then.

    So you've got an iMac producing and using VGA, and you want to split that out to NTSC SVideo without fucking up anything existing and further complicating your life.

    That sounds like a job for a $100 scan converter with VGA passthrough, which are easy to find (as long as you Google for "thru" instead of "through", as cheap hardware manufacturers are always abbreviating things that don't need abbreviated).

    But it's not.

    See, you've got a big CRT monitor, set up very rationally to be 1600x1200 at a very wonderful refresh rate of 85Hz.

    This scares the shit out of cheap scan converters, which at best claim to handle 1280x1024, and then probably at 60Hz.

    Like everything else, it's a matter of bandwidth. And so, even today, it's hard work (read: expensive) to digitize an RGB signal of 1600x1200x85Hz without things looking like complete ass.

    Extron has s scan converter that minimalistically does exactly what you want, and they're in the business of making things that don't suck. But the price will scare the shit out of you.

    So, I guess, unless you can give up a lot of screen resolution (yeah, right), or can find a way to get a second external video output from your Mac (perhaps there is a USB or Firewire gizmo which will do well enough for NTSC-grade video), then you're fucked.


  8. moof1138 says:

    iMacs don't support extended desktop, so as soon as they see a new display output that doesn't support the native resolution of the built in display the built in display down to whatever both displays have in common.

    The only solution I can think of is to enable extended desktop. That will let each display be handled individually, so you can let each be its native resolution.

    The hack that lets you enable extended desktops for iMacs is here.

    Once you have that installed, plug in the external display, go to the Displays pref, click the 'Arrangement' tab, and then uncheck 'Mirroring,' and your built in display should revert to its native resolution. When you want to mirror again you can check that checkbox again and the displays will go back to being in synch.

    • jwz says:

      That was true of the PPC iMacs, with the mini-VGA connector. the Intel iMacs have a mini-DVI connector, and support extended desktop out of the box without that patch. So I think you missed what I was saying.

  9. telecart says:

    Woah, you are a genius.

    I've been looking to do precisely this (only with a Macbook Pro which has DVI out, not miniDVI like the Macbook) literally since I bought the thing.

    I'm plugged into an external LCD, and I also want to plug into my TV without having to switch cables all the time. The external LCD can conveniently work with either a DVI or a VGA cable, and the tv with either s-video or RCA, but naturally doesn't support the same resolution as the LCD.