TECH: Video simulcasting & conferencing
|From:||Sai Emrys <sai@...>|
|Date:||Friday, February 6, 2009, 7:32|
For the computer geeks in the audience:
a) omni mic -> laptop w/ winamp -> unix server w/ icecast -> clients
via streaming audio or embedded flash widget
b) IRC channel + embedded java widget
I'd like LCC3 to do that, plus add video streaming and audio and/or
video response ability.
We will have one or two dedicated OSX or maybe Kubuntu laptops -
maaaaaybe with a USB or firewire line from a MiniDV cam, more likely
with a webcam - and a non-root shell account on a shared Unix server.
The videocasting solution will need to:
* work on that hardware,
* support ~30 clients simultaneously over the internet (i.e. multicast
* with < ~10s broadcast lag from cam to client,
* with zero futzing once started and minimal futzing that has to be
done immediately before,
* transcode on the fly to something that'll work with DSL,
* (preferable) simultaneously transcode to audio only low-bandwidth
mp3 for non-DSLified clients,
* ... or if not, be compatible with icecast being run on the same
machine to do that;
* be easy to for minimally technically competent clients to access, and
* (preferable) simultaneously record the output to local disk.
Other than IRC, the response part will need to:
* support ~30 clients simultaneously, but always muted unless
specifically "given the mic",
* be outputtable on a laptop,
* be recorded to disk,
* (preferable) be switchable a la KVM into the projector & speakers
(though we probably won't have an actual KVM), and
* be decently robust across network lameness / firewalls, and again,
easy for aforementioned clients.
My tentative shortlist for how to do this is:
a) webcam -> Quicktime Broadcaster -> Darwin Streaming Server ->
??flash video widget / decent client-based media player
b) webcam -> VLC RTP unicast/transcoder -> VLC HTTP server -> widget/player
... with mp4 encoding & encapsulation for video, ~20bit mp3 for audio
only stream, and doing the audio w/ icecast if the multiple
simultaneous transcoding/broadcasting thing doesn't work out
I rejected Helix Server because I don't want to deal with RealPlayer;
it's proprietary and thus very poorly interoperable IME.
I'm not familiar with any other potential solutions to this, but
certainly willing to look into anything that seems promising as a
contender to the above.
I don't know what a good mp4-stream compatible widget would be; the
one we used last time was audio only.
a) Skype + Audio Hijack Pro
... and that's it really. Gizmo Project is neat and probably just as
good, but it's nowhere near as common. I don't know of any other
Potentially the text chat could be held via Skype as well, though that
would exclude people who really want OSS or who don't want to / can't
... not sure.
The only solution I can think of is to have the streaming laptop also
be the presentation laptop, and either
a) have it output the presentation via external video port but use its
own monitor for Skype control (and be able to make Skype output to
b) SSH into the presentation laptop and make it switch a/v source on command; or
c) have the presentation & response handling be on different laptops,
and use some sort of physical KVM.
Practically speaking, only *video* would require a KVM; audio could
just be played over separate speakers. So if we just say people can
only respond by audio, then this part is moot.
I would need a response-handling laptop anyway - monitoring the chat
enough to grant mic, get whatever last-minute files from the tubes,
etc., would likely to be my job (or one of the Davids').
So, the questions:
1. Other good options I should consider?
2. Anything I got wrong above or am likely to?
3. Suggestions for how I can make this work better?
4. Offers to help and/or host the streaming server?
I'll try to use our Berkeley OCF account (the DH account doesn't allow
arbitrary servers or other daemons) to host it, but I'm not certain
that it'll work out for this - so if you have a box we could use just
for this (once we get the saved broadcast files off, you can wipe it),
I'd appreciate that.