Villa Real at Seaboard Station

Villa Real in Feb. 2009, courtesy of Steve Rhoade

A few weeks ago, the family and I stopped in to our favorite Chinese restaurant, Peace Street China, for some take-out dinner. As our order was being prepared, Travis and I wandered over to look at the trains in the CSX rail yard.

As we wandered up to the edge of the yard I saw that the owners of the private rail cars were there, working to restore them. It was the first time since I saw the cars appear almost a decade ago that I’d seen anyone working on them. According to a few web searches, the Villa Real is owned by Herman Page and Al Sauer, though I don’t remember now which owner I met. The baggage car next to the Villa Real was also being worked on and I met the owner of that one, too.
Continue reading

The value of editors

Big Boss boo boo

I love editing so much that I married an editor. I like to think that I had some natural talent at editing before I met Kelly but I definitely gained a whole new appreciation for the art of editing after watching what Kelly does. I knew that an editor was responsible for making sure all the i’s were dotted and the t’s crossed, but what I didn’t know before I met Kelly was how much an editor’s role is as much arbitrator than anything else. In the publishing world, anyway.

Blogging is a bit different when it comes to editing. That is, I don’t really do any editing. I love swiftly cranking out a post, following an idea as my fingers fly unfettered across the keyboard, not caring much about the mistakes that might pop up. The reason I can do this is that blogging is extraordinarily affordable. I invest my time in composing my posts but not much else. Should a correction need to be made, I can always do a quick search-and-replace to fix it. I can also post a new post as a correction. Some times I even rewrite my posts after they’re posted when I think I can improve on what I have to say. I guess you could say that I take full advantage of the no-rules frontier that is blogging. Blogging doesn’t have to be perfect because it’s fluid and cheap!
Continue reading

Fully open-source video streaming

I found the missing link today for my open-source video streaming project: Xuggle. The Xuggle project includes a version of ffmpeg which can RTMP-stream to the red5 server.

Well, sorta. The red5 server needs to be patched in order to work with Xuggle, An exception occurs otherwise. You grab the patch from here and patch the RTMPProtocolDecoder.java file.

Here’s the command line I use to get Xuggle’s ffmpeg to stream my USB webcam from Linux:

LD_LIBRARY_PATH=/usr/local/xuggler/lib /usr/local/xuggler/bin/ffmpeg -f video4linux2 -s 320×240 -r 15 -i /dev/video0 -f oss -ac 2 -i /dev/dsp1 -f flv rtmp://eddy.neusemedia.com/oflaDemo/streamname

Normally I would use ALSA to grab audio from the USB microphone but Xuggle’s ffmpeg binary wasn’t compiled with ALSA support. Fortunately, the OSS driver works fine.

Here’s the command I use to stream from my ieee1394 (also known as Firewire) video camera:

dvgrab – | LD_LIBRARY_PATH=/usr/local/xuggler/lib /usr/local/xuggler/bin/ffmpeg -f dv -i – -s 320×240 -r 15 -f flv -ar 22050 rtmp://eddy.neusemedia.com/oflaDemo/streamname

This takes audio from the DV camera, but if I wanted to take audio from the USB microphone (or the built-in microphone) I could put in a line like the first one.

The quality is absolutely outstanding! Even on my slow cable modem connection I can push 320×240 15fps video with 22KHz stereo audio to my server. On a beefier Internet connection (like the city’s network at the community center) I could dial it up to even higher quality.

So there you go. Other than the codec (which is not free “as in speech”), all the parts are free. The only cost is the hosting bandwidth. One thing I’d like to find is a good way to take this RTMP stream and push it out a high-quality video card for ingesting into the city’s cable access channel, if need be. That would turn this in to a great solution for the city’s RTN network to offer live coverage of city events. I’m also interested in an RTMFP solution so that the client plugins can share the bandwith, rather than having my server hammered when many people try to watch at once.

Now I know a lot of non-geeks are interested in getting their own streaming television, so I’ll get to work on writing up a howto with minimal jargon.