Stream Live HDTV from Your Mac
Pages: 1, 2
Step 3: Use VLC's Streaming Wizard to Create Your Stream
On the sending Macintosh, launch VLC. Select File -> Streaming/Exporting Wizard (Command-Shift-W). The Streaming/Transcoding Wizard window opens:
- Select "Stream to network." This option is selected as the default. Click Next.
- Select your stream. With "Select a stream" selected, click Choose. A file selection dialog opens. Navigate to the alias you created on your desktop. Select it and choose Open. Click Next.
- Choose your streaming method and destination. Make sure that UDP Unicast is selected and enter the IP address for the computer you wish to stream to (Figure 4). Click Next.
- Do not transcode. Leave both boxes unchecked on the Transcode page. Click Next.
- Use MPEG TS encapsulation. MPEG TS refers to MPEG transport stream. Click Next.
- Leave the additional options alone. Keep the Time-To-Live, SAP Announce, and Local Playback settings exactly as is, and click Next.
- Check the summary. The final page of the Streaming/Transcoding Wizard lists all the settings you've chosen. Make sure you're streaming UDB-Unicast to the proper destination with no transcoding and MPEG TS encapsulation. Click Finish. A new VLC Controller opens on your sending computer (Figure 5).
-

Figure 5. After finishing the Streaming/Transcoding Wizard, this new controller appears in VLC. Just let it be.
Tip: When you select several files (or aliases) at once, VLC creates a playlist of those videos. The web interface you add in Step 5 allows you to select from that playlist and choose which video you want to watch. Very convenient!

Figure 4. It is vital to connect to the proper address while streaming. Make sure you correctly enter the Destination address. On the Mac, you can find out the address for your computer by opening System Preferences and selecting the Network settings pane.
Step 4: Watch Video on Your Receiving Computer
With VLC running on your destination computer, select File -> Open Network (Command-N). If you're not on a Mac, the Linux and Windows versions use essentially the same function, but I believe it's called "Open Network Stream" instead of "Open Network." On a Mac, the dialog shown in Figure 6 opens. All the default settings apply. Just click OK.

Figure 6. Use the default settings in the Open Source window. Just click OK to start watching your streaming EyeTV video.
Assuming you've set everything up correctly--and really, there's not a lot of rocket science here so you probably did--your video will start playing. Figure 7 shows the video playing on my old and cranky 733 G4.
Figure 7. If you pay attention, you'll notice an "HD" icon in the lower-left of this image. This is not a transcode. That's actual HD streaming from my Mac mini to my G4. You can view a full-size screen shot here. The video was so large, it ended up crossing from one of my two screens to the other. Fortunately, my SnapzPro screenshot utility was able to snap both screens at once to produce this image. The video played back with few jumps or delays. (Turning off extraneous programs like email is a big help in keeping the playback smooth!)
Step 5: Add a Web-based Remote Control
The web-based remote is one of VLC's least-trumpeted features, and this really shouldn't be the case. It's very cool. The remote allows you to control your VLC playback from another computer, in this case the one receiving the video you're streaming. To enable this feature, you'll need to return to the computer of origin, the one that's streaming the video.
- Enable the web interface. In VLC on the sending computer, choose VLC -> Add Interface -> Web Interface. Unfortunately, there will be no feedback that you've accomplished anything at all. The submenu will not be checked, and there will be no other visual confirmation whatsoever. However, once you've enabled this interface, you can move over to the destination computer and access it right away, so that's confirmation of a sort.
- Connect to the web interface. On the receiving computer, launch your favorite web browser and connect to port 8080 at the address of the sending computer, e.g., http://192.168.1.101:8080/. (Obviously, this will vary according to your local network.)
- Click Help. You'll find the Help button beside the words "VLC media player" at the top of the page. This option adds words to all the little icons and makes them a lot easier to use, as Figure 8 shows. Use the icons on this virtual remote to start, stop, and otherwise control your video stream experience.

Figure 8. If you enable the VLC web interface, you can control your VLC stream directly from your remote computer. Very convenient!
CyTV
CyTV is another network streaming solution for EyeTV; it is still in beta development. Like the VLC solution discussed earlier in this article, it allows you to watch EyeTV content over a network. In fact, it even uses VLC to display its video.
CyTV ships with a CyTV client and a CyTV server to run on the two computers you're connecting. When running, the server controls EyeTV on the sending computer. Figure 9 shows the client in action.
Figure 9. CyTV offers many of the same features as VLC streaming with a nicer interface, but actual performance takes a huge hit. Video delivery is slow and hesitant.
Although CyTV shows great promise, it's still in early development. When I tested it, response time was unacceptably slow. I could barely watch a standard definition TV stream on my G4. There were many halts and hesitations while streaming. High definition streams were out of the question. On the bright side, whereas VLC allows you to switch programs when you load items into its play lists, CyTV was designed to allow you to switch channels in real time, although I was unable to make this feature work in my tests.
Conclusion
Congratulations! You've just built a remote video streaming solution that you can use to watch video as it records in another room. You've learned how to access EyeTV's raw MPEG transport streams, create an alias that links to them, use VLC to stream that MPEG, and watch the video on another computer. It only takes a few simple steps to put all of this together and make it work. Best of all, outside of your initial investment in EyeTV, you can build this setup using equipment you already own and with free open source software.
Thanks to Nicholas Freeman and Adam Steinberg of Elgato for their technical insights during the preparation of this article.
Erica Sadun has written, co-written, and contributed to almost two dozen books about technology, particularly in the areas of programming, digital video, and digital photography.
Return to MacDevCenter.com.
You must be logged in to the O'Reilly Network to post a talkback.
Showing messages 1 through 12 of 12.
-
How about live TV?
2007-04-07 05:35:21 takmad [Reply | View]
I like the idea, but my real interest is streaming and controlling live TV - not a preset recording.
My setup will be between an iMac/eyeTV/VLC and a Roku HD1000 media device connected to each other via 100mbs ethernet.
Any thoughts on working with live TV? eyeTV seems to create a temp file for live TV and it changes on a regular basis so the alias approach won't work. Thanks!
-
Seems unnecessary
2007-02-24 08:28:56 rackerby [Reply | View]
This is useful if one wants to stream EyeTV to a non-Mac, but if you want to view EyeTV recordings on a second Mac, why not just install EyeTV on the second Mac and access your EyeTV recordings via AppleShare? It works for me.
-
Thanks!!
2007-02-21 22:23:26 threebean [Reply | View]
Thanks for the article!
I just wanted to report my results - I am watching it on a laptop wirelessly and as long as the signal stays strong it works like a charm! I did have problems in the beginning, but i boosted my router signal and rebooted it. After that the reception on the laptop has been great. More fun with eyeTV!
Server:
G5 DP/2.0
EyeTV 500
Conduit:
Linksys WRT54G/GS running DD-WRT Firmware
Reciever:
Acer Aspire 1640 with a 1.7 Pentium M
Using Builtin G Wireless Reciever
-
http://www.topdownloads.net/software/view.php?id=9743
2007-02-21 16:51:48 freedownloads [Reply | View]
vcd cutter does this as well http://www.topdownloads.net/software/view.php?id=9743
-
transcoding
2007-02-21 09:00:59 safari2832 [Reply | View]
I've been doing something similar for a couple of months and found it works well. But my networks isn't up to streaming full bandwith video - particularly because one of the players is connected via Ethernet over mains. So I have to transcode it to a lower bitrate.
The good news is that VLC can do that - it makes your EyeTV server work harder, but it's fine on my Mac Mini.
Here's my script to do the streaming. It first uses AppleScript to work out which program is currently recording, then passes it to VLC to transcode and stream (in this example video bitrate of 1536k, audio bitrate 64k). The VLC command line also adds the web interface automatically, which I then call (via curl) to position the video position to 95% of the way through (so that it streams "nearly live" rather than from the beginning).
#! /bin/bash
vlc=/Applications/VLC.app/Contents/MacOS/clivlc
cd "/Users/username/Movies/EyeTV Archive"
eyetvr=`osascript -e 'tell application "EyeTV"' -e "repeat with r in recordings" -e "if busy of r then set a to path of r" -e "end repeat" -e "end tell" -e "POSIX path of a"`
mpg=${eyetvr%*.eyetvr}.mpg
echo $mpg
$vlc "$mpg" --sout "#transcode{vcodec=mp2v,vb=1536,acodec=mpga,ab=64}:standard{access=http,mux=ps,dst=}" --intf=http --http-host 192.168.0.91:8081 --quiet vlc:quit &
sleep 5
curl "http://bungo:8081/requests/status.xml?command=seek&val=95%25" > /dev/null
-
my setup
2007-02-20 18:18:41 constantnormal [Reply | View]
Early dual G5 Powermac (2 GHz), 2 GB RAM, eyeTV 500 -- client is iMac G4 upgraded to 1.86 GHz 7447 via DayStar, 1 GB RAM. about 50 ft of cat5 ethernet between them. Everything is running latest versions of all software. Both machines are on a fast ethernet switch from the AE(n), which has the switch and an AE(g) plugged into it.
And I don't seem to have enough oomph to make it happen.
One possibility -- in my attempt to duplicate your results, I tested using an existing file from my eyeTV archive. Is it possible that it only works while capturing and not when displaying an already captured program?
Another possibility -- since both machines are connected to the AE(n) via the same switch, could I be causing contention there? I still have one ethernet port open on rthe AE(n), I could put one of the Macs directly into it. I'm a bit suspicious of the networking, as neither Mac is running flat out. The G5 has lots of idle cycles, and the G4 is running about 70-80% busy when trying to accomplish this.
Speculation welcomed. -
my setup
2007-02-20 18:28:25 Erica Sadun |
[Reply | View]
You've got what looks like plenty of processing oomph, enough for both server and client. And it doesn't matter whether you're using a pre-recorded file or one that records on-the-go. I'm using a boring old wired linksys. So my guess would be the networking not the computers.
-
But what about SD?
2007-02-20 12:04:12 dogzilla [Reply | View]
First, my setup: 1.83 ghz Core Duo Mini, 512mb RAM, EyeTV Hybrid connected to cable input, EyeTV recordings on external 1tb firewire drive.
I tried this on my machine up to the point of trying to view the stream locally on my VLC but - as I expected - it did not work.
Here's why: very quickly after purchasing ran into a major limitation of the Hybrid (and of the Miglia TVMini HD) - it does not create a buffer for regular analog TV. Since it doesn't create a buffer, there's no file that CyTV (or VLC) can publish, therefore CyTV and VLC can currently *only* stream out HD when used in combination with the Hybrid or any other tuner that relies on the system for encoding will have this limitation. Additionally, the Hybrid doesn't receive ClearQAM (free HD via cable), so unless you have a digital antenna connected to it, there's no way to receive any HD, and consequently no way for this VLC setup or CyTV to work.
The issue seems odd - I can record SD with no problem. If I was willing to start a recording and devote hard drive space to effectively creating my own unlimited "buffer", I could stream live TV using this solution. But the drawbacks are considerable: I would have to set this up again every time I used it (there would be no "standard" name for the mpeg file) and it would consume a significant amount of hard drive space depending on how long I left it running. I don't understand why ElGato didn't at least include the option to buffer SD TV and allow the user to decide whether the performance hit was worth it or not.
Lastly, you mention in the article that this will work with SD and HD. I know that there are some Mac-compatible products that have hardware encoders for SD, and some that have hardware encoders for HD, but I don't know of any that do both, although I'm very interested in finding one. Could you let us know which product you're using and if this works for you in SD as well?
Thanks in advance. -
But what about SD?
2007-02-20 13:20:12 Erica Sadun |
[Reply | View]
I'm pretty sure the Hybrid you already own can tune and digitize both SD and HD. As for needing to record, until Elgato adds a consistent buffer scheme for both SD and HD, you won't be able to skip the step in which you have to start recording to make this trick work. -
But what about SD?
2007-02-20 14:39:36 dogzilla [Reply | View]
The Hybrid can tune SD, but the only way it can stream (either with this hack or via CyTV) is if you start a recording and then go through the steps described here every time. For HD, you can create an alias to the live buffer, but the only HD the Hybrid will receive is via ATSC, and then only if you buy an antenna and connect it to the cable input (disabling your coax connection) and switch the box into digital mode (which disables any other input mode).
So overall, the Hybrid isn't really a viable solution for this except in very limited circumstances and for very limited needs/wants. I suppose it's cool accomplishment, but it's definitely not "living-room production-ready". I can't imagine having to go through all these steps to, say, record "Lost" or expect my wife to be able to record the Oscars this way.
I'm kinda bummed about that. There doesn't seem to be a viable solution for this on the Mac side, although there seem to be individual products that can accomplish pieces.






access_file: unknown file type for `/Users/wallsbk/Documents/EyeTV Archive/Live TV Buffer.eyetv'
main: picture 0x2a13170 refcount is -1
main: picture to date 0x2a12d40 has invalid status 4
main: picture to display 0x2a12d40 has invalid status 4
ffmpeg: av_find_stream_info failed
ps: cannot peek
main: no suitable demux module for `/:///Users/wallsbk/Documents/EyeTV Archive/Live TV Buffer.eyetv/000000000c835801.eyetvi'
What can I do to make things work?