Karaoke Friday on ds106TV

As is quickly becoming tradition (at least for Jim Groom and I), I decided to broadcast some karaoke tunes to ds106 on Friday. The idea of livestreaming and setting up a TV station for ds106 has been back on my mind a lot recently in light of the video assignments. You'll recall perhaps that I experimented with this earlier on and even have a dedicated site for it. The biggest hangup of the whole endeavor has always been the amount of ads placed on several popular streaming services like Ustream and Livestream. Both services charge upwards of $350/month to go ad-free, which clearly puts the service in a completely different demographic than the community of DIYers we've built here. I had began researching open source options but seemed to hit one roadblock after another. Icecast2 supports video, which is what ds106radio runs on. But only the Theora codec is supported (and if you just said "What the heck is theora" you can imagine how many videos we'd have people encoding in that format), documentation is sparse, and the forums don't seem to show anyone having luck streaming using it. Selfvideo seems interesting, but appears a combination of early stages for the site and no clear idea if the person who built it is continuing support. Ability to embed the playlists you create there doesn't work currently and a support forum post I put up early last week went unanswered. So that's out. Another big problem with these open source options is the lack of any way to broadcast through mobile devices. That's a deal breaker to me because when it comes to ds106radio, things got a lot more interesting once people began mobile broadcasts and I want the same ability for TV. So I came across Justin.TV which incidentally does still have ads, but only 1 30-second ad at the beginning of the stream. To me that's a lot less intrusive. They also allow users to pay $10/month for no ads, but it's on an individual basis (ie. If I pay it, that doesn't mean ds106.TV has no ads, it means all Justin.tv streams I watch I have no ads, but you still would). I do know of a few streams on Justin.TV that have no ads and I'm guessing they are working directly with the website to do that and likely paying a premium similar to what Ustream and Livestream charge. It might be worth contacting them and asking though. So I setup shop on the site, adjusted some things on the ds106.TV site, and decided Friday night would be a good test of adding this visual layer to the mix.

The Tools

  • Ladiocast - "But Tim, that's for streaming audio to ds106radio." Correct. I wanted to try to stream karaoke through the radio station in addition to ds106TV. This wasn't terribly difficult on the computer, it just had to be running in the background. If you've never used Ladiocast before you can follow this tutorial.
  • Wirecast - You don't need any special program to broadcast to Justin.TV. They have a built-in flash streamer that will make use of your webcam as well as mobile applications. But there are a few desktop applications that will make the experience a little fancier. Wirecast is not cheap, but my employer had a license and I've used it before for another podcast I work on. To get an idea of how nice it makes the show look, take a look at some of the highlight videos on ds106.tv. Specifically I took advantage of a green screen option for myself, a lower third text title, and a desktop sharing feature to show Skype conversations between multiple people.
  • iMac and Macbook Pro - I used the iMac as my Wirecast, Ladiocast, and Skype computer. The built-in iSight was my camera and I could share the desktop into Wirecast to broadcast Skype video conversations. As I mentioned before Ladiocast just did it's thing in the background so I only messed with that when I would open the radio stream up to others to broadcast. The Macbook Pro served 2 purposes: Playing the radio stream so I could pull that audio in to Wirecast for streaming on TV, and playing YouTube videos of karaoke songs.
  • Behringer Eurorack UB1202 Mixer - This isn't technically a necessity but it made things real nice on Friday. This is a cheap mixer I own that allows me to use a regular vocal microphone instead of a headset or built-in mic on the computer. Using the mixer also allowed me to go from Headphone port on the Macbook Pro into a channel on the mixer. The main outs from the mixer went into my Line In on the iMac which then streamed through Wirecast for TV and Ladiocast for Radio. I also ran a long cable connected to headphones from the mixer so I could monitor everything and adjust levels. If I was doing everything from a single computer I wouldn't need the mixer, but having two computers and a mixer ultimately made things a lot easier to control levels and separate tasks and the vocal mic made the quality nicer.

    So here is a picture of what that setup ended up looking like. The Macbook Pro would have iTunes running with the radio stream when Jim would be singing and I would just pipe that into Wirecast with a generic picture on the TV stream. Otherwise when I was streaming I would just mute iTunes and hit "Connect" on Ladiocast on the iMac. Then use the Macbook Pro for full-screen YouTube karaoke videos. Once I Skyped Jim in later on in the night and found he was able to pipe his computer audio in to Skype, karaoke became even more fun because I could stream the Skype video of him and I to TV through Wirecast and we could both sing along to his audio. There was virtually no lag, even though on some songs we might not have known what we were singing. We ended up streaming for over 5 hours and Justin.TV archived it all. There is also an option for users to create video "highlights" in Justin.TV that become separate videos. That became very useful to create shorter clips of the more interesting things that happened during that night and individual songs. Any video or highlight can be uploaded to YouTube with one click of a button so I've been taking advantage of that feature to pipe videos in to the site via the Tubepress plugin for Wordpress. Why go through all this trouble instead of just taking the feed directly from Justin.TV for individual videos? No ads. It's a tiny bit more work since pushing a video to Youtube from Justin.TV is a manual click instead of automated, but ultimately worth it to not have pre-roll ads on every single video, only the live stream. So far that seems like a fair trade-off for the ability to broadcast live on the web from wherever you are. I'm sure I'll have more to say on this topic as we learn more about the system and what it can and can't do, but needless to say it's exciting stuff. I just got to watch Mikhail's children jumping around excitedly as they watched an archive of me singing We Are The Champions and he broadcasted that live. The connections just got a whole lot deeper.