Spook

Spook is a Linux server application to capture live video and audio and
stream it over an IP network. Currently, Spook supports capturing from a
Firewire IIDC camera or Video4Linux(2) source and streaming MPEG4 with RTSP
or JPEG stills with HTTP.

Spook is made available under the GNU General Public License WITHOUT ANY
WARRANTY.

News

2006-01-16: No updates, yet

Just a short note for all the people who've been asking about
updates— Spook hasn't been abandoned! However, much of the current
code has been. My last six months have been spent working on a new media
handling library that can be used to efficiently move audio and video
between various file formats and network protocols, kind of like a
combination of FFmpeg's libavformat and the LIVE555 RTP/RTSP libraries.
Right now it's in early prototype stages, but once it comes together a
little more (or at least, the API solidifies) I'll rewrite Spook to sit on
top of it and vastly increase the available features: multiple video and
audio codecs, file reading and writing, RTP multicast, RTP/RTSP relaying,
and more. No promises on a release date, though...

2005-02-07: Released 20050207

Audio is here! This release contains an OSS audio capture driver
and a built-in MP2 encoder based on code from FFmpeg. There is also
support for V4L2 frame grabbers with hardware video encoders, including the
Plextor
ConvertX M402U MPEG4 encoder. (The Linux drivers for it won't be
released publicly for a few days though.)

Other improvements include simple RTSP authentication, support for
multiple video/audio streams in the same instance of Spook, multipart JPEG
streaming, and improved performance in the RTP stack.

BTTV owners rejoice! The incompatibility between Spook and the kernel
2.6 BTTV drivers has been solved! Once I decided that the V4L1 compability
layer in V4L2 was horribly broken, I implemented a V4L2 input module which
is included in this release. The configuration syntax is nearly identical
to the existing V4L module, so take a look at spook.conf.dist and update
your config file accordingly.

This will probably be the last incremental release before I integrate
the major internal changes necessary to support multiple inputs, audio
support, file streaming, and much more.

2004-07-22: Released 20040722

This release adds a configure check for the incompatibility in libdc1394
introduced in 0.9.4. Nothing else has changed. I am working on nifty new
stuff, like audio support, but it may be a few months before I have enough
time to get it fully working and released. This summer has been
exceptionally busy for me so I appreciate your patience.

Incidentally, the mailing
list is back up, and has been for a few weeks.

2004-06-03: Server down time

You may have noticed that our server suffered a fairly serious failure.
We're back up now, but the mailing list is down for a bit. Feel free to
mail me privately in the
meantime.

2004-06-02: Released 20040602

The long-awaited 20040602 release is out. I broke with tradition to
bring you not one but two new features. First, based on code
provided by Christian Schulte, Spook can now log client accesses in a
format similar to Apache's combined log format. This is configured as a
separate directive in the spook.conf file. Second, preliminary support for
Mac OS X has been added. I am pleading for help from developers familiar
with Carbon and QuickTime, as my code is not very robust or efficient.
Finally, this version does not fix the bug noted in the last news
item.

2004-05-22: Problems with BTTV in Linux 2.6

Several people have reported that Spook does not work with the BTTV
driver under linux 2.6. My attempts to fix this have uncovered a number of
bugs in the BTTV driver in 2.6.5, several of which cause kernel oopses. If
you intend to use a Brooktree-based card, I recommend sticking with the
2.4 kernels until this is resolved.

2004-05-01: Released 20040501

This release should be welcome for those of you who have been struggling
with their NATs and firewalls. Spook now supports tunnelling RTP over TCP,
both as described in RFC 2326 and with the twisted RTP-over-RTSP-over-HTTP
protocol that QuickTime uses. Other changes include further enhancements
for Philips webcams (thanks to Jason Paulson for loaning me one) and a fix
for a nasty socket bug that Christian Schulte brought to my attention.

2004-04-19: Released 20040419

Spook 20040419 is out. This release has working support for the Philips
webcams, thanks to help from Christian Schulte. The only real change was to
switch the V4L input module to the YUV420P palette, which should work with
a wider variety of hardware.

2004-04-18: Philips webcams

Apparently, the Philips webcams don't work correctly with Spook. There
should be a new version out soon that fixes the issues.

Spook 20040416 has been released. The big change is the inclusion of
the Video4Linux input module, including (untested) Philips webcam
support. If you get it working, post a message to the mailing list to
let me know.

Update: version 20040416a was released with two tiny updates to make it
run on kernel 2.6.

2004-04-12: Mailing list

A new mailing list
has been created for Spook. It is for both discussion of development and help
for users who are having trouble. Also, you are encouraged to post addresses
of any streams you have set up with Spook.

2004-04-11: First release!

Happy Easter! The first release of Spook is now available.

General Information

At the moment, Spook is very limited. It only supports one stream at a
time. It lacks polish: it must be run in the foreground, it prints lots of
useless messages, and it doesn't deal well with errors and exceptions.
That said, it has been quite stable streaming to a small number of clients
(3-5), including one that has been running for a week straight.

Spook encodes MPEG4 with XviD.
Because MPEG4 is a very efficient compression method, decent-looking 30fps
streams can be produced with about 200 kbps, which is less than the
upstream bandwidth of most cable modems and DSL lines. Spook also provides
JPEG stills from a built-in HTTP server for bandwidth-limited
environments.

MPEG4 streams from Spook can be viewed with VLC, MPlayer or Apple
QuickTime Player. Real Player should work as well, but I haven't had any
luck with it.

Current Release

The current version of Spook is 20050207. Once it becomes mature enough
to package for Linux distributions, I'll switch to real version
numbers.